【系统运维】使用fail2ban防止服务器暴力破解

发布时间 - 2022-01-13 14:30:58

一、fail2ban的作用

安全问题对于线上服务器一直都是最重要的一个环节。服务器暴露于公网上随时都有可能被黑客入侵,其中最为常见的方式就是使用密码词典对SSH实行暴力破解。下图就是一台服务器被尝试登陆的次数,这还只是一台刚创建不久的测试机:fail2ban.png

如果SSH没有采用非密码验证的方式进行登录,可以尝试使用fail2ban工具防止暴力破解,它通过监控系统日志文件(如/var/log/secure)并根据检测到的任何可疑的行为自动触发不同的防御动作。


二、fail2ban使用教程

1、安装fail2ban

配置EPEL软件源后可以直接使用yum安装,EPEL配置过程略。


[root@iZ25aj1q2ovZ ~]# yum install fail2ban


 

2、编辑主配置文件/etc/fail2ban/jail.conf,这是一个监狱文件,还有一个/etc/fail2ban/fail2ban.conf文件是配置日志相关的。在jail.conf文件里[DEFAULT]区域内定义所有受到监控的服务的默认参数,还可以在一些指定服务区域内定义专门的服务参数,如APACHE,SSH服务。如果要对单独的服务做监控,只要在[DEFAULT]区后面添加相关内容即可,默认已经把常用服务全部配置了一个简单的规则,如[ssh-iptables]模块里是对SSH服务的监控设置,禁止IP地址的操作是通过iptables来实现。下面是一个“ssh-iptables”案例

[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.1.0/24    #设置可以通行的白名单IP,空格分割
ignorecommand =
bantime  = 600    #禁止服务的时长,以秒为单位,这里是10分钟
findtime  = 600
maxretry = 3    #被禁止服务前可以尝试的更大次数
backend = auto
usedns = warn

[ssh-iptables]
enabled  = true    #开启对SSH的监控
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
          sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]
logpath  = /var/log/secure
maxretry = 5    #SSH最多可以有5次失败请求,超过就被屏蔽掉


3、重启服务,不要忘了chkconfig一下让服务开机自动启动


[root@iZ25aj1q2ovZ fail2ban]# service fail2ban restart
Stopping fail2ban:                                         [  OK  ]
Starting fail2ban:                                         [  OK  ]



[root@iZ25aj1q2ovZ ~]# chkconfig fail2ban on
[root@iZ25aj1q2ovZ ~]# chkconfig --list fail2ban
fail2ban        0:off   1:off   2:on    3:on    4:on    5:on    6:off


4、之前提到fail2ban的监控是通过iptables实现的,那么我们看看在设置了一个服务后iptables里的表现,可以看到SSH端口的信息已经出现了

fail2ban3.png

 

5、使用SSH登录测试,这里故意输错密码5次,然后再用正确密码会发信一样登陆不进去,直到出狱。服务日志中可以看到ban和unban的间隔刚好是10分钟

fail2ban4.png

 

6、如果想要解锁被fail2ban屏蔽的IP地址,可以使用iptables命令删除规则或者fail2ban-client命令

fail2ban-client status ssh-iptables    #查看对应服务的屏蔽列表
fail2ban-client set ssh-iptables unbanip 222.211.121.200    #从屏蔽列表里删除这个ip


7、到此已经全部设置完毕,fail2ban可以对常用的服务进行监控,只要设置好对应的模块就可以,但是一定要注意规则的设置


在线咨询
联系方式
微信二维码
线