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


42

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

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

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

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

回答:


52

最も簡単な方法は、 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

3
+1あなたの答えは私の最初の質問にぴったりです。また、私が本当に欲しいものに気づいたので、「iptablesルールを永続化するにはどうすればよいですか」という質問を変更する必要がありました。「iptablesルールの特定のセットを永続的にするにはどうすればよいですか?」
J.ブルーニ

可能であれば、質問の変更を反映するために回答を少し編集してください。喜んで受け入れます!私はiptables-save一度使用する必要があり、常にリロードします(/etc/rc.localのiptables-restoreは良さそうです)。
J.ブルーニ

1
あなたがpermission denied使用しようとすると取得している場合>このスタックオーバーフローの答えは役に立ちます。
デビッドチュイト

2
sudo sh -c "iptables-save > /etc/iptables.conf"代わりに使用sudo iptables-save > /etc/iptables.conf
ラジャトグプタ14

31

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

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

sudo apt-get install iptables-persistent

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

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


を編集した場合/etc/iptables/rules.v4、[公式に]どのように適用されますか?現在私はやっていますsudo iptables-restore < /etc/iptables/rules.v4
ブルーノ・ブロノスキー

24

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

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

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


1
@Kreker:復元スクリプトを実行するよりもあなたのアプローチがどのように優れているかを明確にしてくださいrc.local。場合によっては他のアプローチは機能しませんか?
ラジャトグプタ

2
ネットワーク構成に追加すると、「service networking restart」コマンドを実行した後に再ロードされます。システムの起動に限定されません。
K.ダリエンフリーハート14

4
インターフェースがダウンしているときに、1つのポストアップiptables-restoreが必要なのはなぜですか?
alphadogg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.