firewalld
をインストールしているリバースプロキシやロードバランサー配下のWebサーバーに
HTTPリクエストが届かなかった場合に、firewalld
が拒否しているのか、前段のサーバーが止めているのか把握しづらいことがある。
そこでfirewalld
が拒否したログを出力するようにして、firewalld
が拒否していることを確認できるようにする。
拒否ログの出力
firewalld
は通信の接続を拒否した場合、ログは何も出力されない。
拒否した場合のログを残すには以下のコマンドを実行する。
$ sudo firewall-cmd --set-log-denied=all
上記コマンドにより、firewalld
は通信の接続を拒否した場合、/var/log/messages
にログを出力するようになる。
Apr 22 04:59:31 ip-10-0-5-27 kernel: FINAL_REJECT: ↲
IN=eth0 OUT= MAC=0a:4b:a0:ec:7e:d7:0a:7a:6b:3e:2a:d1:08:00 ↲
SRC=xxx.xxx.xxx.xxx DST=yyy.yyy.yyy.yyy LEN=64 TOS=0x00 PREC=0x00 ↲
TTL=41 ID=0 DF PROTO=TCP SPT=58663 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0
設定の確認
設定状況を確認するには--get-log-denied
オプションを指定して以下のコマンドを実行する。
$ sudo firewall-cmd --get-log-denied
all
all
ならログを出力するように設定されている。off
ならログを出力しないように設定されている。
拒否ログの出力を停止
拒否ログの出力を停止するには以下のコマンドを実行する。
$ sudo firewall-cmd --set-log-denied=off
設定ファイルで拒否ログの出力を有効にする
設定ファイルでfirewalld
起動時に拒否ログの出力を有効にするには/etc/firewalld/firewalld.conf
のLogDenied
の値をall
に設定する。
LogDenied=all
上記のように設定しfirewalld
を再起動すると有効になる。
\第一線のプログラマーの行動原理を学べる!/