#!/bin/bash
#第一次运行创建记录文件
-f 1.txt || touch 1.txt
while :
do
#查看日志中登陆失败的ip次数超过10次的用户ip
fip=`awk '/Failed/{ip[$11]++;}END{for (i in ip){if (ip[i]>10){print i}}}' /var/log/secure`
#循环取出登陆失败超过十次的ip进行处理
for i in $fip
do
#查看处理记录文件如果该ip没有存在处理记录中说明是没有处理过该ip
a=`awk -F: -v i=$i '$2==i{print}' 1.txt | wc -l`
#如果有查到结果则说明已经处理过该ip
if [ "$a" -ne 0 ]
then
echo "服务器安全"
else
#将新的攻击ip加入防火墙阻止(方入drop的区域则该ip发送的数据包会立刻丢弃不做回应)区域
firewall-cmd --zone=drop --add-source=$i && echo "成功将:$i:加入防火墙block区域" >> 1.txt
fi
done
#120s执行一次
sleep 120
done
CentOS7 下一个利用安全日志和防火墙防止暴力破解的SHELL脚本
原创no_shutdown_ 博主文章分类:Linux ©著作权
©著作权归作者所有:来自51CTO博客作者no_shutdown_的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Centos7使用DenyHosts防止ssh暴力破解
DenyHosts是用python2.3编写的一个程序,会分析/var/log/secure等文件,当发现同一个ip进
centos python 配置文件 相对路径