iptables의 규칙 세트는 Ubuntu 12.04에 어디에 저장되어 있습니까?


8

우분투 12.04 LTS-iptables v1.4.12

TLDR :

호출 할 때 iptables의 규칙 세트는 어디에 저장 iptables-save <ruleset-name>됩니까?

설명 :

이 답변 에 따르면 iptables의 규칙을 저장하는 기본 방법은 호출하는 것입니다

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

/etc/network/interfaces그런 다음 다음 과 같이 이러한 규칙을로드 / 복원하십시오 .

iface eth0 inet static
        ....
        pre-up iptables-restore < /etc/iptables/rules.v4
        pre-up ip6tables-restore < /etc/iptables/rules.v6

... 또는에 쉘 스크립트에 넣습니다 /etc/network/if-pre-up.d.


iptables-persistent패키지 를 설치하면이를 단순화 할 수 있습니다 .

sudo apt-get install iptables-persistent
inovoke-rc.d iptables-persistent save
update-rc.d iptables-persistent defaults

몇 가지 자습서를 따라 service iptables status( iptables12.04와 함께 사전 설치된 버전 / 패키지에 대해 존재하지 않거나 알려지지 않은 명령) 을 호출하려고 시도 했으며이 흥미로운 출력을 찾았습니다.

Aborting iptables initd: unknown command(s): "status".                                                               
  ...                                                                                  
  save <ruleset>                                                                                                    
     save the current ruleset                                                                                       
  load <ruleset>                                                                                                    
     load a ruleset                                                                                                 
   ...                                                                                                   
Saved rulesets:                                                                                                     
  active, inactive                                                                                 
...     

로드 할 수있는 두 개의 규칙 세트가있는 것 같습니다 ( activeinactive) ...

.. 그러나 이들은 어디에 저장 됩니까?

활성 / 비활성 위치가 꽤 나쁜 검색어이고 dpkg-query -L iptables도움이되지 않는 위치를 찾을 수 없습니다 .

난 내 서버에 프로비저닝하고있어으로 puppet/ chef내가 내 규칙 세트를 넣어하는 간단한 쉘 스크립트를 추가 할 수있는 곳이 어떠했는지 아는 것이 좋을 것이다 /etc/networking/if-pre-up이러한로드가.

그런 다음 iptables-persistent다른 규칙 세트를로드 할 수 없으므로 유연하지 않은 패키지를 생략 할 수 있습니다.

당신의 도움을 주셔서 감사합니다.

답변:


4

메모리에 저장에게 규칙을 iptables는하지만, 에 의해 만들어진이 iptables-save ruleset-name파일에서 찾을 수 있습니다

/ var / lib / iptables / ruleset-name

이것들을 호출하여 복원 할 수 있습니다 iptables-restore <ruleset-name>.

우분투 12.04.03 LTS에서만 확인할 수 있습니다.이 위치는 이후 버전의 iptables-package에서 변경되었을 수 있습니다.

나는 이것을 /etc/iptables/rulesets.d저장하기에 더 논리적 인 장소 라고 생각합니다 .

저장 경로는 27/etc/init.d/iptables 행에서 구성 되고 나중에 호출하는 데 사용됩니다 .initd_save()initd_counters()

libdir=/var/lib/iptables   

# ...

initd_counters () {                                                                                         
 if test "${enable_save_counters:-false}" = true; then                                                     
    echo -n " with counters"                                                                                
    $iptables_save -c > "$ruleset"                                                                          
  else                                                                                                      
    $iptables_save | sed '/^:/s@\[[0-9]\{1,\}:[0-9]\{1,\}\]@[0:0]@g' > "$ruleset"                           
  fi                                                                                                        
}        

initd_save () {                                                                                             
  rm -f $autosave                                                                                           
  ruleset="${libdir}/$@"                                                                                    
  echo -n "Saving iptables ruleset: save \"$@\""                                                            
  initd_counters                                                                                           
  echo "."                                                                                                  
}          

#cat / etc / os-release NAME = "Ubuntu"VERSION = "12.04.4 LTS, 정확한 Pangolin"ID = ubuntu ID_LIKE = debian PRETTY_NAME = "Ubuntu 정확한 (12.04.4 LTS)"VERSION_ID = "12.04"# iptables- ruleset.1 알 수없는 인수가 명령 줄에서 발견 저장이 작업에 표시되지 않습니다
론도

같은 문제가 여기에
unc0nnected
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.