基于日志触发的动态封禁机制,让你的服务器更安全可靠
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 爆破等进行全面防护。
评论