firewalld のメモ書き
概要
CentOS7 で導入された firewalld のメモ書き
firewalld のメリット
- ダイナミックに動作するので,ルール変更時などに通信を切断しなくて良い
- ステートフルパケットインスペクションが可能
- Zeroconf に対応
firewalld のゾーン
標準で以下の9つのゾーンが定義されている.
- drop
- block
- public
- external
- dmz
- work
- home
- internal
- trusted
各ゾーンのデフォルト設定ファイルは /usr/lib/firewalld/zones に格納されている.
実際に,設定をする際は firewall-cmd コマンドなどで /etc/firewalld/zones 配下のファイルを変更する.
# pwd /usr/lib/firewalld/zones # ls block.xml dmz.xml drop.xml external.xml home.xml internal.xml public.xml trusted.xml work.xml # pwd /etc/firewalld/zones # ls public.xml public.xml.old
設定ファイルの参照順序
以下の順番で参照される
- /etc/firewalld 配下
- /usr/lib/firewalld 配下
firewalld の起動と停止など
// 状態確認 # systemctl status firewalld // 起動 # systemctl start firewalld // 終了 # systemctl stop firewalld // 設定ファイルの読み込み # systemctl reload firewalld // 有効にする # systemctl enable firewalld // 無効にする # systemctl disable firewalld // disable よりも強い無効化 # systemctl unmask firewalld // unmask の取り消し # systemctl mask firewalld
ゾーンとその設定の確認方法
// 現在のゾーンを確認する # firewall-cmd --get-active-zone public interfaces: enp0s25 // ゾーンの設定を確認する # firewall-cmd --zone=public --list-all public (default, active) interfaces: enp0s25 sources: services: dhcpv6-client ssh ports: 5000/tcp masquerade: no forward-ports: icmp-blocks: rich rules:
ゾーンにパケットの設定をする
// 5000番ポートを恒久的に通信を許可する # firewall-cmd --zone=public --add-port=5000/tcp --permanent // 恒久的にサービスを追加する # firewall-cmd --zone=public --add-service=http --permanent