由於提供了FTP下載而又限制了線程,所以總發現有人不斷用多線程進行嘗試,這樣會大大增加服務器的負荷,這種事“損人不利己”!
為了“懲罰”這種人,決定寫個SHELL,在crond裡每1分鐘運行一次,自動統計非法線程的IP和線程數量,然後自動將他的IP地址寫到iptables裡,阻擋!
vi /usr/local/sbin/fuckgo 代碼:
#! /bin/bash fuck_who() { netstat -an|grep \\"210.51.184.197:21\\"|grep -v LISTEN| grep -v ESTABLISHED|awk \\'{print $5;}\\'|awk -F\\'=\\' \\'{print $1;}\\'|sort|uniq -c|awk \\'{print $1\\"=\\"$2;}\\' }
for _un in $(fuck_who) do if [ $(echo $_un|awk -F\\'=\\' \\'{print $1;}\\') -gt 9 ] then iptables -I INPUT -s $(echo $_un|gawk -F\\'=\\' \\'{print $2;}\\') -p tcp --dport 21 -j DROP fi done
vi /etc/crontab 添加 代碼:
00-59/1 * * * * root /usr/local/sbin/fuckgo
/etc/rc.d/init.d/crond restart
具體效果可以參看
[myimg]http://platinum.3322.org/mrtg/proftpd-day.png[/myimg]
藍色是總連接數,橙色是有效連接數
當藍色超過橙色很多時,證明有人在貪得無厭地進行多線程嘗試
從圖上可以看出,藍色瞬間值很高,但轉瞬而逝,不會持續很久,因為那個人的IP已經進入了iptables“黑名單”。