例子】网站受到大量主机的非正常连接时,对源ip地址的封锁脚本

#!/bin/bash
touch all   
for i in `seq 1 50` //控制脚本的循环
do
sleep 1 时间控制
ip=`tail -30 /var/log/a.log |grep HTTP/1.1|awk '{print $1}'|sort -n|uniq`    //从一个假设的日志文件中截取非正常连接主机的ip地址,依据是攻击的特征
if  [ -z "$ip" ];then   //如果没有这种主机
ehco "ok">>/dev/null
else
for m in `echo $ip` //如果有这些主机则遍历
do
n=`grep -l "^$m$"  /root/all`// 从all文件里查看是不是已经被禁止过
if [ $? -eq 1 ];then   //如果没有被禁止过
 echo iptables -A  INPUT  -s  $m  -p tcp --dport 80 -j  DROP
 echo "iptables -A  INPUT  -s  $m  -p tcp --dport 80 -j  DROP"
 iptables -A  INPUT  -s  $m  -p tcp --dport 80 -j  DROP  //禁止
 echo $m>>/root/all //写到all文件中
fi
done
fi

service iptables save//保存iptables规则

done