#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]] -[[ファイアウォール]]