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.