使用 Fail2Ban 来增强 SSH 安全性是一个非常有效的选择,特别是针对暴力破解攻击。Fail2Ban 可以监控系统日志并自动封禁恶意 IP 地址,减少暴力破解的尝试。以下是配置 Fail2Ban 的步骤:
1. 安装 Fail2Ban
Debian 12 默认软件仓库中包含 Fail2Ban,可以通过以下命令安装:
apt update
apt install fail2ban
安装完成后,Fail2Ban 会自动启动。你可以使用以下命令检查其状态:
systemctl 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
,确保规则已生效。
发表回复