Debian 12 上使用 Fail2Ban 来增强 SSH 的安全性
使用 Fail2Ban 来增强 SSH 安全性是一个非常有效的选择,特别是针对暴力破解攻击。Fail2Ban 可以监控系统日志并自动封禁恶意 IP 地址,减少暴力破解的尝试。以下是配置 Fail2Ban 的步骤:
1. 安装 Fail2Ban
Debian 12 默认软件仓库中包含 Fail2Ban,可以通过以下命令安装:
apt update apt install fail2ban
安装完成后,Fail2Ban 会自动启动。你可以使用以下命令检查其状态:
Copysystemctl status fail2ban
2. 配置 Fail2Ban
Fail2Ban 的配置文件位于 /etc/fail2ban/ 目录下。默认的全局配置文件是 /etc/fail2ban/jail.conf,但建议不要直接修改该文件,而是创建一个本地配置文件 /etc/fail2ban/jail.local 或者在 /etc/fail2ban/jail.d/ 目录下添加自定义配置。
创建本地配置文件
首先,复制默认配置文件并编辑:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
配置 SSH 防护
在 jail.local 文件中,找到 [sshd] 部分,或者添加以下内容:
[sshd] enabled = true port = 22 filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 3600 findtime = 600
说明:
enabled = true:启用 SSH 防护。port = 22:SSH 默认端口(如果更改过端口,请相应调整)。filter = sshd:使用内置的 SSH 过滤器。logpath = /var/log/auth.log:Debian 12 中 SSH 日志的默认路径。maxretry = 5:如果超过 5 次登录失败,IP 将被封禁。bantime = 3600:封禁时间为 1 小时(单位:秒,视情况调整)。findtime = 600:统计失败登录尝试的时间窗口为 10 分钟。
完成后保存并退出编辑器。
3. 启动并测试 Fail2Ban
配置完成后,重启 Fail2Ban 以应用配置:
systemctl restart fail2ban
检查 Fail2Ban 是否正常运行:
fail2ban-client status
查看 SSH 防护的具体状态:
fail2ban-client status sshd
4. 监控和解禁
你可以随时查看被封禁的 IP 地址,并手动解禁:
查看被封禁的 IP
fail2ban-client get sshd banip
手动解禁某个 IP(如果误封)
fail2ban-client unban 目标IP
注意事项
确保 SSH 服务(sshd)已启用并正常运行。
如果使用了非标准日志路径,需要调整
logpath。定期检查日志文件
/var/log/fail2ban.log,确保规则已生效。








