看到这个 我是谁我在哪里?我要怎么办?瞎折腾之利用shell防止暴力破解
1、查找/var/log/secure中验证失败且出现的次数较多的ip,对其进行封IP处理
vi /usr/local/bin/secure.sh
#输入以下脚本
#! /bin/bash
cat /var/log/syslog|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
for i in `cat /usr/local/bin/black.list`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
#if [ ${#NUM} -gt 1 ]; then ##失败次数>10,可读性太差,调整为如下:
if [ $NUM -gt 10 ]; then
grep $IP /etc/hosts.deny > /dev/null ##检索IP是否已存在于hosts.deny
if [ $? -gt 0 ];then ##$?上一条命令的执行结果,0有正常输出,其他异常
echo "sshd:$IP:deny" >> /etc/hosts.deny ##增加屏蔽登录失败的IP
fi
fi
done
chmod +x /usr/local/bin/secure.sh
然后将secure_ssh.sh加入到cron计划任务中即可。
vi /var/spool/cron/root
#增加以下命令,一分钟执行一次
*/1 * * * * sh/usr/local/bin/secure.sh
避免增加系统负担,调整为十分钟执行一次
今天看了一下服务器,脚本有按时执行和备份、攻击没有新增、自己知识浅薄、还需要继续努力学习,加油!