【RHEL】ファイアウォール設定(firewalld)

firewalldは、netfilterやnftablesを操作設定するために用意された仕組みのようです。
nftコマンドというものもあり細かい設定もできるそうですが、細かい設定が不要な場合にはより簡易に設定が行えるfirewalldを使用したほうが楽だそうです。
名前の後ろにデーモンのdがついているのでサービスとして実行されます。
今回は以下サイトを参考にさせていただきました。ありがとうございました。
firewalldの設定状態の確認
https://linuc.org/study/column/5301/
環境
評価版のRed Hat Enterprise Linux release 9.6 (Plow)
firewalldの状態確認
firewalldがサービスとして動作しているかどうかを確認します。
状態が「active(running)でサービスが起動していることが確認できます。また、firewalld.serviceは「enable」となりOS再起動時にサービスが自動起動するよう設定されていることが確認できます。
サービスを起動、OS再起動時の自動起動を設定する場合は、以下コマンドを実行します。
systemctl start firewalld
systemctl enable firewalld

firewalldの設定確認
firewalldの操作はfirewall-cmdコマンドを使用します。まず、現在の設定状態を確認してみます。
firewall-cmd –list-all

複数行表示されますが、確認しておきたいところは3か所となります。
1.public (active)
Publicと呼ばれるゾーン。 Firewalldには「ゾーン」という概念があり、ファイアウォール設定はゾーンに対しておこないます。 状態がactiveなので有効になっています。 インタフェースはゾーンに所属することになります。以下のコマンドでインターネット側のインタフェース(enp0s3)がどのゾーンに所属しているかを確認します。
firewall-cmd –get-active-zones

2.target: default
targetは、このゾーンに入ってきたパケットをどのように扱うかを設定しています。defaultの場合、ICMPは通すが、それ以外は通さない設定となります
3.services: cockpit dhcpv6-client ssh
servicesは、パケットの通過を許可するサービスです。
許可する通信を追加
以下のコマンドでは、サービスhttp、httpsの通信許可設定をゾーンpublicに対しておこなっています。
firewall-cmd –add-service=http –zone=public –permanent
firewall-cmd –add-service=https –zone=public –permanent
firewall-cmd –reload

設定の確認
以下のコマンドでゾーンpublicの設定を確認します。「http」「https」が追加されました。
firewall-cmd –list-all –zone=public

許可していた通信の削除
許可した設定を削除します。
サービス名で通信許可した場合の削除は以下のコマンドです。
firewall-cmd –remove-service=http –zone=public –permanent
firewall-cmd –reload

設定の確認
以下のコマンドでゾーンpublicの設定を確認します。「http」が削除されました。
firewall-cmd –list-all –zone=public

まとめ
今回はfirewalldについて検証した結果をまとめました。
以下、他の記事をまとめた一覧です。AWSもまとめています。