标签: Fail2Ban

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