在linux上安装Fail2ban为了在CentOS或RHEL上安装fail2ban,首先设置EPEL仓库,然后运行以下命令。$sudoyuminstallfail2ban在Fedora上安装fail2ban,简单地运行以下命令:$sudoyuminstallfail2ban在ubuntu,Debian或LinuxMint上安装fail2ban:$sudoapt-getinstallfail2ban为SSH服务器配置Fail2ban现在你已经准备好了通过配置fail2ban来加强你的SSH服务器。你需要编辑其配置文件/etc/fail2ban/jail.conf。在配置文件的“[DEFAULT]”区,你可以在此定义所有受监控的服务的默认参数,另外在特定服务的配置部分,你可以为每个服务(例如SSH,Apache等)设置特定的配置来覆盖默认的参数配置。在针对服务的监狱区(在[DEFAULT]区后面的地方),你需要定义一个[ssh-iptables]区,这里用来定义SSH相关的监狱配置。真正的禁止IP地址的操作是通过iptables完成的。下面是一个包含“ssh-iptables”监狱配置的/etc/fail2ban/jail.conf的文件样例。当然根据你的需要,你也可以指定其他的应用监狱。$sudovi/etc/fail2ban/jail.local[DEFAULT]#以空格分隔的列表,可以是IP地址、CIDR前缀或者DNS主机名#用于指定哪些地址可以忽略fail2ban防御ignoreip=127.0.0.1172.31.0.0/2410.10.0.0/24192.168.0.0/24#客户端主机被禁止的时长(秒)bantime=86400#客户端主机被禁止前允许失败的次数maxretry=5#查找失败次数的时长(秒)findtime=600mta=sendmail[ssh-iptables]enabled=truefilter=sshdaction=iptables[name=SSH,port=ssh,protocol=tcp]sendmail-whois[name=SSH,dest=your@email.com,sender=fail2ban@email.com]#Debian系的发行版logpath=/var/log/auth.log#RedHat系的发行版logpath=/var/log/secure#ssh服务的最大尝试次数maxretry=3根据上述配置,fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在24小时内一直被禁止访问SSH服务。这个事件也会通过sendemail发送邮件通知。一旦配置文件准备就绪,按照以下方式重启fail2ban服务。在Debian,Ubuntu或CentOS/RHEL6:$sudoservicefail2banrestart在Fedora或CentOS/RHEL7:$sudosystemctlrestartfail2ban为了验证fail2ban成功运行,使用参数'ping'来运行fail2ban-client命令。如果fail2ban服务正常运行,你可以看到“pong(嘭)”作为响应。$sudofail2ban-clientpingServerreplied:pong测试fail2ban保护SSH免遭暴力破解攻击为了测试fail2ban是否能正常工作,尝试通过使用错误的密码来用SSH连接到服务器模拟一个暴力破解攻击。与此同时,监控/var/log/fail2ban.log,该文件记录在fail2ban中发生的任何敏感事件。$sudotail-f/var/log/fail2ban.log根据上述的日志文件,Fail2ban通过检测IP地址的多次失败登录尝试,禁止了一个IP地址192.168.1.8。