Linux で再起動後に iptables を永続化する方法
Linux システム上の iptables ファイアウォールは、システム管理者がシステムに対してどのようなネットワーク トラフィックを許可または拒否するかを詳細な精度で制御できる非常に便利な機能です。
経験豊富な Linux 管理者は、システムの iptables ルールを完全に消去するシステムの再起動に伴うフラストレーションと苦痛をおそらく知っているでしょう。これは、iptables ルールがデフォルトでは再起動後に保持されないためです。システムの iptables ルールを構成した後、再起動後もルールが確実に存在することを確認するために実行する必要がある重要な手順がもう 1 つあります。
このチュートリアルでは、DEB および RPM ベースのシステムを含むすべての主要な Linux ディストリビューションで再起動後に iptables ルールを永続化する方法を説明します。
このチュートリアルでは次のことを学びます:
DEB ディストリビューションに
iptables-persistent
パッケージをインストールする方法-
RPM ディストリビューションに
iptables-services
パッケージをインストールする方法 iptables-save
コマンドを使用して再起動後もルールを維持する方法保存されたルールを削除する方法
Linux で再起動後に iptables ルールを永続化する方法のステップごとの説明
ご存知ですか?
Red Hat ベースのシステムの firewalld
や Ubuntu ベースのシステムの ufw
など、一部の iptables フロント エンドは、ルールは自動的に保存され、再起動後も保持されます。
続行する前に、システムにいくつかのルールがすでに構成されていることを確認してください。特に、このチュートリアルでは、firewalld
や ufw
などのフロントエンド ファイアウォール アプリケーションではなく、iptables
を使用してルールが構成されていることを前提としています。
システム上のルールを確認するには、次の iptables
コマンドを使用します。
$ sudo iptables -L
使用している Linux ディストリビューションに応じて、以下の正しいセクションに従って、設定した iptables ルールを保存します。
注
DEB ベースのシステムは、Debian、Ubuntu、Linux Mint、その他の派生製品などのディストリビューションです。 RPM ベースのシステムには、Red Hat、Fedora、CentOS、AlmaLinux、Rocky Linux、その他の Red Hat ベースのディストリビューションが含まれます。これには、openSUSE も含まれます。
DEB ベースのシステムに iptables ルールを保存する
再起動後も iptables ルールを永続的にするには、
apt
パッケージ マネージャーを使用してiptables-persistent
パッケージをインストールします。$ sudo apt install iptables-persistent
現在構築されている iptables ルールは、以下の対応する IPv4 および IPv6 ファイルに保存されます。
/etc/iptables/rules.v4 /etc/iptables/rules.v6
新しいルールで永続的な iptables を更新するには、
iptables
コマンドを使用して新しいルールをシステムに組み込むだけです。再起動後に変更を永続的にするには、iptables-save
コマンドを実行します。$ sudo iptables-save > /etc/iptables/rules.v4 OR $ sudo ip6tables-save > /etc/iptables/rules.v6
永続的な iptables ルールを削除するには、関連する
/etc/iptables/rules.v*
ファイルを開き、不要なルールをすべて含む行を削除するだけです。
iptables ルールを RPM ベースのシステムに保存する
再起動後も iptables ルールを永続的にするには、
dnf
パッケージ マネージャーを使用してiptables-services
パッケージをインストールします。$ sudo dnf install iptables-services
現在構築されている iptables ルールは、以下の対応する IPv4 および IPv6 ファイルに保存されます。
/etc/sysconfig/iptables /etc/sysconfig/ip6tables
firewalld を無効にして、systemd の iptables サービスを有効にしてください。
$ sudo systemctl stop firewalld $ sudo systemctl disable firewalld $ sudo systemctl start iptables $ sudo systemctl enable iptables
次のコマンドを使用して、サービスが実行されていることを確認できます。
$ sudo systemctl status iptables
新しいルールで永続的な iptables を更新するには、
iptables
コマンドを使用して新しいルールをシステムに組み込むだけです。再起動後に変更を永続的にするには、iptables-save
コマンドを実行します。$ sudo iptables-save > /etc/sysconfig/iptables OR $ sudo ip6tables-save > /etc/sysconfig/ip6tables
永続的な iptables ルールを削除するには、関連する
/etc/sysconfig/iptables
または/etc/sysconfig/ip6tables
ファイルを開き、不要なルールをすべて含む行を削除するだけです。
最後に
このチュートリアルでは、DEB および RPM ベースの Linux ディストリビューションで再起動後に iptables ルールを永続化する方法を説明しました。最近の多くのシステムには、firewalld や ufw などの独自の iptables フロント エンドがあり、ファイアウォールがより使いやすくなり、デフォルトでルールも保存されます。ただし、多くの Linux 管理者は依然として iptables を直接操作することを好み、すべての iptables ルールが再起動後も確実に保持されるようにするには、追加の iptables-save
ユーティリティが必要です。