原理很简单,就是在规定时间内错误次数多了,就把你的IP禁止一定的时间。
安装
apt install -y fail2ban
配置
Fail2Ban 将所有配置文件保存在 /etc/fail2ban/
目录中。 主配置文件是 jail.conf
,它包含一组预定义的过滤器。 所以,不要编辑该文件,这是不可取的,因为只要有新的更新,配置就会重置为默认值。
只需在同一目录下创建一个名为 jail.local
的新配置文件,并根据您的意愿进行修改。 如果要启用对任何特定 IP 的访问,则可以将 IP 地址添加到 ignoreip 区域,对于多个 IP 的情况,用空格隔开 IP 地址。
配置文件中的 DEFAULT
部分包含 Fail2Ban 遵循的基本规则集,您可以根据自己的意愿调整任何参数。
# ignoreip:本部分允许我们列出 IP 地址列表,Fail2Ban 不会禁止与列表中的地址匹配的主机
# bantime:主机被禁止的秒数
# findtime:如果在最近 findtime 秒期间已经发生了 maxretry 次重试,则主机会被禁止
# maxretry:是主机被禁止之前的失败次数
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
vi /etc/fail2ban/jail.local
使用
我们不希望对配置文件进行任何更改,只需在服务区域中添加 enabled = true 这一行就可以启用任何服务。 禁用服务时将 true 改为 false 即可。
# 在[sshd] 当中开启 enabled = true之后
systemctl restart fail2ban.service
# 开机自启
systemctl enable fail2ban.service
验证
# log文件
tail -f /var/log/fail2ban.log
# 查看启用的监狱列表
fail2ban-client status
fail2ban-client status sshd
# 从 Fail2Ban 中删除禁止的 IP 地址
fail2ban-client set ssh unbanip 192.168.1.115