Firewalldを使用していますが、ドロップゾーンは、ゾーンに割り当てられたインターフェイスを持つデフォルトゾーンです。
次に、ドロップゾーンを通過するトラフィックを許可する豊富なルールを設定し、firewall-cmd --set-log-denied=all
。これは、ホワイトリストに記載されたリッチルールに由来しないサーバーへの接続を試みるすべてのログを記録すると考えていましたが、ログには記録されません。サーバーに対してポートスキャンを実行しましたが、/ var/log/messagesに拒否されたポートのログが表示されません。
ただし、デフォルトゾーンをパブリックに設定し、インターフェイスをパブリックに割り当てると、別のポートスキャンを実行したときに拒否されたパケットがログに記録されます。
どうして?
コメントで述べられているように、問題はバグに関連しているようです。ただし、ファイアウォール拒否パケットのログを取得するのにまだ問題がある場合は、次の方法でうまくいきました。
以下はfirewalld
+ rsyslogd
で動作しました
/etc/sysconfig/firewalld
を編集し、LogDenied
の値をall
に更新します(または必要に応じて)
LogDenied=all
firewalldを再起動します
Sudo systemctl restart firewalld
または、コマンドラインを使用して、次のコマンドを実行できます。
Sudo firewall-cmd --set-log-denied all
これは通常、ファイアウォールの拒否/ドロップルールの直前にログルールを追加します。
LOG all -- anywhere anywhere LOG level warning prefix "IN_drop_DROP: "
LOG all -- anywhere anywhere LOG level warning prefix "FINAL_REJECT: "
/etc/rsyslog.d/custom_iptables.conf
という名前のファイルを作成し、それに次のステートメントを追加します。
:msg,contains,"_DROP" /var/log/iptables.log
:msg,contains,"_REJECT" /var/log/iptables.log
& stop
rsyslogを再起動します
Sudo systemctl restart rsyslog
これで、ドロップおよび拒否されたパケットが/var/log/iptables.log
に記録されます
すばらしい仕事でした。これにより、正しい道を進むことができました。投稿に感謝します。
私が気付いた唯一のことは、LogDenied=all
は/etc/firewalld/firewalld.conf
以降/etc/sysconfig/firewalld
は、起動コマンドラインオプション用です。さらに、rsyslogのファイルの名前は.confの方が適切です。デフォルトのincludeステートメントで.logファイルが検索されない場合があります。
本当に良い仕事VanagaS!
ref: https://firewalld.org/documentation/man-pages/firewalld.conf.html