检查fail2ban状态并解禁被锁住的IP地址

由于fail2ban的“ssh-iptables”监狱使用iptables来阻塞问题IP地址,你可以通过以下方式来检测当前iptables来验证禁止规则。

  1. $ sudo iptables --list -n
  1. Chain INPUT (policy ACCEPT)
  2. target prot opt source destination
  3. fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
  4.  
  5. Chain FORWARD (policy ACCEPT)
  6. target prot opt source destination
  7.  
  8. Chain OUTPUT (policy ACCEPT)
  9. target prot opt source destination
  10.  
  11. Chain fail2ban-SSH (1 references)
  12. target prot opt source destination
  13. DROP all -- 192.168.1.8 0.0.0.0/0
  14. RETURN all -- 0.0.0.0/0 0.0.0.0/0

如果你想要从fail2ban中解锁某个IP地址,你可以使用iptables命令:

  1. $ sudo iptables -D fail2ban-SSH -s 192.168.1.8 -j DROP

当然你可以使用上述的iptables命令手动地检验和管理fail2ban的IP阻塞列表,但实际上有一个适当的方法就是使用fail2ban-client命令行工具。这个命令不仅允许你对"ssh-iptables"监狱进行管理,同时也是一个标准的命令行接口,可以管理其他类型的fail2ban监狱。

为了检验fail2ban状态会显示出当前活动的监狱列表):

  1. $ sudo fail2ban-client status

为了检验一个特定监狱的状态例如ssh-iptables):

  1. $ sudo fail2ban-client status ssh-iptables

上面的命令会显示出被禁止IP地址列表。

为了解锁特定的IP地址:

  1. $ sudo fail2ban-client set ssh-iptables unbanip 192.168.1.8

注意,如果你停止了Fail2ban 服务,那么所有的IP地址都会被解锁。当你重启 Fail2ban,它会从/etc/log/secure(或 /var/log/auth.log)中找到异常的IP地址列表,如果这些异常地址的发生时间仍然在禁止时间内,那么Fail2ban会重新将这些IP地址禁止。

设置 Fail2ban 自动启动

一旦你成功地测试了fail2ban之后,最后一个步骤就是在你的服务器上让其在开机时自动启动。在基于Debian的发行版中,fail2ban已经默认让自动启动生效。在基于Red-Hat的发行版中,按照下面的方式让自动启动生效。

在 CentOS/RHEL 6中:

  1. $ sudo chkconfig fail2ban on

在 Fedora 或 CentOS/RHEL 7:

  1. $ sudo systemctl enable fail2ban

总结

在该教程中,我演示了如何安装并配置fail2ban来保护一个SSH服务器。当然fail2ban可以缓解暴力密码攻击,但是请注意,这并不能保护SSH服务器避免来自复杂的分布式暴力破解组织,这些攻击者通过使用成千上万个机器控制的IP地址来绕过fail2ban的防御机制。


via: http://xmodulo.com/how-to-protect-ssh-server-from-brute-force-attacks-using-fail2ban.html

作者:Dan Nanni 译者:theo-l 校对:wxy




相关内容