Fail2Ban通过监视SSH等服务的日志文件,对短时间内多次认证失败的IP进行封禁。
安装Fail2Ban
可以通过Apt、Yum、PacMan等包管理器安装软件包fail2ban:
sudo apt-get install fail2ban
配置Fail2Ban自动启动:
sudo systemctl enable fail2ban.service
配置Fail2Ban
Fail2Ban的配置文件模板位于/etc/fail2ban/jail.conf,由于软件更新可能修改此文件,因此直接修改此文件是不推荐的。您可以在/etc/fail2ban/中创建jail.local文件,在/etc/fail2ban/jail.conf的基础上进行增量修改:
cd /etc/fail2ban/
sudo vi jail.local
通常来说,您可能希望修改的选项包括启用特定的“监狱”(即要求Fail2Ban侦听面对特定服务的暴力破解攻击)以及对试图暴力攻击您的计算机的IP的封禁时间等。
如果您需要修改封禁时间等参数,可以在jail.local中新建[DEFAULT]结点,并覆盖如bantime(封禁时间)、bantime.increment(该选项可以使攻击者IP的封禁时长随着失败次数的增加而递增)等选项。有关更多信息,请参考jail.conf中的注释,或使用man 5 jail.conf命令查看Fail2Ban手册。
如果您需要启用特定“监狱”,请在jail.local中新建与jail.conf中相应服务结点同名的结点,并在下一行写入:
enabled = true
一个jail.local文件可能具有下面的样式:
# Fail2Ban Local Config File
# Modified by Picsell Dois
[DEFAULT]
bantime.increment = true
bantime = 25h
bantime.factor = 5
bantime.formula = (ban.Time * (1<<(ban.Count if ban.Count<20 else 20)) * banFactor) if ban.Count<3 else -1
[sshd]
enabled = true
保存jail.local后,您需要重新启动Fail2Ban,来使配置更改生效:
sudo systemctl restart fail2ban.service
或:
sudo fail2ban-client reload
检查Fail2Ban状态
您可以使用下面的命令检查Fail2Ban的当前状态:
sudo fail2ban-client status
Fail2Ban的日志文件位于/var/log/fail2ban.log。
参考资料
https://github.com/fail2ban/fail2ban
https://www.cnblogs.com/xiaobo0602/p/15256131.html