2021-05-02 10:19:52
fail2ban 是一种通过自动封禁恶意 IP 来增强系统安全性的工具,可有效降低暴力破解成功率、减少日志噪声并减轻服务器负载,与 2FA 结合可构建多层防御体系。 以下是具体说明:
一、fail2ban 的核心作用CentOS 7:
sudo yum install epel-release -ysudo yum install fail2ban -ysudo systemctl enable --now fail2banUbuntu/Debian:
sudo apt updatesudo apt install fail2ban -ysudo systemctl enable --now fail2ban检查服务状态:
sudo systemctl status fail2ban配置文件路径:避免直接修改 /etc/fail2ban/fail2ban.conf,应在 /etc/fail2ban/jail.d/ 下创建自定义文件(如 common.local)或编辑 jail.local。
示例配置:
[DEFAULT]ignoreip = 127.0.0.1/8 ::1 203.0.113.5 # 白名单(替换为可信 IP)bantime = 1h # 封禁 1 小时(可改为 86400 秒或 -1 永久)findtime = 10m # 统计窗口为 10 分钟maxretry = 5 # 失败 5 次触发封禁backend = auto # 自动选择日志解析方式[sshd]enabled = trueport = sshlogpath = /var/log/secure # CentOS 日志路径# Ubuntu 可用 /var/log/auth.log关键参数说明:
ignoreip:必须加入管理主机 IP,避免误封。
bantime/findtime/maxretry:需根据业务需求调整,例如对外服务可放宽阈值(如 maxretry=10)以减少误封。
误封处理:
解封 IP:
sudo fail2ban-client set sshd unbanip 1.2.3.4查看封禁列表:
sudo fail2ban-client status sshd日志轮转支持:fail2ban 默认通过 systemd 信号或 inotify 监听日志变化,无需额外配置即可兼容 logrotate。
生产环境建议:
对外服务采用更宽松的策略(如 findtime=30m、maxretry=10)。
结合云服务商的 ACL/WAF(如 AWS Security Group、阿里云盾)实现边缘拦截。
fail2ban 仅支持 Linux,Windows 公网 RDP 防护可选用:
fail2ban 通过自动化封禁恶意 IP,与 2FA 形成互补防御: