服务器在云端,一直被暴力破解密码,日志很多登录失败在不停尝试密码的IP,于是写了个脚本,将登录失败5次的IP拉入黑名单
在/usr/local/bin
下新建脚本protect.sh
脚本内容如下:
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat /usr/local/bin/black.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
# 登录错误次数超过5次,拉入黑名单
if [ $NUM -gt 5 ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
给脚本可执行权限
chmod a+x protect.sh
使用系统自带的crontab任务管理器指定脚本每2分钟执行一次
crontab -e
*/2 * * * * sh /usr/local/bin/protect.sh > /dev/null 2>&1
脚本执行后,在/usr/local/bin
下的black.txt
文件中可以查看已经拉黑的IP地址
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)