我想知道是否有办法知道被禁止的 IP 是否仍在尝试联系我的服务器以及他正在尝试做什么?
fail2ban.log 似乎显示了谁被禁止了,但如果被禁止的 IP 仍在尝试联系我,则不会显示,我错了吗?
如果可能的话,提前感谢任何能找到这些细节的线索:)
亲切的,Krys
答案1
通常情况下,Fail2ban 会根据应用程序日志文件中的恶意模式禁止特定 IP 地址。通常情况下,fail2ban 会通过生成(临时)防火墙规则来阻止违规 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 地址117.253.208.237
发送了 4 个数据包,这些数据包在被防火墙阻止并117.239.37.150
完全撤退后被记录下来。
正如另一个答案所提到的,您可以指示 fail2ban 创建一个生成日志事件的防火墙规则,然后您可以对其进行后期处理以获得类似的见解,但这不是 fail2ban 本身会处理和报告的内容。