服务器 频道

自动封杀非法连接FTP的IP

  【IT168 服务器学院】由于提供了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

  具体效果可以参看

   

  蓝色是总连接数,橙色是有效连接数
  当蓝色超过橙色很多时,证明有人在贪得无厌地进行多线程尝试

  从图上可以看出,蓝色瞬间值很高,但转瞬而逝,不会持续很久,因为那个人的IP已经进入了iptables“黑名单”

0
相关文章