Linux监测某一时刻对外的IP连接情况


相信大家都熟悉netstat命令吧,这里就主要采用此命令,网上流传的DDoS Deflate工具就是采用IP数量来统计对外连接数,然后结合Iptables的方法来实现某个IP加入黑名单和解禁某IP

 

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
其中采用的命令,有明显的不足,如没有判断是否为本地连接127.0.0.1或任意地址标识0.0.0.0或空的情况,也没有去掉netstat输出的前两行文字头,且应该降序输出

 

我自己的版本:

netstat -ant |sed '1,2 d'| awk '{print $5}' | sort | cut -d: -f1 |awk '{if($1!="0.0.0.0" && $1!="" && $1!="127.0.0.1"){print $1}}'| uniq -c |sort -nr

输出为:

2 173.194.72.95
1 98.254.64.168
1 91.189.89.144
1 91.122.59.53
1 82.208.89.58
1 81.7.14.114
1 70.112.226.65
1 180.76.22.33
1 143.215.130.46
1 126.107.72.9
1 117.79.93.218
设定一个阙值value,若某一时刻,某个对外连接的某个IP1总数超过这个value,则以(IP1,starttime)加入黑名单,然后iptables -t filter -A INPUT -s IP1 DROP.


相关内容