在Python 2.6.6的CentOS 6.5上运行fail2ban 0.8.14,fail2ban把我的IP放在禁止列表中,但是实际上并没有阻止我login。
下面是/var/log/fail2ban.log中一个失败禁令的例子(我想?):
ERROR iptables -D fail2ban-SSH -s xxx.xxx.xxx.xxx -j REJECT --reject-with icmp-port-unreachable returned 100
有趣的是,我在另外两台机器上工作,其中一台是CentOS 6.6,另一台是CentOS 6.5,jail.conf和jail.local文件在两台机器上都是相同的。
我重新启动了fail2ban多次,添加Port = <my number>指令到[ssh-iptables]下的jail.local文件,但仍然没有运气。
同样,在运行fail2ban-client status ssh-iptables ,IP显示在被禁止的IP列表中,但是我仍然可以login。
任何想法可能会导致这个问题?
更新:它似乎间歇性地工作。 等了大约20分钟后,终于阻止了我的login。 所以我想这只是一个巨大的延迟?
在遇到问题时查看iptables的状态会很有帮助。
fail2ban实际上并不执行阻塞连接请求,它只是在iptables防火墙检测到jail.conf.local中定义的可禁止的动作时才添加规则。
所以你应该首先检查iptables的状态
sudo iptables -S
并确保与您正试图禁止的计算机相对应的DROP规则存在并正确configuration。
日志:
错误iptables -D fail2ban -s SSH -s xxx.xxx.xxx.xxx -j REJECT –reject-with icmp-port-unreachable returned 100
看起来像fail2ban试图通过从fail2ban-ssh链中删除DROP规则来解除xxx.xxx.xxx.xxx IP(在unban期过后)。
它看起来像返回一个错误100退出代码,可能是因为它正在尝试-D (删除)的规则不存在,这也可以解释为什么你不被阻止 – DROP规则没有正确加载到iptables中。