vi block.sh
#! /bin/bash
cat /var/log/secure | awk ‘/Failed/{print $(NF-3)}‘| sort | uniq -c|awk ‘{print $2"="$1;}‘ > /root/black.txt
DEFINE="5"
for i in `cat /root/black.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
vi /etc/crontab
*/10 * * * * root /bin/sh /root/block.sh >/dev/null 2>&1
时间: 2024-10-10 10:23:43