ウェブサイト検索

Debian/Ubuntuでiptablesファイアウォールルールを永続化する方法


ここでは、システムを再起動した後にiptablesファイアウォールルールを持続させる方法を紹介します。

Iptablesは、トラフィックを許可またはブロックするためにポリシーチェーンを使用するLinuxオペレーティングシステムのコマンドラインファイアウォールユーティリティです。

ただし、iptablesのルールはデフォルトではサーバーの再起動を経ても持続しません。Linuxシステムを再起動するとリセットされます。では、iptablesのルールを持続させるにはどうすればよいですか?

iptablesはシステムメモリにルールを格納します。言い換えれば、これらのルールをファイルとしてディスクに永続的に保存することはありません。

幸いなことに、これらのiptablesルールをディスクに永続的に保持する手軽な方法がありますので、今からお見せします。

iptablesファイアウォールルールを永続的に保存する方法

iptables-persistentパッケージをインストールする必要があります。これにより、再起動時にiptablesが自動的に復元されます。

sudo apt install iptables-persistent

インストールプロセス中に、現在の/既存のiptablesルールを保存するように求められます。必要に応じて、はい または いいえ を選択してください。

「はい」を選択した場合、既存の iptables ルールがそれぞれの IPv4 と IPv6 用に /etc/iptables/rules.v4 および /etc/iptables/rules.v6 に作成され、保存されます。

iptablesのルールを変更するたびに、iptables-saveコマンドを使用してファイルに保存し、再起動後も変更を永続化させるべきです。

IPv4 iptablesの場合(最も広く使われているシナリオ):

sudo iptables-save -f /etc/iptables/rules.v4

IPv6 iptablesの場合:

sudo iptables-save -f /etc/iptables/rules.v6

iptablesに変更を加えるたびに、上記のコマンドを実行する必要があることに注意してください。これは、現在アクティブなiptablesルールを指定したファイルにコピーするためです。

ルールは、最後に保存したときの状態に戻すこともできます:

sudo netfilter-persistent reload

保存したファイルをcatコマンドを使って表示できます:

sudo cat /etc/iptables/rules.v4

さらに、永続的なiptablesルールを削除するには、対応する/etc/iptables/rules.v*ファイルを開き、不要なルールを含む行を手動で削除することができます。

結論

Linux システム管理者は、iptables を使用して Linux のファイアウォールルールを設定、維持、検査します。このガイドでは、Debian または Ubuntu システムで iptables ファイアウォールルールを永続化する方法を学びました。

システム上でufwまたはfirewalldコマンドが実行されている場合、iptables-persistentはそれらと衝突するため、避けるべきことに注意することが重要です。

iptablesコマンドについてさらに知りたい場合は、そのマニュアルページを参照するか、こちらとこちらを確認してください。

関連記事: