Red Hat Training

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

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

firewalld で対応する IP セットタイプの一覧を表示するには、root で次のコマンドを実行します。
~]# firewall-cmd --get-ipset-types
hash:ip hash:ip,mark hash:ip,port hash:ip,port,ip hash:ip,port,net hash:mac hash:net hash:net,iface hash:net,net hash:net,port hash:net,port,net

5.12.1. コマンドラインクライアントを使用した IP セットオプションの設定

IP セットは、firewalld ゾーンでソースとして使用でき、リッチルールでソースとして使用できます。Red Hat Enterprise Linux 7 では、firewalld で作成した IP セットを直接ルールで使用する方法が推奨されています。
永続的な環境で firewalld に認識されている IP セットの一覧を表示するには、次のコマンドを root で実行します。
~]# firewall-cmd --permanent --get-ipsets
新しい IP セットを追加するには、永続化環境を使用し、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --new-ipset=test --type=hash:net
success
上記のコマンドは、名前 test とタイプ hash:net で、IPv4 の新しい IP セットを作成します。IPv6 で使用する IP セットを作成する場合は、--option=family=inet6 オプションを追加します。ランタイム環境で新しい設定を有効にするには、firewalld を再読み込みします。root で次のコマンドを実行して、新しい IP セットの一覧を表示します。
~]# firewall-cmd --permanent --get-ipsets
test
IP セットの詳細は、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --info-ipset=test
test
type: hash:net
options:
entries:
この時点では IP セットにエントリーがありません。IP セット test にエントリーを追加するには、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --ipset=test --add-entry=192.168.0.1
success
上記のコマンドは、IP アドレス 192.168.0.1 を IP セットに追加します。IP セットの現在のエントリーを一覧表示するには、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --ipset=test --get-entries
192.168.0.1
IP アドレスの一覧を含むファイルを生成します。以下に例を示します。
~]# cat > iplist.txt <<EOL
192.168.0.2
192.168.0.3
192.168.1.0/24
192.168.2.254
EOL
IP セットの IP アドレスの一覧が含まれるファイルには、行ごとにエントリーが含まれている必要があります。ハッシュ、セミコロン、また空の行から始まる行は無視されます。
iplist.txt ファイルからアドレスを追加するには、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --ipset=test --add-entries-from-file=iplist.txt
success
拡張された IP セットのエントリー一覧を表示するには、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --ipset=test --get-entries
192.168.0.1
192.168.0.2
192.168.0.3
192.168.1.0/24
192.168.2.254
IP セットからアドレスを削除し、更新したエントリー一覧を確認するには、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --ipset=test --remove-entries-from-file=iplist.txt
success
~]# firewall-cmd --permanent --ipset=test --get-entries
192.168.0.1
IP セットをゾーンへのソースとして追加し、ゾーンを使用して、IP セットに記載されるアドレスから受信するすべてのトラフィックを処理します。たとえば、IP セットの test をソースとして drop ゾーンに追加し、IP セットの test の一覧に表示されるすべてのエントリーから発信されるパケットをすべて破棄するには、root で次のコマンドを実行します。
~]# firewall-cmd --permanent --zone=drop --add-source=ipset:test
success
ソースの ipset: 接頭辞は、ソースが IP セットで、IP アドレスまたはアドレス範囲ではない firewalld を示しています。
IP セットの作成および削除は、永続環境に限定されますが、その他の IP セットオプションは、--permanent オプションを使用しないランタイム環境で使用できます。