Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

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

[复制链接]
platinum 发表于 2004-11-6 21:16:06 | 显示全部楼层 |阅读模式
作者:白金 网名:platinum(chinaunix) 超超白金(白金论坛)  
欢迎转载,转载请保留上述信息  
===========================================================================


由于提供了下载而又限制了线程,所以总发现有人不断用多线程进行尝试,这样会大大增加服务器的负荷,这种事“损人不利己”!

为了惩罚这种人,决定写个SHELL,在crond里每1分钟运行一次,自动统计非法线程的IP和线程数量,然后自动将他的IP地址写到iptables里,来惩罚一下他们!

可惜,我虽然有了思路,但不会写SHELL,在此,非常感谢“2002年夏天”!他给了我很大的帮助!!!

这下可以惩罚一下那些贪得无厌的人了……

vi /usr/local/sbin/fuckgo

  1. #! /bin/bash
  2. fuck_who()
  3. {
  4.         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;}'
  5. }

  6. for _un in $(fuck_who)
  7. do
  8.         if [ $(echo $_un|awk  -F'=' '{print $1;}') -gt 9]
  9.         then
  10.                 iptables -I INPUT -s $(echo $_un|gawk -F'=' '{print $2;}') -p tcp --dport 21 -j DROP
  11.         fi
  12. done
复制代码


具体效果可以参看
http://platinum.3322.org/mrtg
 楼主| platinum 发表于 2004-11-6 21:18:40 | 显示全部楼层

自动清除已封杀的IP(fuckclean)

为了避免误杀,用crond每天凌晨4点执行一下fuckclean,来清除一天来被封杀过的IP

当然,如果该IP违规,fuckgo会以每1分钟一次的频率扫描,发现之后再次封杀,再次解开就只能等第二天凌晨4点了

vi /usr/local/sbin/fuckclean(呵呵,这回是我自己写了)

  1. #! /bin/bash
  2. clean_who()
  3. {
  4.         iptables -vL|grep "DROP"|grep ftp|awk '{print $8;}'
  5. }

  6. for _un in $(clean_who)
  7. do
  8.         iptables -D INPUT -s $_un -p tcp --dport 21 -j DROP
  9. done
复制代码
回复

使用道具 举报

dczwfcs 发表于 2004-11-7 15:29:01 | 显示全部楼层
虽然不太懂。。
支持一下!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 11:44 , Processed in 0.019517 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表