debian下安装fail2ban
apt-get install fail2ban
安装完成后主要的配置文件在/etc/fail2ban目录下,里面有两个文件和两个目录:
loglevel = 3 logtarget = /var/log/fail2ban.log socket = /var/run/fail2ban/fail2ban.sock
[DEFAULT] #忽略哪些IP,可以是具体IP、CIDR类型的地址,多个IP用空格分开 ignoreip = 127.0.0.1 #设置IP被锁住的时间,单位为秒 bantime = 600 #检测时间,在此时间内超过规定的次数会激活fail2ban findtime = 600 #尝试的次数 maxretry = 3 #日志检测机器,有"gamin", "polling" and "auto"三种模式。 backend = polling #发送报警邮件的地址 destemail = root<a href="http://my.oschina.net/localhost" class="referer" target="_blank">@localhost</a> #默认的动作执行行为,在action.d目录下有各种行为策略,默认是iptables-#multiport banaction = iptables-multiport #0.8.1版本后fail2ban默认用sendmail MTA mta = sendmail #默认使用tcp协议 protocol = tcp #定义了各种行动的参数 #banaction参数在action.d目录下具体定义,name port protocol 也可以自己定义 #只禁止IP action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s] #即禁止IP又发送email action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s] %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s] #禁止IP、发送email、报告有关日志 action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s] #如果没有定义行为,则默认的行为为action,可选择action_,action_mw, action_mwl 等 action = %(action_)s 默认配置文件含有此模块 #定义子模块名 [ssh] #是否激活 enabled = true #定义port,可以是数字端口号表示,也可以是字符串表示 port= ssh #过滤规则,在filter.d目录下定义 filter = sshd #检测日志的路径 logpath = /var/log/auth.log #尝试的次数,覆盖了全局配置的 maxretry = 6 #banaction 在action.d目录下定义,此参数值会替换action中选用的默认行为中定义的banaction参数 banaction = iptables-allports #注意 port protocol banaction 可以不用分开定义,直接使用action定义也可以,例如: #action = iptables[name=SSH, port=ssh, protocol=tcp] #在子模块中定义的port protocol banaction 都会在action_ action_mw, action_mwl中替换成具体的设置值。
filter.d 目录里面定义的是根据日志文件进行过滤的规则,主要是利用正则匹配出现错误的关键字。
[ssh] enabled = true port = 22222 filter = sshd logpath = /var/log/auth.log maxretry = 6
测试如下:
转载自:http://my.oschina.net/guol/blog/52219