fail2ban是一款实用软件,可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作。
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)
安装
可到官网 http://www.fail2ban.org/wiki/index.php/Downloads 下载最新包
wget https://github.com/fail2ban/fail2ban/archive/0.9.3.tar.gz
tar -xzvf fail2ban-0.9.3.tar.gz
cd fail2ban-0.9.3
python setup.py install
也可直接用 yum
安装(centos默认自带fail2ban)
yum -y fail2ban
配置
/etc/fail2ban/fail2ban.conf 日志设定文档
/etc/fail2ban/jail.conf 阻挡设定文档
/etc/fail2ban/filter.d 具体阻挡内容设定目录
这里只需修改 jail.conf
总体配置
#此ip或者ip段为例外,不受以下条件影响
ignoreip = 127.0.0.1
# 封锁时间(如一天为:86400)
bantime = 600
# 在多长时间以内达到条件则开始执行封锁,如600秒达到3次则执行。 # 单位:秒
findtime = 600
# 在以上条件的出错次数,如600秒达到3次则执行。
# 单位:次
maxretry = 3
SSH配置
[ssh-iptables]
enabled = false #是否开启,开启则为true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp] #post为端口号
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
#上方红色字-you@mail.com,则为您的邮箱地址和发送人地址(建议一样)
#发信需要sendmail服务的支持,如果没有此服务或不需要发信可在sendmail前加#号注释掉。
logpath = /var/log/sshd.log #相应错误日志,一般为:/var/log/secure
maxretry = 5 #尝试错误次数
以ssh为例,将enabled修改为 true
,logpath修改为 /var/log/secure
,退出保存文件
service fail2ban restart #重启fail2ban
chkconfig fail2ban on #设置为开机自动启动
fail2ban-client status #验证Fail2Ban是否正常运行
#显示以下则为设置生效
#Status
#|- Number of jail: 1
#`- Jail list: ssh-iptables
移除禁止的ip
iptables -L
列出数据
iptables -D <chain> <chain number>
iptables -D fail2ban-SSH 1
移除ip