fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH、SMTP、FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员,是一款很实用、很强大的软件!
步骤:
#cd /etc/yum.repos.d/
#wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
#yum install gamin-python
#wget ftp://rpmfind.net/linux/epel/6/x86_64/python-inotify-0.9.1-1.el6.noarch.rpm
#rpm -ivh python-inotify-0.9.1-1.el6.noarch.rpm
#wget ftp://rpmfind.net/linux/epel/6/x86_64/fail2ban-0.8.14-1.el6.noarch.rpm
#rpm -ivh fail2ban-0.8.14-1.el6.noarch.rpm
#chkconfig fail2ban on
#vim /etc/fail2ban/jail.conf
[DEFAULT] #全局设置 ignoreip = 127.0.0.1 #忽略IP,在这个清单里的IP不会被屏蔽,多个用空格分开 bantime = 600 #屏蔽时间,以秒为单位 findtime = 600 #这个时间段内超过规定次数会被ban掉 maxretry = 3 #全局最大尝试次数(经测试,有少量延迟) [ssh-iptables] #相当于标签说明 enabled = true #是否激活此项(true/false) filter = sshd #过滤规则filter的名字,对应filter.d目录下的sshd.conf action = iptables[name=SSH, port=端口, protocol=tcp] #动作的相关参数 sendmail-whois[name=SSH, dest=root, sender=fail2ban@mail.com] #发送邮件,不可注销,默认即可 logpath = /var/log/secure #ssh日志记录的位置 maxretry = 5 #最大尝试次数,此项会覆盖全局中maxretry设置(次数会有少量延迟)
#service fail2ban start
fail2ban 会按照你的过滤规则(filter = sshd 也就是filter.d/sshd.conf)去查看相应的日志文件(logpath=/var/log/secure),然后在findtime = 600 “10分钟” (此时间以全局的为准)之内符合条件的记录下来,如果到达了maxretry = 5 就采取相应的动作action(ptables.conf和sendmail-whois.conf),并且限制的时间为bantime = 600。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。