您的位置:首页 > 运维架构 > Linux

开启Linux安全之旅·防暴力破解:Fail2ban

2017-04-20 00:00 337 查看
一、Fail2ban
fail2ban是一款很棒的开源服务软件,可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员,很好、很实用、很强大!简单来说其功能就是防止暴力破解。工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关IP利用iptables加入到dorp列表一定时间。

二、Fail2ban安装
A 、 CentOS 6
rpm -Uvh
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install fail2ban
B 、 CentOS 7
rpm -Uvh
http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum install fail2ban
[说明]执行以上第一句,若找不到是因为版本更新后,旧版本就删除了。用浏览器打开“http://dl.fedoraproject.org/pub/epel/7/x86_64/e/”找找相应的rpm。

三、Fail2ban设置
(1)各配置文件用途
/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 #启动脚本文件
(2)、fail2ban.conf一般不用改,再确认以下几项:
[root@fail2ban~]#vi /etc/fail2ban/fail2ban.conf
[Definition]
loglevel = WARNING
logtarget = SYSLOG #我们需要做的就是把这行改成/var/log/fail2ban.log,方便用来记录日志信息
socket =/var/run/fail2ban/fail2ban.sock
[root@fail2ban~]#touch /var/log/fail2ban.log #创建日志文件
(3)编辑/etc/fail2ban/jail.conf文件,修改或添加防攻击规则。
·特别说明
①,“[INCLUDES]”以前的不要动(都是注释),否则fail2ban服务就无法启动。可以用命令来检查语法错误 #fail2ban-client -v -v start
②,“[DEFAULT]”里的 “enabled = false”不能改为true,否则fail2ban服务就无法启动。
[root@fail2ban~]#vi /etc/fail2ban/jail.conf
[DEFAULT] #全局设置
ignoreip = 127.0.0.1 #忽略的IP列表,不受设置限制,多个以空格隔开
bantime = 600 #屏蔽时间,单位:秒
findtime = 600 #这个时间段内超过规定次数会被ban掉
maxretry = 3 #最大尝试次数
backend = auto #日志修改检测机制(gamin、polling和auto这三种)

[sshd] #单个服务检查设置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置。
enabled = true #是否激活此项(true/false)
filter = sshd #过滤规则filter的名字,对应filter.d目录下的sshd.conf
action = iptables[name=SSH, port=ssh, protocol=tcp]#动作的相关参数,对应action.d/iptables.conf文件
logpath = /var/log/secure #检测的日志文件path
bantime = 3600
findtime = 300
maxretry = 3

[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com, sendername="Fail2Ban"]
logpath = /var/log/secure
maxretry = 5

四、Iptables防火墙设置
[root@fail2ban~]#iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH --update --seconds 1800 --hitcount 5 -j DROP
[root@fail2ban~]#iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH --set -j ACCEPT
#端口为ssh实际端口,应与/etc/ssh/sshd.confs中端口保持一致。
[root@fail2ban~]#/etc/init.d/iptables save

五、重启相关服务
[root@fail2ban~]#service iptables restart
[root@fail2ban~]#service fail2ban restart
这样我们的服务器就再也不怕黑客的暴力破解啦!

由睿江云研发人员提供,想了解更多,请登陆www.eflycloud.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: