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 日