firewall

firewalldコマンドについて

CentOS7から「firewalld」コマンドがパケットフィルタの標準となっている。

CentOS6までは「iptables」を使用していた。

ただし、「firewalld」コマンドの内部では「iptables」を使用している。

ゾーンの概念

firewalldではゾーンという概念がある。このゾーンはNIC毎に適用して運用する。

※NIC = Network Interface Card

ゾーンは下記の9種類があり、よく「public」が使用される。

zone 説明
drop 全てのパケットを破棄する。
内部→外部へのパケットは許可されているが、返信パケットは破棄されるため、実質通信不可
block 外部からのパケットを破棄する。
内部→外部への通信および、返信パケットは許可される。
public デフォルトでは「ssh」および「dhcpv6-client」のみが許可されている。
external デフォルトでは「ssh」のみが許可される。
IPマスカレードが有効になる。
IPマスカレードとは
dmz デフォルトでは「ssh」のみが許可される。
work デフォルトでは「dhcpv6-cliet」「ipp-client」「ssh」が許可される。
home デフォルトでは「dhcpv6-cliet」「ipp-client」「mdns」「samba-client」「ssh」が許可される。
internal デフォルトでは「dhcpv6-cliet」「ipp-client」「mdns」「samba-client」「ssh」が許可される。
trusted 全てのパケットが許可される
設定確認

現在の設定を確認

$ firewall-cmd --list-all

指定したゾーンの設定を確認

$ firewall-cmd --zone=<ゾーン名> --list-all

デフォルトで設定されているゾーンの確認

$ firewall-cmd --get-default-zone
設定変更

設定時に指定できるサービス一覧

$ firewall-cmd --get-services

デフォルトゾーンの変更

$ firewall-cmd --set-default-zone=<zone>

追加できるサービス一覧を確認

$ ls /usr/lib/firewalld/services/

ゾーンへサービスを追加

$ firewall-cmd --zone=<zone> --add-service=<service> ※

※恒久的な設定の場合は「–permanent」を指定して、「firewall-cmd –reload」を実行する


参考サイト:【丁寧解説】Linuxのファイアウォール firewalld の使い方