网站受到大量主机的非正常连接时,对源ip地址的封锁脚本
#!/bin/bash touch all for i in `seq 1 100` //控制脚本的循环 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 保存退出
|