虽然设置了防火墙,但是考虑服务器的安全性,把fail2ban也安装了。
1. centos 系统:
sudo yum install -y epel-release
sudo yum install -y fail2ban
2. 启动 Fail2Ban 服务
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
3. 创建和配置 jail.local
Fail2Ban 的主配置文件是 /etc/fail2ban/jail.conf,但建议不要直接修改,而是创建一个 jail.local 文件以覆盖默认配置。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
打开编辑:
sudo nano /etc/fail2ban/jail.local
限制登录速率:
在 [DEFAULT] 下方添加:
[sshd]
enabled = true
port = 36580
filter = sshd
logpath = /var/log/secure
maxretry = 5
findtime = 600
bantime = 3600
action = iptables-multiport
这里踩坑了,不要空格,不然会出现错误
4. 检查和重新启动 Fail2Ban
sudo fail2ban-client reload
sudo systemctl restart fail2ban
5. 验证 Fail2Ban 是否生效
查看 Fail2Ban 状态:sudo fail2ban-client status
查看 sshd 监控状态:sudo fail2ban-client status sshd
为了测试规则是否有效,可以手动添加一个测试封禁:fail2ban-client set sshd banip <测试IP地址>
检查 iptables
:
iptables -L -n
4. 检查 Fail2Ban 日志
Fail2Ban 会记录所有的动作到日志中,检查 /var/log/fail2ban.log
是否有关于规则加载的错误信息:tail -n 50 /var/log/fail2ban.log