Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.13. iptablesを使用した IP セットの設定および制御

firewalld サービスと iptables (および ip6tables)サービスの基本的な相違点は次のとおりです。
  • iptables サービス は設定を /etc/sysconfig/iptables および /etc/sysconfig/ip6tables に保存しますが、firewalld は設定を /usr/lib/firewalld/ および /etc/firewalld/ のさまざまな XML ファイルに保存します。デフォルトでは Red Hat Enterprise Linux に firewalld がインストールされているため、/etc/sysconfig/iptables ファイルが存在しないことに注意してください。
  • iptables サービス では、すべての変更がすべての古いルールをフラッシュし、/etc/sysconfig/iptables からすべての新しいルールを読み取ることを意味しますが、firewalld ではすべてのルールを再作成することはありません。違いのみが適用されます。その結果、firewalld は、既存の接続を失うことなく、ランタイム時に設定を変更できます。
いずれも iptables ツール を使用してカーネルパケットフィルターと通信します。
firewalld の代わりに iptables サービスおよび ip6tables サービスを使用するには、最初に root で以下のコマンドを実行して firewalld を無効にします。
~]# systemctl disable firewalld
~]# systemctl stop firewalld
次に、root で以下のコマンドを入力して、iptables-services パッケージをインストールします。
~]# yum install iptables-services
iptables-services パッケージには、iptables サービスと ip6tables サービスが含まれます。
次に、iptables サービスおよび ip6tables サービスを起動するには、root で以下のコマンドを入力します。
~]# systemctl start iptables
~]# systemctl start ip6tables
システムが起動するたびにサービスを開始できるようにするには、次のコマンドを入力します。
~]# systemctl enable iptables
~]# systemctl enable ip6tables
ipset ユーティリティーは、Linux カーネルで IP セット を管理するために使用されます。IP セットは、IP アドレス、ポート番号、IP と MAC アドレスのペア、または IP アドレスとポート番号のペアを格納するためのフレームワークです。セットは、セットが非常に大きい場合でも、セットに対して非常に高速なマッチングを行うことができるようにインデックスが付けられます。IP セットは、よりシンプルで管理しやすい設定を可能にし、iptables を使用する際のパフォーマンス上の利点を提供します。iptables が一致し、セットを参照するターゲットは、カーネル内の指定されたセットを保護する参照を作成します。セットを指す参照が 1 つある間は、セットを破棄することはできません。
ipset を使用すると、以下のような iptables コマンドをセットに置き換えることができます。
~]# iptables -A INPUT -s 10.0.0.0/8 -j DROP
~]# iptables -A INPUT -s 172.16.0.0/12 -j DROP
~]# iptables -A INPUT -s 192.168.0.0/16 -j DROP
セットは、以下のように作成されます。
~]# ipset create my-block-set hash:net
~]# ipset add my-block-set 10.0.0.0/8
~]# ipset add my-block-set 172.16.0.0/12
~]# ipset add my-block-set 192.168.0.0/16
次に、セットは以下のように iptables コマンドで参照されます。
~]# iptables -A INPUT -m set --set my-block-set src -j DROP
セットを複数回使用すると、設定時間が節約されます。セットに多くのエントリーが含まれている場合、処理時間を短縮することができます。