您好,登錄后才能下訂單哦!
[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過(guò)濾出第一列IP,并進(jìn)行排序,去重,然后反向排序,過(guò)濾出IP最多的前10個(gè),排除127.0這個(gè)IP,然后再過(guò)濾出第二列不為空且IP數(shù)量大于4個(gè)的ip,并打印IP輸出到/tmp/dropip文件中。
循環(huán)文件/tmp/dropip
封掉/tmp/dropip里面的ip地址的80端口
將此次事件寫(xiě)入/var/log/ddos日志里面,并再次循環(huán)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。