web-dev-qa-db-ja.com

特定のiptablesルールのセットを永続的にするにはどうすればよいですか?

いくつかのiptablesルールを永続化するための「ベストプラクティス」または標準はありますか?つまり、システムの再起動時に自動的に適用されますか?

Ubuntu Server 10.04 LTS(Lucid Lynx)でVPSを使用しています。

ありがとうございました。

大きな編集:iptables-persistentパッケージのように、どのルールも永続化されたくない。私自身の特定のセットのみをリロードしたい... iptablesを実行して最終的に他のルールが追加された場合、これらは破棄されるべきです...

41
J. Bruni

最も簡単な方法は、 iptables-save および iptables-restore を使用して、現在定義されているiptablesルールをファイルに保存し、(たとえば、再起動時に)ロードすることです。 。

したがって、たとえば、実行します

Sudo iptables-save | Sudo tee /etc/iptables.conf

現在のiptablesルールを/etc/iptables.confに保存してから、これらの行を/etc/rc.localに挿入します。

# Load iptables rules from this file
iptables-restore < /etc/iptables.conf
50
Riccardo Murri

現在12.04を使用している可能性があるため、これを簡単に更新してください。

iptables-persistentパッケージは、この問題を解決するようになりました。インストールするには、

Sudo apt-get install iptables-persistent

パッケージのインストール時に定義されたルールは保存され、以降の各ブートで使用されます。ロードされた新しいルールは、再起動時に破棄されます。

構成ファイルを変更する必要がある場合(iptables-persistentがインストールされている場合)、ipv4およびipv6 iptablesの場合はそれぞれ/etc/iptables/rules.v4または/etc/iptables/rules.v6です。

30
user172020

/etc/rc.localよりも良いのは、このようにiptableのルールを保存した後に/etc/network/interfacesに行を追加することです

post-up iptables-restore < /etc/iptables.up.rules

または、/etc/network/if-down.d/または/etc/network/if-post-down.d/または/etc/network/if-pre-up.d/または/etc/network/if-up.d/内にファイルを配置するのと同じです。

23
Kreker