iptablesのルールセットはUbuntu 12.04のどこに保存されていますか?


8

Ubuntu 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 statusiptables12.04がプリインストールされているバージョン/パッケージの存在しない/不明なコマンド)と、この興味深い出力が見つかりました:

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

ロードできるルールセットが2つあるようです(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>

これはUbuntu 12.04.03 LTSでのみ確認できます-多分、この場所はiptables-packageの新しいバージョンで変更されています。

/etc/iptables/rulesets.dこれらを保存するのにもっと論理的な場所があったと思います。

save-pathは27/etc/init.d/iptables行目で構成され、その後、invoke によって使用されます。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、Precise Pangolin" ID = ubuntu ID_LIKE = debian PRETTY_NAME = "Ubuntu正確な(12.04.4 LTS)" VERSION_ID = "12.04"#iptables- save ruleset.1コマンドラインで不明な引数が見つかりましたこれは機能していないようです
Rondo

ここで同じ問題
2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.