
禁止された IP がまだ私のサーバーに接続しようとしているかどうか、またその IP が何をしようとしているのかを知る方法があるかどうかを知りたいです。
fail2ban.log には誰が禁止されたかは表示されるようですが、禁止された IP がまだ私にアクセスしようとしているかどうかは表示されません。間違っていますか?
可能であれば、詳細を見つけるためのヒントを教えていただければ幸いです :)
クリスより
答え1
通常、Fail2ban は、アプリケーション ログ ファイル内の悪意のあるパターンに基づいて特定の IP アドレスを禁止します。通常、fail2ban は (一時的な) ファイアウォール ルールを生成して問題のある IP アドレスをブロックし、その IP アドレスのみをログに記録します。
問題のある IP アドレスが禁止されると、それらの IP アドレスはアプリケーションにアクセスできなくなり、それらの IP アドレスからのイベントはアプリケーション ログ ファイルに記録されなくなります。したがって、それらのログ ファイルからは、問題のある IP アドレスが後退したかどうか、またはファイアウォールにまだアクセスしているかどうかを知ることはできません。
後者が発生しているかどうかを確認するには、現在のファイアウォール統計を調べてみてください。結果は異なる場合があります。
banaction = firewallcmd-ipset
ブロックされたすべての IP に対してルールと単一のカウンターのみが存在するホストの場合:
iptables -L -n -v
...
pkts bytes target prot opt in out source destination
6578 392K REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22 match-set f2b-sshd src reject-with icmp-port-unreachable
これにより、どのIPアドレスがブロックされたかを特定することができなくなります。f2b-sshd
ipset常習犯です。
ブロックされた各 IP が独自のルールの影響を受けるホストでは、たとえば次のようになります。
Chain fail2ban-SSH (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 REJECT all -- * * 117.239.37.150 0.0.0.0/0 reject-with icmp-port-unreachable
2 4 412 REJECT all -- * * 117.253.208.237 0.0.0.0/0 reject-with icmp-port-unreachable
たとえば、IP アドレスは4 つのパケットを送信しましたが、それらはブロックされて完全にバックオフされ117.253.208.237
た後、ファイアウォールによってログに記録されました。117.239.37.150
他の回答で述べたように、ログ イベントを生成するファイアウォール ルールを作成するように fail2ban に指示し、それを後処理して同様の洞察を得ることができますが、これは fail2ban がネイティブに処理してレポートするものではありません。