天天看点

fail2ban[防止linux服务器被暴力破解]一 介绍fail2ban二 试试

   fail2ban

可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的ssh、

smtp、ftp密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个ip,而且可以发送e-mail通知系统管理员,是一款很实用、很

强大的软件!

功能和特性:

  1、支持大量服务。如sshd,apache,qmail,proftpd,sasl等等

  2、支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等。

  3、在logpath选项中支持通配符

  4、需要gamin支持(注:gamin是用于监视文件和目录是否更改的服务工具)

  5、需要安装python,iptables,tcp-wrapper,shorewall,gamin。如果想要发邮件,那必需安装postfix或sendmail

核心原理:

其实fail2ban就是用来监控,具体是调用iptables来实现。

配置yum,安装服务

1

<code>[root</code><code>@sedion</code> <code>~]# vim /etc/yum.repos.d/centos-base.repo</code>

最后新增:

yum装fail2ban(如果装过 就把它卸载了)

<code>[root</code><code>@sedion</code> <code>~]# yum -y install fail2ban</code>

服务配置目录为:

/etc/fail2ban/action.d   #动作文件夹,内含默认文件。iptables以及mail等动作配置

/etc/fail2ban/fail2ban.conf #定义了fai2ban日志级别、日志位置及sock文件位置

/etc/fail2ban/filter.d #条件文件夹,内含默认文件。过滤日志关键内容设置

/etc/fail2ban/jail.conf #主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值

/etc/rc.d/init.d/fail2ban #启动脚本文件

查看主配置定义

<code>[root</code><code>@sedion</code> <code>~]# cat /etc/fail2ban/fail2ban.conf |grep -v ^#</code>

   

fail2ban[防止linux服务器被暴力破解]一 介绍fail2ban二 试试

#我们需要做的就是把这行改成 logtarget = /var/log/fail2ban.log,方便用来记录日志信息 

查看主要配置文件

<code>[root</code><code>@sedion</code> <code>~]# cat /etc/fail2ban/jail.conf |grep -v ^# |less</code>

  

[default]                                 #全局设置 

ignoreip = 127.0.0.1                     #忽略的ip列表,不受设置限制(白名单) 

bantime  = 600                            #屏蔽时间,单位:秒 

findtime  = 600                            #这个时间段内超过规定次数会被ban掉 

maxretry = 3                               #最大尝试次数 

backend = auto                            #日志修改检测机制(gamin、polling和auto这三种) 

[ssh-iptables]                               #针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置 

enabled  = true                              #是否激活此项(true/false) 

filter   = sshd                                #过滤规则filter的名字,对应filter.d目录下的sshd.conf 

action   = iptables[name=ssh, port=ssh, protocol=tcp]             #动作的相关参数            

sendmail-whois[name=ssh, dest=root, [email protected]]   #触发报警的收件人 

logpath  = /var/log/secure                #检测的系统的登陆日志文件 

maxretry = 5                                  #最大尝试次数 

 三  应用

ssh远程登录5分钟内3次密码验证失败,禁止用户ip访问主机

动作文件(action.d/iptables.conf)以及日志匹配条件文件(filter.d/sshd.conf )是默认。

所以配置主要在jail.conf文件

<code>[root</code><code>@sedion</code> <code>~]# vi /etc/fail2ban/jail.conf</code>

fail2ban[防止linux服务器被暴力破解]一 介绍fail2ban二 试试

  改为3.

启动服务:

<code>[root</code><code>@sedion</code> <code>~]# service fail2ban start</code>

测试:

        测试发现确实有一定的延迟。多进行几次

查看禁止ip:

2

3

4

5

<code>[root</code><code>@sedion</code> <code>~]# iptables -l |tail -</code><code>4</code>

<code>chain fail2ban-ssh (</code><code>1</code> <code>references)</code>

<code>target     prot opt source               destination      </code>

<code>drop       all  -- </code><code>192.168</code><code>.</code><code>2.5</code>          <code>anywhere         </code>

<code>return     all  --  anywhere             anywhere    </code>

查看fail2ban记录文件:

<code>2014</code><code>-</code><code>01</code><code>-</code><code>11</code> <code>20</code><code>:</code><code>26</code><code>:</code><code>02</code><code>,</code><code>453</code> <code>fail2ban.actions: warning [ssh-iptables] ban</code><code>192.168</code><code>.</code><code>2.5</code>

<code>2014</code><code>-</code><code>01</code><code>-</code><code>11</code> <code>20</code><code>:</code><code>26</code><code>:</code><code>20</code><code>,</code><code>923</code> <code>fail2ban.actions: warning [ssh-iptables]</code><code>192.168</code><code>.</code><code>2.5</code> <code>already banned</code>

<code>2014</code><code>-</code><code>01</code><code>-</code><code>11</code> <code>20</code><code>:</code><code>26</code><code>:</code><code>42</code><code>,</code><code>946</code> <code>fail2ban.actions: warning [ssh-iptables]</code><code>192.168</code><code>.</code><code>2.5</code> <code>already banned</code>

上一篇: 8.1向上转型

继续阅读