Rootop 服务器运维与web架构

fail2ban入门配置及效果测试

| 暂无评论

      当我们服务器开启了远程维护或者是运行着比如mail之类的应用程序,会有N多的非法IP来探测用户的弱口令,造成安全隐患,那么我们就需要一个工具来监控并及时的清楚掉安全隐患。

        非法用户猜解用户的密码,比如ssh服务时或者mail服务时,在系统日志中会出现相关的日志。比如我下面截取一段:

Jun 23 09:46:28 rhel6www sshd[2019]: Failed password for root from 172.17.1.19 port 7531 ssh2
Jun 23 09:46:30 rhel6www unix_chkpwd[2023]: password check failed for user (root)
Jun 23 09:46:32 rhel6www sshd[2019]: Failed password for root from 172.17.1.19 port 7531 ssh2
Jun 23 09:46:33 rhel6www unix_chkpwd[2024]: password check failed for user (root)
Jun 23 09:46:35 rhel6www sshd[2019]: Failed password for root from 172.17.1.19 port 7531 ssh2
172.17.1.19 这个客户端不断尝试root的密码。
       fail2ban的原理就是分析日志记录,对于在一定时间内登录失败一定次数后,就利用iptables对此IP做出指定的规则限制。

  现在知道了fail2ban的作用原理,那么接下来就是在服务器上安装fail2ban了。

  首先要下载fail2ban,最新版本的下载地址是0.8.4:

http://sourceforge.net/projects/fail2ban/files/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2/download

  下载后,执行下列命令。

tar jxvf fail2ban-0.8.4.tar.bz2
cd fail2ban-0.8.4
./setup.py install    //安装
     将启动文件复制到启动目录/etc/init.d/。
我的系统是Redhat,所以复制redhat_initd到/etc/init.d下,如果你的linux是其他系统版本,复制相应的文件即可。

cd files
cp redhat_initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban  
下面修改fail2ban的配置文件。配置文件在/etc/fail2ban/下。主要有两个配置文件,一个是fail2ban.conf,另一个是jail.conf。

vi /etc/fail2ban/jail.conf   
因为我只是要防ssh的暴力破解口令,配置相关中括号内容即可。

ignoreip = 127.0.0.1   // 忽略的IP,不同的IP使用空格分开
bantime  = 600   // 封IP时间,单位秒。等于-1时是永久封IP
findtime  = 600  // 多少秒内失败maxretry次数后就封IP
maxretry = 3   // 失败多少次数后就封IP,与上面的findtime配合使用 
[ssh-iptables]

enabled  = false /true  关闭/开启
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath  = /var/log/secure  //日志路径
maxretry = 5   //错误次数

 
设置好配置文件后,就可以启动fail2ban了。

/etc/init.d/fail2ban start或者是service fail2ban start
找台客户端做测试,当登陆到第6次错误时,便提示太多的认证次数失败。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/603.html

作者:Venus

服务器运维与性能优化

发表回复