ファイアウォール
詳細は /rtfm/firewalld
第6章 FIREWALLD の使用および設定 https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/securing_networks/using-and-configuring-firewalld_securing-networks
firewalld サービスの起動
$ systemctl start firewalld.service
firewalld サービスの停止
$ systemctl stop firewalld.service
firewalld サービスの状態確認
$ systemctl status firewalld.service
または
$ firewall-cmd --state
このあたりは systemd, systemctl の話なので、詳しい話はそちらで。
ランタイム(実行時)ルールとパーマネント(永続)ルールとがある。
ランタイムルール ファイアウォールの再起動・リロードで消滅。
パーマネントルール ファイアウォールの再起動・リロードで読み込まれる。
原則として、パーマネント(--permanent)を指定すると、アクセス先はパーマネント側になる。
パーマネント(--permanent)を指定しないと、アクセス先はランタイム側になる。
ゾーンの一覧(名前のみ)を表示する。
$ firewall-cmd --get-zones
ゾーンの一覧を表示する。
$ firewall-cmd --list-all-zones
デフォルトのゾーンの取得(ゾーン無指定時に選ばれるゾーン)
$ firewall-cmd --get-default-zone
どのインターフェースにどのゾーンが割り当てられているかを表示する
$ firewall-cmd --get-active-zones
ゾーンを指定する場合は --zone=ゾーン名 を付ける。付けなければデフォルトゾーンが対象となる。
ゾーンの内容をすべて表示する。
$ firewall-cmd --list-all
現在のポート設定の一覧を表示する。
$ firewall-cmd --list-ports
設定を反映させるには reload が必要。
$ firewall-cmd --reload
特定のポートを開く
ポートには /tcp, /udp の指定が必要。(忘れがち。エラーになる。)
$ firewall-cmd --add-port=22/tcp --zone=public --permanent
特定のサービスのポートを開く
ポートには /tcp, /udp の指定が必要。(忘れがち。エラーになる。)
$ firewall-cmd --add-service=サービス名 --zone=public --permanent
firewalld が認識するエンティティ
ゾーン
インターフェース
チェーン
ルール
ゾーンはどうやって使うもの?
デフォルトで用意されているゾーン(環境により差がある)
block
dmz
drop
external
home
internal
nm-shared
public
trusted
work
中身はすべて空なので使い方をどうするかは管理者が決める。
ゾーンに紐付くインターフェースの指定
インターフェイスを複数のゾーンに割り当てることはできない。
ゾーンの追加
$ firewall-cmd --new-zone ゾーン名 --permanent
ゾーンにインターフェースを追加する。
$ firewall-cmd --add-interface インターフェース名 --zone=ゾーン名
ゾーンのインターフェースを変える。(前のゾーンからは取り除かれる。)
$ firewall-cmd --change-interface インターフェース名 --zone=ゾーン名
デフォルトゾーンの設定
デフォルトゾーンは public になっている。ゾーンを指定しなければデフォルトゾーンになる。
関連ファイル
/etc/firewalld 以下に各種情報が保存される。
/etc/firewalld/zones/ゾーン名.xml がゾーンの設定ファイル
関連
iptables
nftables