本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • 系统安全
  • 【系统安全】使用fail2ban防御SSH服务器的暴力破解攻击

【系统安全】使用fail2ban防御SSH服务器的暴力破解攻击

发布:TangLu2015-4-4 12:45分类: 系统安全 标签: iptables fail2ban 破解

对于一个生产线上的服务器,安全是非常重要的,自己的服务器暴露于公网上,随时都有可能被黑客入侵,常见的就有对SSH实行暴力破解的,黑客用密码词典一直登录尝试破解,下面的图片就可以看到一台服务器被尝试登陆的次数,这还只是一台测试机。fail2ban.png

 

如果服务器对于SSH并没有采用非密码验证的方式,如何来防止这种暴力破解呢?有一个软件可以非常好的实现——fail2ban,它是Linux 上一个著名的入侵保护程序,通过监控系统日志文件(如/var/log/secure)并根据检测到的任何可疑的行为自动触发不同的防御动作。下面来演示fail2ban的安装与使用,以SSH服务为例:

 

1、在安装fail2ban前需要配置EPEL软件源,EPEL是一个软件仓库,为RHEL/CentOS提供系统默认没有的软件包。
RHEL/CentOS系统有许多知名的第三方源,如RpmForge,EPEL,Remi等。多个第三方源可能引起系统的冲突,所以一般推荐只安装一个第三方源即可。下面是EPEL的安装步骤

下载EPEL的RPM安装包,以下两个链接分别是Centos6和Centos5的rpm安装包:

http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

下载好了后执行RPM安装,然后可以通过yum相关命令查看是否安装成功

fail2ban2.png

 

2、执行yum安装fail2ban程序,安装成功后会在/etc目录生成相关目录

[root@iZ25aj1q2ovZ ~]# yum install fail2ban

 

3、我们需要编辑的主配置文件为/etc/fail2ban/jail.conf,这是一个监狱文件,还有一个/etc/fail2ban/fail2ban.conf文件是配置日志相关的。在jail.conf文件里[DEFAULT]区域内定义所有受到监控的服务的默认参数,还可以在一些指定服务区域内定义专门的服务参数,如APACHE,SSH服务

[root@iZ25aj1q2ovZ fail2ban]# vi /etc/fail2ban/jail.conf

4、如果要对单独的服务做监控,只要在[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次失败请求,超过就被屏蔽掉

 

5、重启服务,不要忘了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

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


fail2ban3.png

 

7、测试下效果,用SSH登陆,故意输错密码5次,然后再用正确密码会发信一样登陆不进去,悲剧了哦,只有乖乖的等监狱时间结束,之后进去看看服务日志,ban和unban的间隔刚好是10分钟

fail2ban4.png

 

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

fail2ban-client status ssh-iptables    #查看对应服务的屏蔽列表


fail2ban-client set ssh-iptables unbanip 222.211.121.200    #从屏蔽列表里删除这个ip
总结:到此已经全部设置完毕,fail2ban可以对常用的服务进行监控,只要设置好对应的模块就可以,但是一定要注意规则的设置


 

 

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《【系统安全】使用fail2ban防御SSH服务器的暴力破解攻击
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-196.html  [生成短网址]

已有 0/3914 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~