web-dev-qa-db-ja.com

Firewalld-拒否されたパケットのロギングが有効-ロギングされません

Firewalldを使用していますが、ドロップゾーンは、ゾーンに割り当てられたインターフェイスを持つデフォルトゾーンです。

次に、ドロップゾーンを通過するトラフィックを許可する豊富なルールを設定し、firewall-cmd --set-log-denied=all。これは、ホワイトリストに記載されたリッチルールに由来しないサーバーへの接続を試みるすべてのログを記録すると考えていましたが、ログには記録されません。サーバーに対してポートスキャンを実行しましたが、/ var/log/messagesに拒否されたポートのログが表示されません。

ただし、デフォルトゾーンをパブリックに設定し、インターフェイスをパブリックに割り当てると、別のポートスキャンを実行したときに拒否されたパケットがログに記録されます。

どうして?

6
Matt B

コメントで述べられているように、問題はバグに関連しているようです。ただし、ファイアウォール拒否パケットのログを取得するのにまだ問題がある場合は、次の方法でうまくいきました。

以下は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に記録されます

4
VanagaS

すばらしい仕事でした。これにより、正しい道を進むことができました。投稿に感謝します。

私が気付いた唯一のことは、LogDenied=all/etc/firewalld/firewalld.conf以降/etc/sysconfig/firewalldは、起動コマンドラインオプション用です。さらに、rsyslogのファイルの名前は.confの方が適切です。デフォルトのincludeステートメントで.logファイルが検索されない場合があります。

本当に良い仕事VanagaS!

ref: https://firewalld.org/documentation/man-pages/firewalld.conf.html

4
kondor6c