1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#! /bin/bash
cat /var/log/secure|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 5 ]; then
grep $IP /etc/hosts.deny > /dev/null
# 如果找到 ,进程就正常退出,exit
# 这里 我解释一下,如果文件里没有这个ip,就返回 1, 1 great than 0 ,所以是 true
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
# echo "OKh"
|