服务器被暴力破解,如何开启 fail2ban 防护?
服务器被暴力破解是新手站长常遇到的第一道安全关卡。
每天几千次密码尝试,轻则日志塞满,重则服务器被控制。
Fail2ban 是一款轻量级防护工具,能自动分析日志、封禁攻击 IP。
下面从零开始,一步步教你配置生效。
开始前的准备工作
确认你的系统类型。
Fail2ban 在 CentOS 7+、Ubuntu 18.04+ 上都能稳定运行。
操作前先用 root 或 sudo 用户登录,更新一下软件源:
# CentOS / Rocky Linux
yum update -y
# Ubuntu / Debian
apt update && apt upgrade -y
注意: 如果你用宝塔面板,也可以在面板的“软件商店”中安装 Fail2ban,但命令行方式更可控,推荐本文的操作顺序。
安装 Fail2ban
各发行版安装命令略有不同:
- CentOS 7/8、Rocky Linux、AlmaLinux
yum install epel-release -y
yum install fail2ban -y
- Ubuntu/Debian
apt install fail2ban -y
安装后先不要启动,因为默认规则太宽松,我们需要先自定义配置。
配置 SSH 防护规则(核心步骤)
Fail2ban 的配置目录是 /etc/fail2ban/。主配置文件为 jail.conf,但不要直接改它——升级会被覆盖。正确做法是新建一个 jail.local,写入你自己要启用的规则。
创建一个 SSH 专用配置文件:
vim /etc/fail2ban/jail.local
粘贴以下内容(可根据需要调整参数):
[DEFAULT]
# 封禁时间:3600 秒(1 小时)
bantime = 3600
# 在 findtime 秒内出现 maxretry 次失败就封禁
findtime = 600
maxretry = 3
# 邮件通知(可选),去掉注释并填上你自己的邮箱
action = %(action_mwl)s
[sshd]
enabled = true
port = ssh
# 日志路径,Ubuntu 通常为 /var/log/auth.log,CentOS 为 /var/log/secure
logpath = %(sshd_log)s
名词解释:bantime是封禁时长(秒),findtime是统计窗口,maxretry是允许的最大失败次数。新手建议先设maxretry = 5避免误封,稳定后再调低。
如果你的 SSH 端口不是默认 22,记得修改 port 为实际端口,例如 port = 2222。
启动并验证效果
配置写好后,启动 Fail2ban 并设为开机自启:
systemctl start fail2ban
systemctl enable fail2ban
查看运行状态:
fail2ban-client status
如果你能看到 sshd 对应的 Status 行,说明规则已加载。
更详细地查看 SSH jails 状态:
fail2ban-client status sshd
这里会显示当前被封禁的 IP 列表(Banned IP list)。
模拟测试: 在另一台机器上故意用错误密码多次 SSH 登录,过几分钟后检查上面的列表,就会看到对方 IP 被自动封禁。如果测试时发现自己也被封了,可以手动解封:
fail2ban-client set sshd unbanip 你的IP
避坑与高频问题
- 日志路径不对导致规则不生效
用 tail -f /var/log/secure(CentOS)或 tail -f /var/log/auth.log(Ubuntu)检查是否有失败记录。
如果路径不一致,在 jail.local 中显式指定 logpath = /var/log/auth.log。
- 封禁太严把自己封了
初次配置建议 maxretry = 5,
并第一时间在 jail.local 的 [DEFAULT] 段添加 ignoreip = 你的IP(多个 IP 用空格隔开),
例如:ignoreip = 127.0.0.1/8 8.8.8.8。
- Fail2ban 占用内存大吗?
非常轻量,通常只占用几十 MB 内存,老服务器也能放心用。
- 如何临时关闭 Fail2ban?
systemctl stop fail2ban,不会影响现有 SSH 连接,但新攻击无法自动防护。
最后说两句
服务器被暴力破解不可怕,装上 Fail2ban 就能挡住大多数脚本扫描。
如果你按照本文操作后仍然遇到问题(例如规则不触发),先检查日志路径和语法:fail2ban-client -d 可以打印最终配置,帮助你排查。
对于更严苛的环境,还可以配合 SSH 密钥登录 + 禁用密码登录,彻底堵死暴力破解这条路。
先从 Fail2ban 开始,安全之路一步一步走。