在Ubuntu 14.04 Server上运行。
因此,我已正确配置了fail2ban以处理/var/log/auth.log
SSH登录尝试。
尝试3次失败后,我会在fail2ban日志中看到以下内容:
2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY
iptables -L
显示此链:
Chain fail2ban-ssh (1 references)
target prot opt source destination
REJECT all -- BANNED_IP_ADDY anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
但是从该IP,我仍然可以通过SSH登录而没有任何问题。
同样的故事适用于我所有的fail2ban监狱。以Apache为例,我可以看到fail2ban正确检测到该日志并声称它禁止了IP。IP最终在iptables链中,但是IP实际上并未被拒绝。
在这些情况下,我的感觉是因为SSH不在标准端口上。它在另一个端口上。
因此,如果我强制ssh jail规则使用新端口:
[ssh]
enabled = true
port = 32323
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
然后我看到此错误:
2014-11-19 15:30:06,775 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 400
2014-11-19 15:30:06,778 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh
iptables -A fail2ban-ssh -j RETURN
iptables -I INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh returned 400
2014-11-19 15:30:06,779 fail2ban.actions.action: ERROR iptables -n -L INPUT | grep -q 'fail2ban-ssh[ \t]' returned 100
2014-11-19 15:30:06,780 fail2ban.actions.action: CRITICAL Unable to restore environment
如果我把它保留为
port = ssh
然后,它正确进入了iptables,但是该链无法进行REJECT
通信(如上所述)。
更新:
如果我更改:
banaction = iptables-multiport
至:
banaction = iptables-allports
然后它似乎起作用。这种变化的后果是什么?
似乎fail2ban
由于SSH而导致禁止IP,因此allports
它禁止了该IP的每个端口。由于重复的ssh登录失败,有目的地被禁止了。也被禁止使用其他所有服务。
我从来没有遇到过带有fail2ban的问题。如果您想返回到阻塞单个端口,则可以尝试以下解决方案:oschgan.com/drupal/index.php?q=node/52。另外,如果iptables引起麻烦,fail2ban可以使用其他机制,例如hosts.deny或null路由。
—
digitaladdictions
检出
—
迈克尔
/etc/fail2ban/actions.d
,它具有一个文件,与每个禁令操作相对应。在内部,您将看到哪些命令用于禁止,取消禁止,启动和停止fail2ban。您可以尝试手动运行actionban命令,看看会发生什么。我
您的iptables还有什么?请提供的完整输出
—
jplitza
iptables -L -n -v
(必要时编辑IP地址)。特别要注意的是-v
,它将为每个链和规则提供字节和数据包计数器,从而简化了调试。
我有同样的问题。Fail2Ban禁止IP,我可以在fail2ban链中看到地址,我收到了被禁止的电子邮件,但ip地址仍然可以访问。更改对所有端口的禁令有效,但不知道为什么!
—
Ergec '17