Linuxサーバのファイアウォールを設定する

サーバ

Linux(ここではAlmaLinux)のファイアウォール(ここでは、firewalld)を設定する際に、オプションはどうだったかを調べることが多いので、覚えておくと便利なコマンドを記録しておきます。サーバのインターネット側にファイアウォールやUTMがあっても油断せず、サーバのファイアウォールも設定してセキュリティを高めておきましょう。

こちらに記載していた一部の内容は、だっしぃのテクニカルブログに引っ越ししました。

ダイレクトルールの設定

firewalldでは、一般的なzoneを使用した場合は、外から入ってくるインバウンドの通信の制御を実施します。そこでダイレクトルールを使用することで、アウトバウンドの通信も制御可能にするなど、細かいルールを記載することが可能となります。この時、zoneに関係なくルールを適用することができます。

ダイレクトルールの確認

# firewall-cmd --direct --get-all-rules

ダイレクトルールへの追加

# firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 1 -p tcp --dport 443 -s 192.168.1.0/24 -j ACCEPT

ダイレクトルールの削除

# firewall-cmd  --direct --remove-rule ipv4 filter INPUT_direct 1 -p icmp -s 192.168.1.0/24 -j ACCEPT

その他お役立ち設定

特定のIPをドロップ

# firewall-cmd --zone=drop --permanent --add-source=XXX.XXX.XX.0/22

ログの出力(DENYされたログを出力)

# firewall-cmd --set-log-denied=all
# firewall-cmd --get-log-denied

allの代わりに、unicast、broadcast、multicast、off というオプションもあって、broadcastやmulticastのログが多くて嫌な場合は、unicastにすればいいらしい。

なお、上記のいずれも設定後は、以下のreloadコマンドを忘れずに!

# firewall-cmd --reload

(2023.9.13追記)
 こちらにFirewalldで国内IPアドレスからのみアクセス許可設定する手順を掲載しています。

今回はここまでです。最後までお読みいただきありがとうございました。