通过自定义的shell脚本来防护安全
脚本读日志文件,筛选登陆失败的ip并且定义一个登陆失败的次数,如果这个ip超过10次那么将这个ip永久拉入黑名单,不给任何期限解除这个ip。不仅仅是ssh服务,包括web服务等等。
脚本利用了linux操作系统的(白名单/etc/hosts.allow和黑名单/etc/hosts.deny)
脚本不需要一直运行,写一个计划任务几分钟运行一次,自动扫描ssh日志文件
#!/bin/bash
# author: zhang
# time : 2018-11-14
cat /var/log/secure | awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' >/root/back.txt
DEFINE="10"
for i in `cat /root/back.txt`
do
IP=`echo $i|awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt $DEFINE ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP" >> /etc/hosts.deny
fi
fi
done
取消的方法为删除/etc/hosts.deny的ssh记录