firewalldコマンドのチートシート:基本操作
firewalldは、Linuxベースのシステムでネットワークのトラフィックを管理するためのダイナミックなファイアウォール管理ツールです。従来のiptablesに代わるものとして設計され、リアルタイムでの設定変更が可能で、ネットワークのセキュリティを柔軟かつ効率的に管理できます。
主に以下のLinuxディストリビューションで使用可能です。
(これらのディストリビューションでは、デフォルトまたは追加インストールとしてfirewalldが利用できます。)
目次
firewalldが使える主なディストリビューション一覧
1. RHEL系ディストリビューション
- Red Hat Enterprise Linux (RHEL): デフォルトのファイアウォール管理ツールとしてfirewalldが導入されています。
- CentOS: RHELをベースにしたオープンソースディストリビューションで、firewalldが同様に利用可能です。
- Rocky Linux: CentOSの後継ディストリビューションとして登場したRocky Linuxでも、firewalldが標準で利用可能です。
- AlmaLinux: RHEL互換のディストリビューションで、firewalldが使用できます。
2. Fedora
Fedoraは、firewalldがデフォルトのファイアウォール管理ツールとして提供されています。FedoraはRHELの開発版に位置づけられるため、最新機能のテストにも適しています。
3. SUSE系ディストリビューション
- openSUSE: openSUSE LeapおよびTumbleweedでもfirewalldが利用可能です。SUSE系ではYaSTが主要な管理ツールですが、firewalldもサポートされています。
- SUSE Linux Enterprise Server (SLES): 商用向けのSUSEディストリビューションでも、firewalldがオプションとして利用できます。
4. Debian系ディストリビューション
- Debian: デフォルトではiptablesが使われますが、firewalldも公式リポジトリからインストールして使用できます。
- Ubuntu: Ubuntuでは
ufw
(Uncomplicated Firewall)がデフォルトですが、firewalldもインストールして利用できます。サーバー版やデスクトップ版の両方で使用可能です。
5. Arch系ディストリビューション
Arch Linux: インストール後にfirewalldを追加することで、Arch Linuxでもfirewalldを利用することができます。Archではiptablesなど他のファイアウォールツールもよく使われますが、firewalldもサポートされています。
1. Firewalldの基本操作
サービスの状態確認と操作
サービスのステータス確認
systemctl status firewalld
firewalldの開始
systemctl start firewalld
firewalldの停止
systemctl stop firewalld
firewalldの再起動
systemctl restart firewalld
firewalldの有効化(ブート時に自動起動)
systemctl enable firewalld
firewalldの無効化
systemctl disable firewalld
2. ゾーンの管理
ゾーンの一覧表示
firewall-cmd --get-zones
アクティブなゾーンの確認
firewall-cmd --get-active-zones
ゾーンのデフォルト設定
firewall-cmd --set-default-zone=<zone_name>
インターフェースをゾーンに追加
firewall-cmd --zone=<zone_name> --add-interface=<interface_name> --permanent
インターフェースをゾーンから削除
firewall-cmd --zone=<zone_name> --remove-interface=<interface_name> --permanent
3. サービスとポートの管理
※「–permanent」をつけることで設定を永続化します。つけないでコマンドを実行した場合、その設定は一時的なものとなり、再起動などで設定が消えてしまいます。
サービスの追加
firewall-cmd --zone=<zone_name> --add-service=<service_name> --permanent
サービスの削除
firewall-cmd --zone=<zone_name> --remove-service=<service_name> --permanent
ポートの追加
firewall-cmd --zone=<zone_name> --add-port=<port_number>/<protocol> --permanent
ポートの削除
firewall-cmd --zone=<zone_name> --remove-port=<port_number>/<protocol> --permanent
4. 設定の反映と確認
設定の再読み込み
再読み込み時に、–permanentをつけていない設定はリセットされますので注意してください。
firewall-cmd --reload
設定の確認
firewall-cmd --list-all --zone=<zone_name>
直近の設定変更を反映せずにリセット
firewall-cmd --complete-reload
特定のサービスが許可されているかの確認
firewall-cmd --zone=<zone_name> --query-service=<service_name>
特定のポートが許可されているかの確認
firewall-cmd --zone=<zone_name> --query-port=<port_number>/<protocol>
5. その他の便利なコマンド
ファイアウォールの一時的な無効化
firewall-cmd --panic-on
ファイアウォールの再有効化
firewall-cmd --panic-off
ファイアウォールの現在のステータスを確認
firewall-cmd --state
-
前の記事
Could not locate cudnn_ops_infer64_8.dll. Please make sure it is in your library path!のエラー対応の話 2024.09.06
-
次の記事
記事がありません
Author:KMMR 投稿一覧
技術屋さんです。
普段はPHP, Perl, Ruby, Pythonなどを触っています。
AWSなどのIaaSもちょこちょこ触っているので、備忘などを書いていきます。