firewalld を操作するためのコマンドリファレンス
🛡️ ゾーン管理
ネットワークインターフェースや接続元をグループ化するゾーンの設定。
現在の設定確認
目的 | コマンド | 説明 |
---|---|---|
デフォルトゾーンを確認 |
|
システム全体のデフォルトゾーン名を表示します。 |
利用可能な全ゾーンを一覧表示 |
|
定義済みのすべてのゾーン名を表示します。 |
アクティブなゾーンと関連インターフェースを確認 |
|
現在使用中のゾーンと、それに割り当てられているネットワークインターフェースを表示します。 |
特定のゾーンの設定をすべて表示 (例: public) |
|
指定したゾーン (public) の詳細設定(インターフェース、サービス、ポート、ルールなど)を表示します。 |
すべてのゾーンの永続的な設定をすべて表示 |
|
全ゾーンの永続的な設定情報をまとめて表示します。設定変更後に確認する際に便利です。 |
特定のインターフェースが属するゾーンを確認 (例: eth0) |
|
指定したインターフェース (eth0) が現在どのゾーンに属しているかを表示します。 |
ゾーンの設定変更
目的 | コマンド | 説明 |
---|---|---|
デフォルトゾーンを変更 (例: internal) |
|
デフォルトゾーンを指定したゾーン (internal) に変更します。この変更は恒久的な設定に即座に反映されます。 |
インターフェースをゾーンに追加 (例: eth0 を internal ゾーンへ、一時的) |
|
指定したインターフェース (eth0) を指定ゾーン (internal) に一時的に追加します。リロードまたは再起動で元に戻ります。 |
インターフェースをゾーンに追加 (例: eth0 を internal ゾーンへ、恒久的) |
|
指定したインターフェース (eth0) を指定ゾーン (internal) に恒久的に追加します。--reload が必要です。 |
インターフェースが属するゾーンを変更 (例: eth0 を work ゾーンへ、一時的) |
|
指定したインターフェース (eth0) が属するゾーンを指定ゾーン (work) に一時的に変更します。 |
インターフェースが属するゾーンを変更 (例: eth0 を work ゾーンへ、恒久的) |
|
指定したインターフェース (eth0) が属するゾーンを指定ゾーン (work) に恒久的に変更します。--reload が必要です。 |
インターフェースをゾーンから削除 (例: eth0 を internal ゾーンから、一時的) |
|
指定したインターフェース (eth0) を指定ゾーン (internal) から一時的に削除します。削除後、インターフェースはデフォルトゾーンに割り当てられます。 |
インターフェースをゾーンから削除 (例: eth0 を internal ゾーンから、恒久的) |
|
指定したインターフェース (eth0) を指定ゾーン (internal) から恒久的に削除します。--reload が必要です。 |
カスタムゾーンの管理
目的 | コマンド | 説明 |
---|---|---|
新しいゾーンを作成 (例: myzone、恒久的) |
|
新しいゾーン (myzone) を恒久設定に追加します。--reload が必要です。 |
ゾーンを削除 (例: myzone、恒久的) |
|
指定したゾーン (myzone) を恒久設定から削除します。使用中のゾーンは削除できません。--reload が必要です。 |
ゾーンの説明を設定 (例: myzone、恒久的) |
|
指定ゾーンに説明文を設定します。--reload が必要です。 |
ゾーンの短い名前を設定 (例: myzone、恒久的) |
|
指定ゾーンに短い名前(表示名)を設定します。--reload が必要です。 |
⚙️ サービス管理
事前定義されたプロトコルとポートの組み合わせ(サービス)を管理。
利用可能なサービスと設定確認
目的 | コマンド | 説明 |
---|---|---|
利用可能な全サービスを一覧表示 |
|
firewalld が認識している定義済みのサービス名をすべて表示します。 |
デフォルトで許可されているサービス一覧 |
|
デフォルトゾーンで現在許可されているサービスを表示します (一時設定)。 |
特定のゾーンで許可されているサービス一覧 (例: public、一時的) |
|
指定したゾーン (public) で現在許可されているサービスを表示します (一時設定)。 |
特定のゾーンで許可されているサービス一覧 (例: public、恒久的) |
|
指定したゾーン (public) で恒久的に許可されているサービスを表示します。 |
特定のサービスの詳細定義を確認 (例: http) |
|
指定したサービス (http) の定義内容(ポート、プロトコル、モジュールなど)を表示します。 |
サービスの追加と削除
--permanent
オプションなしの変更は一時的であり、firewalld のリロードやシステムの再起動で失われます。恒久的に設定を適用するには --permanent
を付け、最後に firewall-cmd --reload
を実行します。
目的 | コマンド | 説明 |
---|---|---|
ゾーンにサービスを追加 (例: http を public ゾーンへ、一時的) |
|
指定ゾーン (public) に指定サービス (http) を一時的に許可します。 |
ゾーンにサービスを追加 (例: http を public ゾーンへ、恒久的) ✅ |
|
指定ゾーン (public) に指定サービス (http) を恒久的に許可します。反映にはリロードが必要です。 |
ゾーンにサービスを時間制限付きで追加 (例: ftp を public ゾーンへ 5分間) ⏱️ |
|
指定ゾーン (public) に指定サービス (ftp) を5分間だけ一時的に許可します。 |
ゾーンからサービスを削除 (例: http を public ゾーンから、一時的) |
|
指定ゾーン (public) から指定サービス (http) の許可を一時的に削除します。 |
ゾーンからサービスを削除 (例: http を public ゾーンから、恒久的) ❌ |
|
指定ゾーン (public) から指定サービス (http) の許可を恒久的に削除します。反映にはリロードが必要です。 |
カスタムサービスの管理
目的 | コマンド | 説明 |
---|---|---|
新しいサービス定義を追加 (例: myservice、恒久的) |
|
新しいカスタムサービス (myservice) の定義ファイルを作成します。/etc/firewalld/services/ 配下に作成されます。 |
サービスに説明を追加 (例: myservice、恒久的) |
|
カスタムサービスに説明を追加します。 |
サービスに短い名前を追加 (例: myservice、恒久的) |
|
カスタムサービスに短い名前(表示名)を追加します。 |
サービスにポートを追加 (例: 1234/tcp を myservice へ、恒久的) |
|
カスタムサービス (myservice) にポートとプロトコル (1234/tcp) を追加します。 |
サービスからポートを削除 (例: 1234/tcp を myservice から、恒久的) |
|
カスタムサービス (myservice) から指定したポートとプロトコルを削除します。 |
サービスにプロトコルを追加 (例: vrrp を myservice へ、恒久的) |
|
カスタムサービス (myservice) に指定したプロトコルを追加します。 |
サービス定義を削除 (例: myservice、恒久的) |
|
カスタムサービス (myservice) の定義ファイルを削除します。反映にはリロードが必要です。 |
🔌 ポート管理
特定のポート番号とプロトコル(TCP/UDP)の通信を制御。
ポートの開放と閉鎖
目的 | コマンド | 説明 |
---|---|---|
ゾーンで許可されているポート一覧 (例: public、一時的) |
|
指定ゾーン (public) で現在許可されているポート(番号/プロトコル)を表示します。 |
ゾーンで許可されているポート一覧 (例: public、恒久的) |
|
指定ゾーン (public) で恒久的に許可されているポートを表示します。 |
ゾーンにポートを追加 (例: 8080/tcp を public へ、一時的) |
|
指定ゾーン (public) で指定ポート (8080/tcp) を一時的に許可します。 |
ゾーンにポートを追加 (例: 8080/tcp を public へ、恒久的) ✅ |
|
指定ゾーン (public) で指定ポート (8080/tcp) を恒久的に許可します。反映にはリロードが必要です。 |
ゾーンにポート範囲を追加 (例: 5000-5010/udp を internal へ、一時的) |
|
指定ゾーン (internal) で指定ポート範囲 (5000-5010/udp) を一時的に許可します。 |
ゾーンからポートを削除 (例: 8080/tcp を public から、一時的) |
|
指定ゾーン (public) から指定ポート (8080/tcp) の許可を一時的に削除します。 |
ゾーンからポートを削除 (例: 8080/tcp を public から、恒久的) ❌ |
|
指定ゾーン (public) から指定ポート (8080/tcp) の許可を恒久的に削除します。反映にはリロードが必要です。 |
特定のポートが許可されているか確認 (例: 22/tcp を public で) |
|
指定ゾーン (public) で指定ポート (22/tcp) が許可されていれば “yes”、されていなければ “no” を返します。 |
ポートフォワーディングとマスカレード
目的 | コマンド | 説明 |
---|---|---|
マスカレードを有効化 (例: external ゾーンで、一時的) |
|
指定ゾーン (external) でIPマスカレード(SNATの一種)を一時的に有効にします。 |
マスカレードを有効化 (例: external ゾーンで、恒久的) ✅ |
|
指定ゾーン (external) でIPマスカレードを恒久的に有効にします。反映にはリロードが必要です。 |
マスカレードを無効化 (例: external ゾーンで、一時的) |
|
指定ゾーン (external) でIPマスカレードを一時的に無効にします。 |
マスカレードを無効化 (例: external ゾーンで、恒久的) ❌ |
|
指定ゾーン (external) でIPマスカレードを恒久的に無効にします。反映にはリロードが必要です。 |
マスカレードが有効か確認 (例: external ゾーンで) |
|
指定ゾーン (external) でマスカレードが有効なら “yes”、無効なら “no” を返します。 |
ポートフォワーディングを追加 (例: public ゾーンの 80/tcp を 192.168.1.100 の 8080/tcp へ転送、一時的) |
|
指定ゾーン (public) にポートフォワーディングルールを一時的に追加します。 |
ポートフォワーディングを追加 (例: public ゾーンの 80/tcp を 192.168.1.100 の 8080/tcp へ転送、恒久的) ✅ |
|
指定ゾーン (public) にポートフォワーディングルールを恒久的に追加します。反映にはリロードが必要です。 |
ポートフォワーディングを削除 (例: public ゾーンの 80/tcp 転送ルール、一時的) |
|
指定ゾーン (public) からポートフォワーディングルールを一時的に削除します。 |
ポートフォワーディングを削除 (例: public ゾーンの 80/tcp 転送ルール、恒久的) ❌ |
|
指定ゾーン (public) からポートフォワーディングルールを恒久的に削除します。反映にはリロードが必要です。 |
ポートフォワーディングルール一覧表示 (例: public ゾーン、一時的) |
|
指定ゾーン (public) の一時的なポートフォワーディングルールを表示します。 |
ポートフォワーディングルール一覧表示 (例: public ゾーン、恒久的) |
|
指定ゾーン (public) の恒久的なポートフォワーディングルールを表示します。 |
🚦 リッチルール (Rich Rules)
より複雑で詳細な条件に基づいたアクセス制御ルール。
リッチルールの追加と削除
目的 | コマンド | 説明 |
---|---|---|
ゾーンのリッチルール一覧表示 (例: public、一時的) |
|
指定ゾーン (public) の一時的なリッチルールを表示します。 |
ゾーンのリッチルール一覧表示 (例: public、恒久的) |
|
指定ゾーン (public) の恒久的なリッチルールを表示します。 |
リッチルールを追加 (例: 192.168.1.0/24 からの SSH 接続を許可、public ゾーン、一時的) |
|
指定した送信元 IP アドレス範囲からの SSH サービスへのアクセスを一時的に許可します。 |
リッチルールを追加 (例: 192.168.1.0/24 からの SSH 接続を許可、public ゾーン、恒久的) ✅ |
|
指定した送信元 IP アドレス範囲からの SSH サービスへのアクセスを恒久的に許可します。反映にはリロードが必要です。 |
リッチルールを追加 (例: 10.0.0.1 からのすべての接続を拒否、public ゾーン、一時的) |
|
指定した IP アドレスからのすべての接続を一時的に拒否 (reject) します。`drop` も指定可能です。 |
リッチルールを追加 (例: 内部ネットワーク 192.168.0.0/16 からの 8080/tcp へのアクセスを許可、internal ゾーン、恒久的) |
|
指定した送信元 IP アドレス範囲から指定ポートへのアクセスを恒久的に許可します。 |
リッチルールを削除 (例: 192.168.1.0/24 からの SSH 接続許可ルール、public ゾーン、一時的) |
|
指定したリッチルールを一時的に削除します。ルールは完全一致する必要があります。 |
リッチルールを削除 (例: 192.168.1.0/24 からの SSH 接続許可ルール、public ゾーン、恒久的) ❌ |
|
指定したリッチルールを恒久的に削除します。反映にはリロードが必要です。 |
特定のリッチルールが存在するか確認 (例: public ゾーン) |
|
指定したリッチルールが存在すれば “yes”、存在しなければ “no” を返します。 |
リッチルールでログを記録 (例: 10.0.0.0/8 からの接続試行をログ記録し拒否、public ゾーン、恒久的) 📜 |
|
特定のアクセス試行をログに記録 (syslog/journald) し、拒否します。プレフィックス、ログレベル、レート制限 (1分間に1回) を指定しています。 |
リッチルールでレート制限 (例: SSH 接続を1分間に5回までに制限、public ゾーン、恒久的) |
|
SSH サービスへの接続を1分間に5回までに制限します。超過分は破棄されます。 |
📜 ダイレクトルール (Direct Rules)
iptables/ip6tables/ebtables の構文を直接使用するルール。高度な設定や特定のシナリオ向け。
ダイレクトルールの追加と削除
目的 | コマンド | 説明 |
---|---|---|
すべてのダイレクトルールを表示 (一時的) |
|
現在アクティブな(一時的な)すべてのダイレクトルールを表示します。 |
すべてのダイレクトルールを表示 (恒久的) |
|
恒久的に設定されているすべてのダイレクトルールを表示します。 |
ダイレクトルールを追加 (例: INPUT チェーンの先頭にルールを追加、一時的) |
|
iptables コマンド `iptables -I INPUT -s 1.2.3.4 -j DROP` に相当するルールを一時的に追加します。優先度 (0) を指定しています。 |
ダイレクトルールを追加 (例: INPUT チェーンの先頭にルールを追加、恒久的) ✅ |
|
iptables コマンド相当のルールを恒久的に追加します。反映にはリロードが必要です。 |
特定のチェインのダイレクトルールを表示 (例: ipv4 filter INPUT、一時的) |
|
指定したテーブルとチェインに属する一時的なダイレクトルールを表示します。 |
特定のチェインのダイレクトルールを表示 (例: ipv4 filter INPUT、恒久的) |
|
指定したテーブルとチェインに属する恒久的なダイレクトルールを表示します。 |
ダイレクトルールを削除 (例: INPUT チェーンのルールを削除、一時的) |
|
追加時と完全に同じ引数を指定して、一時的なダイレクトルールを削除します。 |
ダイレクトルールを削除 (例: INPUT チェーンのルールを削除、恒久的) ❌ |
|
追加時と完全に同じ引数を指定して、恒久的なダイレクトルールを削除します。反映にはリロードが必要です。 |
特定のダイレクトルールが存在するか確認 |
|
指定したダイレクトルールが存在すれば “yes”、存在しなければ “no” を返します (一時設定に対して)。 |
恒久的なダイレクトパススルーを有効化 |
|
特定の iptables コマンド列を firewalld に直接渡します。高度な使い方です。 |
🚫 ICMPブロック
特定の ICMP (Internet Control Message Protocol) メッセージタイプをブロックする設定。
ICMP タイプの確認とブロック設定
目的 | コマンド | 説明 |
---|---|---|
利用可能な ICMP タイプを一覧表示 |
|
firewalld が認識している ICMP メッセージタイプの一覧を表示します。 |
ゾーンでブロックされている ICMP タイプ一覧 (例: public、一時的) |
|
指定ゾーン (public) で現在ブロックされている ICMP タイプを表示します。 |
ゾーンでブロックされている ICMP タイプ一覧 (例: public、恒久的) |
|
指定ゾーン (public) で恒久的にブロックされている ICMP タイプを表示します。 |
ICMP タイプをブロック (例: echo-request を public ゾーンで、一時的) |
|
指定ゾーン (public) で指定した ICMP タイプ (ping応答要求) を一時的にブロックします。 |
ICMP タイプをブロック (例: echo-request を public ゾーンで、恒久的) ✅ |
|
指定ゾーン (public) で指定した ICMP タイプを恒久的にブロックします。反映にはリロードが必要です。 |
ICMP タイプのブロックを解除 (例: echo-request を public ゾーンで、一時的) |
|
指定ゾーン (public) で指定した ICMP タイプのブロックを一時的に解除します。 |
ICMP タイプのブロックを解除 (例: echo-request を public ゾーンで、恒久的) ❌ |
|
指定ゾーン (public) で指定した ICMP タイプのブロックを恒久的に解除します。反映にはリロードが必要です。 |
特定の ICMP タイプがブロックされているか確認 (例: echo-request を public で) |
|
指定ゾーン (public) で指定した ICMP タイプがブロックされていれば “yes”、されていなければ “no” を返します。 |
すべての ICMP タイプをブロック (IPv4) ⚠️ |
|
一部の必須タイプを除き、ほぼ全てのICMPv4メッセージをブロックします。注意して使用してください (一時的)。恒久化は `–permanent` を追加。 |
すべての ICMP タイプをブロック (IPv6) ⚠️ |
|
一部の必須タイプを除き、ほぼ全てのICMPv6メッセージをブロックします。注意して使用してください (一時的)。恒久化は `–permanent` を追加。 |
🔄 設定の反映と緊急停止
設定変更の適用、永続化、および緊急時の対応。
目的 | コマンド | 説明 |
---|---|---|
firewalld の設定をリロード |
|
恒久設定 (--permanent で変更したもの) を読み込み、現在の実行中の設定 (ランタイム設定) に適用します。既存の接続は通常維持されます。 |
firewalld を完全に再起動 (非推奨) |
|
firewalld デーモン自体を再起動します。これにより、既存の接続が切断される可能性があります。通常は --reload で十分です。 |
現在のランタイム設定を恒久設定に上書き保存 |
|
一時的な設定 (--permanent なしで変更したもの) を恒久設定ファイルに書き込みます。恒久設定ファイルは上書きされます。 |
パニックモードを有効化 緊急 |
|
すべての着信および発信トラフィックを即座にブロックします。緊急時に使用します。 |
パニックモードを無効化 |
|
パニックモードを解除し、通常のファイアウォールルールに戻します。 |
パニックモードの状態を確認 |
|
パニックモードが有効なら “on”、無効なら “off” を返します。 |
ℹ️ 状態確認
firewalld デーモンの動作状態や設定ファイルの場所など。
目的 | コマンド | 説明 |
---|---|---|
firewalld デーモンの状態を確認 |
|
firewalld が実行中であれば “running” を返します。 |
デフォルトの設定ファイルパスを確認 |
|
デフォルトの設定ファイル (`firewalld.conf`) のパスを表示します。通常は `/etc/firewalld/firewalld.conf` です。 |
ゾーン設定ファイルのパスを確認 (例: public) |
|
指定したゾーンの設定ファイル (`*.xml`) のパスを表示します。恒久設定は `/etc/firewalld/zones/`、デフォルトは `/usr/lib/firewalld/zones/` にあります。 |
サービス設定ファイルのパスを確認 (例: http) |
|
指定したサービスの設定ファイル (`*.xml`) のパスを表示します。恒久設定は `/etc/firewalld/services/`、デフォルトは `/usr/lib/firewalld/services/` にあります。 |
ICMPタイプ設定ファイルのパスを確認 (例: echo-reply) |
|
指定したICMPタイプの設定ファイル (`*.xml`) のパスを表示します。通常は `/usr/lib/firewalld/icmptypes/` にあります。 |
コメント