用户名: 密码: 验证码: 注册           网站地图 高级搜索 RSS订阅 收藏本站
山东十七地市站长联盟信息: 济南 青岛 淄博 枣庄 东营 烟台 潍坊 济宁 泰安 威海 日照 莱芜 临沂 德州 聊城 滨州 菏泽      
您的位置:主页>服 务 器>Ftp服务器>

自动封杀非法连接FTP的IP(fuckgo)

[ 来源:Linux宝库 | 作者:岩塑 | 更新日期:2007-5-31 21:36:17 | 评论 0 条 | 我要投稿 ]
由于提供了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
添加
代码: 字串7

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“黑名单”


Tags:
您的评论
用户名:新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为