Fail2ban
在 Ubuntu 服务器上安装和配置 Fail2ban,暂时封禁多次 SSH 认证失败的来源地址。
执行前须知
以下示例适用于使用 systemd 和受支持防火墙的 Ubuntu 服务器。软件包名称、日志来源和防火墙后端因发行版而异。Fail2ban 只能减少反复尝试登录,不能替代 SSH 密钥、系统更新或访问控制。请保持现有管理员会话及控制台恢复方式可用,避免从唯一可用的管理地址测试。检查 SSH jail 是否读取实际认证日志,以及防火墙规则是否生效。不了解风险时,不要将大范围网络加入白名单。
修改生效后,请先通过新的 SSH 会话确认可以正常登录,并验证预期功能。在确认成功之前,请保持当前会话打开,以便必要时恢复配置。
使用示例
在 Ubuntu 上安装 Fail2ban 并启动其服务。安装需要管理员权限。
sudo apt update
sudo apt install fail2ban
sudo systemctl enable --now fail2ban创建独立配置文件 /etc/fail2ban/jail.d/sshd.local,写入以下内容;不要直接修改软件包提供的 jail.conf。示例使用 systemd 日志,10 分钟内失败 5 次后封禁来源地址 1 小时。
使用 nano 打开文件:
sudo nano /etc/fail2ban/jail.d/sshd.local[sshd]
enabled = true
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h验证配置;验证成功后重启服务并查看 SSH jail 状态。确认使用了正确的日志来源和防火墙规则。
sudo fail2ban-client -t && sudo systemctl restart fail2ban && sudo fail2ban-client status sshd如果 jail 未启动或未检测到失败记录,请检查最近的服务日志。
sudo journalctl -u fail2ban -n 100 --no-pager如授权地址被封禁,通过仍然打开的管理员会话或服务器控制台解除封禁;请替换示例地址。
sudo fail2ban-client set sshd unbanip 192.0.2.10权威参考
核对日期:2026 年 10 月 27 日