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
~]# systemctl disable firewalld
~]# systemctl stop firewalld
次に、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
iptables-services パッケージには、
root で以下のコマンドを入力して、iptables-services パッケージをインストールします。
yum install iptables-services
~]# yum install iptables-services
iptables サービスと ip6tables サービスが含まれます。
次に、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
システムが起動するたびにサービスを開始できるようにするには、次のコマンドを入力します。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
iptables サービスおよび ip6tables サービスを起動するには、root で以下のコマンドを入力します。
systemctl start iptables systemctl start ip6tables
~]# systemctl start iptables
~]# systemctl start ip6tables
systemctl enable iptables systemctl enable ip6tables
~]# systemctl enable iptables
~]# systemctl enable ip6tables
ipset ユーティリティーは、Linux カーネルで IP セット を管理するために使用されます。IP セットは、IP アドレス、ポート番号、IP と MAC アドレスのペア、または IP アドレスとポート番号のペアを格納するためのフレームワークです。セットは、セットが非常に大きい場合でも、セットに対して非常に高速なマッチングを行うことができるようにインデックスが付けられます。IP セットは、よりシンプルで管理しやすい設定を可能にし、iptables を使用する際のパフォーマンス上の利点を提供します。iptables が一致し、セットを参照するターゲットは、カーネル内の指定されたセットを保護する参照を作成します。セットを指す参照が 1 つある間は、セットを破棄することはできません。
ipset を使用すると、以下のような iptables コマンドをセットに置き換えることができます。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
セットは、以下のように作成されます。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
次に、セットは以下のように iptables コマンドで参照されます。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
セットを複数回使用すると、設定時間が節約されます。セットに多くのエントリーが含まれている場合、処理時間を短縮することができます。
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
~]# 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
~]# 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 -A INPUT -m set --set my-block-set src -j DROP
~]# iptables -A INPUT -m set --set my-block-set src -j DROP