闲来无事,琢磨一个抗攻击的小脚本,主要是通过命令来监测某个IP的并发数,如果某个IP的并发数很大,那么我们就拒绝它访问,下面来谈谈具体思路。
第一,netstat找出当前的并发数
第二,awk找到并发超过100的ip
第三,iptablesrejectip
代码:
#!/bin/bash
/bin/netstat -an|awk '/80/&&/ESTABLISHED/{print $5}'|awk -F: '{a[$1]++}END{f or (i in a) if(a[i]>100)print a[i],i}'>/tmp/drop.txt
drop_ip=`cat /tmp/drop.txt|awk '{print $2}'`
for iptables_ip in $drop_ip
do
/sbin/iptables -A INPUT -s $iptables_ip -j reject
done
或者使用sort、uniq
netstat-ant|awk'/80/&&/ESTABLISHED/{print$5}'|awk'{print$1}'|sort|uniq-c|sort-nr|head
|