Menu Close

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
セットを複数回使用すると、設定時間が節約されます。セットに多くのエントリーが含まれている場合、処理時間を短縮することができます。