調用防火牆封掉DDOS發起者IP

[root@linux-node1 ~]# cat fw.sh
#!/bin/bash
cat /var/log/nginx/access.log|awk -F ":" '{print $1}'|sort|uniq -c|sort -rn|head -10|grep -v "127.0"|awk '{if ($2!=null && $1>4) {print $2}}'>/tmp/dropip
for i in $(cat /tmp/dropip)
do        
    /sbin/iptables -A INPUT -p tcp --dport 80 -s $i -j DROP        
    echo "$i kill at date">>/var/log/ddos
done


腳本註解:

先查看日誌文件,awk過濾出第一列IP,並進行排序,去重,然後反向排序,過濾出IP最多的前10個,排除127.0這個IP,然後再過濾出第二列不爲空且IP數量大於4個的ip,並打印IP輸出到/tmp/dropip文件中。

循環文件/tmp/dropip

封掉/tmp/dropip裏面的ip地址的80端口

將此次事件寫入/var/log/ddos日誌裏面,並再次循環。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章