#author("2025-10-12T21:17:21+09:00","default:k1rou","k1rou")
#author("2025-10-12T21:28:21+09:00","default:k1rou","k1rou")
*firewalld [#w9914441]
-Dynamic Firewall Manager

**概要 [#h4bb8d40]
-[[RHEL]]、[[CentOS]] ※CentOS7以降
-[[ファイアウォール]]
-裏側では[[iptables]]を利用している
-https://firewalld.org/

*firewalldの特徴 [#c498fae6]
-設定の変更がサービスを再起動せずに反映される
-[[NIC]]ごとにセキュリティポリシーを設定できる

*firewalldの機能 [#hefc0a4f]
**ゾーン [#p9576cf2]
-Zone
-ゾーンの単位でセキュリティポリシーを設定する
-ゾーンに[[NIC]]を割り当てることで、[[NIC]]ごとに異なるをセキュリティポリシーを適用できる

***アクティブゾーン [#t7e01bfb]
-Active Zone
-[[NIC]]が割り当てられているゾーンのこと

***デフォルトゾーン [#h9cced8e]
-Default Zone
-新しく接続された[[NIC]]に対して自動的に適用されるゾーン
-明示的にゾーンを設定していない[[NIC]]には、デフォルトゾーンが自動的に適用される

*ゾーンの種類(デフォルト) [#d724f61e]
| zone | 説明 |h
| drop | 全てのパケットを破棄する |
| block | 全てのパケットを受信拒否する(ICMP Prohibitedメッセージを応答する) |
| external | サービス(ssh)、IPマスカレードが有効 |
| dmz | サービス(ssh) |
| public | サービス(ssh,cockpit,dhcpv6-client) |
| work |  サービス(ssh,cockpit,dhcpv6-client) |
| home | サービス(ssh,cockpit,dhcpv6-client,mdns,samba-client) |
| internal | サービス(ssh,cockpit,dhcpv6-client,mdns,samba-client) |
| nm-shared | サービス(icmp,ipv6-icmp) |
| trusted | 全てのパケットを受信許可する |

*コマンド [#kb7d4a21]
**サービスの操作(systemctl) [#gbac44df]
 systemctl status firewalld
 systemctl start firewalld
 systemctl stop firewalld
 systemctl reload firewalld

**firewalld [#y6c03850]

**firewall-cmd [#n6bfa108]
-サービスの起動状態を確認
 firewall-cmd --state

-ゾーンの確認
--アクティブゾーン
 firewall-cmd --get-active-zones
--デフォルトゾーン
 firewall-cmd --get-default-zone
--ゾーンの一覧を確認(利用可能なゾーンが表示される)
 firewall-cmd --get-zones

-ゾーンの設定を確認
--アクティブなゾーン
 firewall-cmd --list-all
 firewall-cmd --list-all --permanent
--指定したゾーン
 firewall-cmd --list-all --zone=<zone-name>
--全てのゾーン
 firewall-cmd --list-all-zones
--アクティブなゾーンの公開されているサービス
 firewall-cmd --list-services
 firewall-cmd --list-services --permanent
--アクティブなゾーンの公開されているポート
 firewall-cmd --list-ports
 firewall-cmd --list-ports --permanent
--登録されているリッチルール
 firewall-cmd --list-rich-rules

-NICをゾーンに設定
--NICのゾーンを変更する
 firewall-cmd --change-interface=<NIC_name> --zone=<zone-name> --permanent
--NICのゾーンを削除する
 firewall-cmd --remove-interface=<NIC_name> --zone=<zone-name> --permanent

-ゾーンの設定を変更 ※zoneを指定しなかった場合、defaultゾーンに設定される
--サービス
 firewall-cmd --add-service=<service-name> --zone=<zone-name> --permanent ※追加(公開)
 firewall-cmd --remove-service=<service-name> --zone=<zone-name> --permanent ※削除(非公開)
 firewall-cmd --query-service=<service-name> --zone=<zone-name> ※現在の設定を確認

--ポート
 firewall-cmd --add-port=<port-no> --zone=<zone-name> --permanent ※追加(公開)
 firewall-cmd --remove-port=<port-no> --zone=<zone-name> --permanent ※削除(非公開)
--接続元IPv4アドレス
 firewall-cmd --add-source=<ipv4-address>/<cidr> --zone=<zone-name> --permanent ※追加(許可)
 firewall-cmd --remove-source=<ipv4-address>/<cidr> --zone=<zone-name> --permanent ※削除(不許可)
--ICMP
---icmp-block-inversion
 firewall-cmd --add-icmp-block-inversion --zone=<zone-name> ※有効(yes)
 firewall-cmd --remove-icmp-block-inversion --zone=<zone-name> ※無効(no)
 firewall-cmd --query-icmp-block-inversion --zone=<zone-name> ※現在の設定を表示
---icmp-blocks 
 firewall-cmd --add-icmp-block=<icmp-type> --zone=<zone-name> ※追加(許可)
 firewall-cmd --remove-icmp-block=<icmp-type> --zone=<zone-name> ※削除(不許可)
 firewall-cmd --query-icmp-block=<icmp-type> --zone=<zone-name> ※現在の設定を確認
--[[IPマスカレード]]
 firewall-cmd --add-masquerade --zone=<zone-name> ※有効(yes)
 firewall-cmd --remove-masquerade --zone=<zone-name> ※無効(no)
 firewall-cmd --query-masquerade --zone=<zone-name> ※現在の設定を確認
--IPv4フォワードポート([[DNAT]])
 firewall-cmd --add-forward-port=<変換ルール> --zone=<zone-name> ※追加
 firewall-cmd --remove-forward-port=<変換ルール> --zone=<zone-name> ※削除
 firewall-cmd --query-forward-port=<変換ルール> --zone=<zone-name> ※現在の設定を確認
 firewall-cmd --list-forward-ports --zone=<zone-name> ※現在の設定を確認
 ※変換ルールの例:
 port=443:proto=tcp:toaddr=192.168.1.1

--リッチルール
 firewall-cmd --add-rich-rule='rule family="ipv4" source address="<ipv4-address>" service name="<service-name>" accept' --zone=<zone-name> ※追加
 firewall-cmd --add-rich-rule='rule family="ipv4" source address="<ipv4-address>" protocol="<tcp/udp>" port="<port-no>" accept' --zone=<zone-name> ※追加
 firewall-cmd --remove-rich-rule='rule family="ipv4" source address="<ipv4-address>" service name="<service-name>" accept' --zone=<zone-name> ※削除

-永続設定を反映する ※永続的に設定する場合、--parmanentオプションを指定して実行後、--reloadする必要があります
 firewall-cmd --reload

-デフォルトゾーンを変更
 firewall-cmd --set-default-zone=<zone-name>

-サービスの情報を確認
--サービスの一覧(利用可能なサービス)
 firewall-cmd --get-services
 firewall-cmd --get-services | tr ' ' '¥n'
--サービスの詳細情報(対象ポート番号など)
 firewall-cmd --info-service=<service-name>


-ICMP TYPEの情報を確認
--ICMP TYPEの一覧(利用可能なICMP TYPE)
 firewall-cmd --get-icmptypes


*設定ファイル [#ube78e8c]
-/etc/firewalld/firewalld.conf

-ゾーンの定義ファイル
--/usr/lib/firewalld/zones/<zone-name>.xml ※デフォルト
--/etc/firewalld/zones/<zone-name>.xml

-サービスの定義ファイル
--/usr/lib/ rewalld/services/<service-name>.xml ※デフォルト

-インターフェイスの設定ファイル(明示的に指定したゾーンが設定される)
--/etc/NetworkManager/system-connections/<interface-name>.nmconnection
 [connection]
 zone=<zone-name>

*関連サイト [#acbe94fc]
-CentOS 7 firewalld よく使うコマンド(2019.10.2)~
https://qiita.com/kenjjiijjii/items/1057af2dddc34022b09e

-CentOS7徹底入門 -firewalld (2015.10.13) - Nedia Blog~
https://www.nedia.ne.jp/blog/tech/2015/10/13/6031

-Predefined Zones - firewalld公式~
https://firewalld.org/documentation/zone/predefined-zones.html

*関連用語 [#e8a1ef1a]
-[[ufw]]
-[[Linuxのネットワーク]]
-[[D-BUS]]
-[[ファイアウォール]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS