安装
Centos上可以直接通过yum install fail2ban –y安装。安装完成后,可在/etc/fail2ban路径下找到程序运行的相应文件。在filter.d目录下存放有fail2ban支持的所有过滤器,action.d目录下存放有fail2ban支持的所有动作。通过在jail配置文件中组合多种过滤器与动作,可以实现各种自定义的防御功能(不仅限于SSH防护)。
配置及运行
对于fail2ban而言,每个.conf配置文件都可以被同名的.local文件重写。程序先读取.conf文件,然后读取.local文件。.local中的配置优先级更高。通过新建jail.local,增加下述配置,运行fail2ban-client start来实现对SSH暴力破解的防御。
[DEFAULT]
#白名单
ignoreip = 127.0.0.1/8
#解封禁时间
bantime = 600
#试错窗口时间
findtime = 600
#容许试错次数
maxretry = 3
[ssh-iptables]
#使能
enabled = true
#选择过滤器
filter = sshd
#选择防御动作
action = iptables[name=SSH, port=ssh, protocol=tcp]
#邮件通知
sendmail-whois[name=SSH,dest=yang.hongyu@99cloud.net, sender=test@email.com]
#SSH日志路径
logpath = /var/log/secure
#容许试错次数(优先级比default高)
maxretry = 1
运行效果
通过对目标主机的SSH试错,/var/log/secure日志中记录了SSH登录的错误信息。fail2ban通过对该文件的分析,识别出当前正在遭遇到SSH的暴力破解,继而触发防御功能。fail2ban-client status命令可以查看当前fail2ban的运行状态,遭遇SSH暴力破解后,识别到的攻击IP被添加至Banned IP list中,实际阻断功能则是fail2ban通过在iptables中下发针对攻击IP的阻断规则来实现。