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
~]# 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
~]# firewall-cmd --permanent --get-ipsets
新しい IP セットを追加するには、
root で永続環境を使用し、以下のコマンドを使用します。
firewall-cmd --permanent --new-ipset=test --type=hash:net success
~]# firewall-cmd --permanent --new-ipset=test --type=hash:net
success
上記のコマンドは、名前 test と
IPv4 の hash:net タイプで新しい IP セットを作成します。IPv6 で使用する IP セットを作成するには、--option=family=inet6 オプションを追加します。ランタイム環境で新しい設定を有効にするには、firewalld をリロードします。root で以下のコマンドを実行して、新しい IP セットを一覧表示します。
firewall-cmd --permanent --get-ipsets test
~]# firewall-cmd --permanent --get-ipsets
test
IP セットに関する詳細情報を取得するには、
root で以下のコマンドを実行します。
firewall-cmd --permanent --info-ipset=test test type: hash:net options: entries:
~]# firewall-cmd --permanent --info-ipset=test
test
type: hash:net
options:
entries:
この時点では IP セットにエントリーがありません。IP セットにエントリーを追加するには、
root で以下のコマンドを実行します。
firewall-cmd --permanent --ipset=test --add-entry=192.168.0.1 success
~]# 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
~]# firewall-cmd --permanent --ipset=test --get-entries
192.168.0.1
IP アドレスの一覧を含むファイルを生成します。以下に例を示します。
IP セットの IP アドレスの一覧が含まれるファイルには、行ごとにエントリーが含まれている必要があります。ハッシュ、セミコロン、また空の行から始まる行は無視されます。
iplist.txt ファイルからアドレスを追加するには、
root で以下のコマンドを実行します。
firewall-cmd --permanent --ipset=test --add-entries-from-file=iplist.txt success
~]# firewall-cmd --permanent --ipset=test --add-entries-from-file=iplist.txt
success
IP セットの拡張エントリー一覧を表示するには、
root で以下のコマンドを実行します。
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
~]# 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 セットをソースとして drop ゾーンに追加し、IP セットの テスト に一覧表示されているすべてのエントリーから送られるすべてのパケットをドロップするには、
root で以下のコマンドを実行します。
firewall-cmd --permanent --zone=drop --add-source=ipset:test success
~]# firewall-cmd --permanent --zone=drop --add-source=ipset:test
success
ソースの
ipset: 接頭辞は、ソースが IP セットであり、IP アドレスまたはアドレス範囲ではない firewalld を示します。
IP セットの作成および削除は、永続環境に限定されますが、その他の IP セットオプションは、
--permanent オプションを使用しないランタイム環境で使用できます。
5.12.2. IP セットのカスタムサービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
firewalld が起動する前に IP セット構造を作成してロードするようにカスタムサービスを設定するには、以下を実行します。
rootで実行されているエディターを使用して、以下のようにファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - firewalld で IP セットを永続的に使用します。
vi /etc/firewalld/direct.xml <?xml version="1.0" encoding="utf-8"?> <direct> <rule ipv="ipv4" table="filter" chain="INPUT" priority="0">-m set --match-set <replaceable>ipset_name</replaceable> src -j DROP</rule> </direct>
~]# vi /etc/firewalld/direct.xml <?xml version="1.0" encoding="utf-8"?> <direct> <rule ipv="ipv4" table="filter" chain="INPUT" priority="0">-m set --match-set <replaceable>ipset_name</replaceable> src -j DROP</rule> </direct>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を有効にするには、
firewalldのリロードが必要です。これにより、状態情報を失うことなくファイアウォールがリロードされます (TCP セッションは終了しません) が、リロード中にサービスが中断する可能性があります。firewall-cmd --reload
~]# firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
警告
Red Hat は、
firewalld で管理されない IP セットを使用することは推奨していません。このような IP セットを使用すると、そのセットを参照する永続的なダイレクトルールが必要で、IP セットを作成するカスタムサービスを追加する必要があります。このサービスは、firewalld を起動する前に起動する必要があります。起動しないと、firewalld はこのセットを使用してダイレクトルールを追加できません。/etc/firewalld/direct.xml ファイルを使用して、永続的なダイレクトルールを追加できます。