Centos7使用fail2ban配合mailx防范ssh暴力破解

一、安装mailx
yum install -y mailx
配置smtp,修改/etc/mail.rc
vim /etc/mail.rc
在最下面加入如下内容
set from=你的邮箱
#以QQ邮箱为例,如果是163就换成smtps://smtp.qq.com:465,gmail暂时没试过
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=你的邮箱
set smtp-auth-password=你的授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
二、安装fail2ban
1 (1)使用yum安装
yum install -y epel-release
yum install -y fail2ban
启动服务
systemctl start fail2ban
允许开机自启
systemctl enable fail2ban
(2)源码安装
最好先update一下
yum update
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
python setup.py install
如果没有git,安装git
yum install -y git
安装完后将fail2ban添加到systemd服务
cp build/fail2ban.service /usr/lib/systemd/system/fail2ban.service
对于新创建的unit文件,或者修改了的unit文件 需要重载配置文件
systemctl daemon-reload
启动服务
systemctl start fail2ban
允许开机自启
systemctl enable fail2ban

2.配置jail.conf文件
vim /etc/fail2ban/jail.conf
在文件开头加入如下内容
#针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置
[ssh-iptables]  
#是否激活此项(true/false)
enabled  = true                          
#过滤规则filter的名字,对应filter.d目录下的sshd.conf 
filter   = sshd                          
#动作的相关参数
action   = iptables[name=SSH, port=ssh, protocol=tcp] 
                mail-whois[name=SSH, dest=你的邮箱] 
#                                   触发报警的收件人  
#检测的系统的登陆日志文件 
logpath  = /var/log/secure                
#最大尝试次数
maxretry = 2      
在[DEFAULT]子项里有一些属性也建议修改一下
#ip 被封禁的时间,单位:s(秒),m(分钟)。
bantime  = 86400s  
#单位:s(秒),m(分钟)。如果8000s内达到maxretry(即最大尝试次数),ip就会被封禁。
findtime  = 8000s
#最大尝试次数,如果达到这个次数,ip就会被封禁
maxretry = 2
查找mailx命令的位置
whereis mailx
/usr/bin/mailx 就是mailx所在的绝对路径

编辑 /etc/fail2ban/action.d/mail-whois.conf
如果是通过yum安装的,可能会不存在此配置文件,那么就用git将源代码克隆下来
配置文件都在fail2ban/config/action.d/下面,
将缺少的配置文件复制到/etc/fail2ban/action.d/下面即可
cp config/action.d/mail-whois.conf /etc/fail2ban/action.d/mail-whois.conf

vim /etc/fail2ban/action.d/mail-whois.conf
将图中的三处mail替换成mailx所在的绝对路径,如图
重启fail2ban
systemctl restart fail2ban
用另一台虚拟机测试,可以看到在2次尝试登陆失败后,fail2ban立刻就生效了,再次尝试连接时就直接被拒绝了



查看fail2ban的运行状态,可以看到一个jail(监狱)正在运行中
fail2ban-client status
查看jail的详细信息,可以看到被封禁的ip
fail2ban-client status ssh-iptables
解封ip:
fail2ban-client set ssh-iptables unbanip 192.168.5.10
注意!如果修改过系统时间的时区,日志的记录时间还是以之前的时区进行记录日志,/var/log/secure记录的时间跟系统时间不对的话,fail2ban的核心功能就会完全失效,也就是说封禁不了ip。所以修改过系统时间的时区之后,一定要重启一下系统日志服务(rsyslog)
systemctl restart rsyslog
参考资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值