Debian 12 上使用 Fail2Ban 来增强 SSH 的安全性

使用 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,确保规则已生效。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注