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                                                                                 
...     

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

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

활성 / 비활성 위치가 꽤 나쁜 검색어이고 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.