SSHD防猜密码

 

shell>vim /opt/MyShells/ssh_scan.sh
#!/bin/bash
#CentOS7 使用firewalld,如果开启了seLinux,需要允许策略或关闭 #ssh防猜用户密码 #设置时区,可根据日志文件的时间格式自行决定 export LC_ALL=en_US.utf8 #测试时间格式是否与日志时间格式一致 #FORMAT=$(awk 'BEGIN{print strftime("%b %e %H:%M",systime()-60)}') #获取前1分钟内的secure记录,统计ssh认证失败的IP和其失败次数,并用Iptables阻止 SCANNER=$(awk 'BEGIN{tm=strftime("%b %e %H:%M",systime()-60)} {if($0 ~ tm&&/Failed password/&&/ssh2/)print $(NF-3)}' /var/log/secure | sort | uniq -c | awk '{print $1"="$2}') #/usr/bin/logger -t SSHSCAN '进行了SSH Scan' $FORMAT $SCANNER for i in $SCANNER do #取认证失败次数 NUM=`echo $i|awk -F= '{print $1}'` #取IP地址 IP=`echo $i|awk -F= '{print $2}'` /usr/bin/logger -t RAIDSCAN '进行了Raid Scan' $i $NUM $IP #若其在失败次数不超过N次且之前没有被阻断过,那么添加一条策略将其阻断,并记录日志 (-ge 大于等于) if [ $NUM -ge 3 ] then #如果使用firewalld,在cron中调用该脚本,那么不能开启seLinux,原因未知 /usr/bin/firewall-cmd --add-rich-rule='rule family="ipv4" source address='$IP' reject' fi done #END of Script
shell>echo '*/1 * * * * root /opt/MyShells/ssh_scan.sh' >> /etc/crontab
shell>service crond restart

 

posted on 2017-06-22 09:57  西风古道 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/g120992880/p/7063390.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值