ウェブサイト検索

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 フロント エンドは、ルールは自動的に保存され、再起動後も保持されます。

続行する前に、システムにいくつかのルールがすでに構成されていることを確認してください。特に、このチュートリアルでは、firewalldufw などのフロントエンド ファイアウォール アプリケーションではなく、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 ルールを保存する

  1. 再起動後も iptables ルールを永続的にするには、apt パッケージ マネージャーを使用して iptables-persistent パッケージをインストールします。

    
    $ sudo apt install iptables-persistent
    

    現在構築されている iptables ルールは、以下の対応する IPv4 および IPv6 ファイルに保存されます。

    
    /etc/iptables/rules.v4
    /etc/iptables/rules.v6
    
  2. 新しいルールで永続的な iptables を更新するには、iptables コマンドを使用して新しいルールをシステムに組み込むだけです。再起動後に変更を永続的にするには、iptables-save コマンドを実行します。

    
    $ sudo iptables-save > /etc/iptables/rules.v4
    OR
    $ sudo ip6tables-save > /etc/iptables/rules.v6
    
  3. 永続的な iptables ルールを削除するには、関連する /etc/iptables/rules.v* ファイルを開き、不要なルールをすべて含む行を削除するだけです。

iptables ルールを RPM ベースのシステムに保存する

  1. 再起動後も iptables ルールを永続的にするには、dnf パッケージ マネージャーを使用して iptables-services パッケージをインストールします。

    
    $ sudo dnf install iptables-services
    

    現在構築されている iptables ルールは、以下の対応する IPv4 および IPv6 ファイルに保存されます。

    
    /etc/sysconfig/iptables
    /etc/sysconfig/ip6tables
    
  2. firewalld を無効にして、systemd の iptables サービスを有効にしてください。

    
    $ sudo systemctl stop firewalld
    $ sudo systemctl disable firewalld
    $ sudo systemctl start iptables
    $ sudo systemctl enable iptables
    

    次のコマンドを使用して、サービスが実行されていることを確認できます。

    
    $ sudo systemctl status iptables
    
  3. 新しいルールで永続的な iptables を更新するには、iptables コマンドを使用して新しいルールをシステムに組み込むだけです。再起動後に変更を永続的にするには、iptables-save コマンドを実行します。

    
    $ sudo iptables-save > /etc/sysconfig/iptables
    OR
    $ sudo ip6tables-save > /etc/sysconfig/ip6tables
    
  4. 永続的な iptables ルールを削除するには、関連する /etc/sysconfig/iptables または /etc/sysconfig/ip6tables ファイルを開き、不要なルールをすべて含む行を削除するだけです。

最後に

このチュートリアルでは、DEB および RPM ベースの Linux ディストリビューションで再起動後に iptables ルールを永続化する方法を説明しました。最近の多くのシステムには、firewalld や ufw などの独自の iptables フロント エンドがあり、ファイアウォールがより使いやすくなり、デフォルトでルールも保存されます。ただし、多くの Linux 管理者は依然として iptables を直接操作することを好み、すべての iptables ルールが再起動後も確実に保持されるようにするには、追加の iptables-save ユーティリティが必要です。

関連記事: