设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2410|回复: 0
收起左侧

利用ip_conntrack表实现封ip的shell脚本

[复制链接]
发表于 2010-9-17 21:38:47 | 显示全部楼层 |阅读模式
  基本原理:

  通过过滤ip_conntrack表得到ESTABLISHED状态过多的ip, 然后用iptabels封掉一段时间,同时用hping工具将这些ip从表中清理掉,最后将被封的ip和一些其他信息写到一个html页中,做简单的发布

  关于hping:

  下载: http://www.hping.org/download.html
  安装: ./configure;make;make install
  相关联接: http://chinaunix.net/jh/4/367999.html

  默认功能:

  1, 当一个ip在ip_conntrack表中的ESTABLISHED状态在30-50之间时, 此ip被封10分钟,同时在ip_conntrack表中的记录被清除;50-100之间封15分钟,同时清表;100以上封30分钟,同时清表,

  2, 然后生成web页
  /var/www/html/wwy/drop/index.html --- 显示被封的ip, 和cpu状态等信息
  /var/www/html/wwy/all/index.html --- 每一个ip的连接情况

  3, 生成简单的日志
  /tmp/killip/tmp.log.txt

  使用方法:
  1, 需要安装hping

  2, 建议将脚本放到计划任务中

  3, 建议安装并开启apache, 为支持简单的web发布,默认为 http://127.0.0.1/l/wwy/drop/index.htm

  4, 如果表的大小大于20mb请慎用

====================================================


  代码:

#!/bin/bash
#
#---------------------------------------------------------------------------------------
#Scrip name: killip, base on ip_conntrack, write by wwy.
#---------------------------------------------------------------------------------------

cpu=`sar -u 1 1 | awk '{print $7}' | tail -1`%
#
while [ "`pidof sleep`" ];do
        echo "she is running, sorry"
        exit 1
done
if [ ! "`lsmod | grep ip_conntrack`" ]; then
         modprobe ip_conntrack
fi

####################################
##---------------------- functions -----------------------------##
####################################
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-23 11:20 , Processed in 0.056814 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

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