思路:主要利用 awk ,if結(jié)構(gòu),sort,uniq
#!/bin/bash
FilePath="access.log"
awk '{print $1}' $FilePath | sort -rn | uniq -c >ip_count.log
cat ip_count.log | while read text ####讀取文件內(nèi)容,以行為單位
do
echo $text
count=`echo $text | awk '{print $1}' `
ip=`echo $text | awk '{print $2}'`
if [ $count -gt 20 ]
then
if iptables -L | grep $ip ###判斷是否已經(jīng)在iptables 中
then
echo "ip地址存在iptables中,不添加 "
else
echo "添加ip地址到iptables"
iptables -A INPUT -s $ip -j DROP echo $ip >>ip_drop.log
/etc/init.d/iptables save > /dev/null ###使iptables 生效
/etc/init.d/iptables restart > /dev/null
fi
else
echo "未到達(dá)標(biāo)準(zhǔn),不添加到iptables"
fi
done
最后,我們可以把腳本添加到定時(shí)任務(wù)(crontab)里去,定時(shí)執(zhí)行,這樣就可以實(shí)現(xiàn)動(dòng)態(tài)添加了。
以上所述是小編給大家介紹的利用Shell 腳本解決DDOS攻擊問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Linux系統(tǒng)防CC攻擊自動(dòng)拉黑IP增強(qiáng)版(Shell腳本)
- 一個(gè)簡(jiǎn)單的防CC攻擊Shell腳本分享
- 防止ARP攻擊的shell代碼