使用 Fail2Ban 提高宝塔服务器的 SSH 与网站防暴力破解能力

2025.5.29 杂七杂八 1343

使用 Fail2Ban 提高宝塔服务器的 SSH 与网站防暴力破解能力

基于日志触发的动态封禁机制,让你的服务器更安全可靠

Fail2Ban 是一款基于日志的入侵防御工具,能够自动识别 SSH 爆破、网站后台暴力登录等行为,并将攻击 IP 封禁一段时间。本文将教你如何在宝塔服务器中手动配置 Fail2Ban,提高整体安全防御能力。

1. 安装 Fail2Ban

Debian/Ubuntu 系统:


apt update && apt install fail2ban -y
  

CentOS 系统:


yum install epel-release -y
yum install fail2ban -y
  

2. 启动并设置开机自启


systemctl start fail2ban
systemctl enable fail2ban
  

3. 配置 SSH 防护规则

编辑配置文件 /etc/fail2ban/jail.local,新增以下内容:


[sshd]
enabled = true
port = ssh
logpath = /var/log/secure
maxretry = 5
findtime = 600
bantime = 3600
  

说明:

  • maxretry: 最大尝试次数
  • findtime: 多次失败的统计时间(秒)
  • bantime: 封禁时间(秒)

4. 配置 nginx 网站后台防护(可选)

针对网站后台如 /admin 被扫描爆破的行为,可以监控 nginx 日志封 IP:


[nginx-admin]
enabled = true
port = http,https
filter = nginx-admin
logpath = /www/wwwlogs/*.log
maxretry = 5
bantime = 1800
findtime = 300
  

创建对应的过滤规则 /etc/fail2ban/filter.d/nginx-admin.conf


[Definition]
failregex = <HOST> -.*"(GET|POST).*\/admin
ignoreregex =
  

5. 常用命令与日志查看


# 查看 Fail2Ban 状态
fail2ban-client status

# 查看某个 jail 的封禁记录
fail2ban-client status sshd

# 解封某个 IP
fail2ban-client set sshd unbanip 1.2.3.4
  

6. 配合宝塔面板的建议

  • 关闭宝塔面板默认的「弱密码允许登录」功能
  • 建议修改面板端口并启用双因素登录
  • Fail2Ban 不会与宝塔面板冲突,建议共存使用

总结

Fail2Ban 是一款灵活且高效的安全辅助工具,在宝塔环境中配合使用可显著提升服务器抗暴力攻击能力。通过自定义规则,你可以对网站目录、SSH 登录、FTP 爆破等进行全面防护。

评论