您现在的位置是:
IT外包 ->实时操作系统 ->
自动封杀非法连接FTP的IP(fuckgo)
作者:
不详
|
发布时间:
2008-05-20 16:55
|
信息类别:
实时操作系统
|
访问人次:
次
由于提供了FTP 下载而又限制了线程,所以总发现有人不断用多线程进行尝试,这样会大大增加服务器 的负荷,这种事[color=Red]“损人不利己”![/color]
为了惩罚这种人,决定写个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 10 ]
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
具体效果可以参看
[color=blue]蓝色[/color]是总连接数,[color=orange]橙色[/color]是有效连接数
当[color=blue]蓝色[/color]超过[color=orange]橙色[/color]很多时,证明有人在[color=red]贪得无厌[/color]地进行多线程尝试
从图上可以看出,[color=blue]蓝色[/color]瞬间值很高,但转瞬而逝,不会持续很久,因为那个人的IP 已经进入了iptables“黑名单”