CentOS7安装Fail2ban阻止暴力破解SSH密码
之前介绍了使用DenyHosts阻止ssh密码暴力破解, 经菜包子了解到Fail2ban
比较好用。
简单来说Fail2ban
的功能就是防止暴力破解。工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关IP利用iptables
加入到dorp
列表一定时间。
安装:
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum install fail2ban
设置开机启动:
systemctl enable fail2ban
Fail2ban的配置文件位于/etc/fail2ban
目录
配置文件介绍
/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 #启动脚本文件
jail.conf示例:
[DEFAULT] #全局设置
ignoreip = 127.0.0.1 #忽略的IP列表,不受设置限制
bantime = 1h #屏蔽时间,单位:秒
findtime = 5m #这个时间段内超过规定次数会被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 = 24h
findtime = 5m
maxretry = 3
启动Fail2ban:
systemctl restart fail2ban.service
注意:如果重新启动fail2ban,iptables中的规则就会全部被清空。