阅 读 文 章

利用ip_conntrack表实现封ip的shell脚本,并有简单的web发布

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(不详) | 时间:2007-07-07 | 浏览:人次 ]

 在下学习shell时间不长, 在此版中收益非潜, 增加了偶的学习积极性和学习效率
知道版主鼓励原创, 故在下发此贴支持版主工作
初来乍到, 还望各位高人指点.

===============================================
基本原理:
通过过滤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 -----------------------------##
####################################

function make_clr {
        while read clr33;do
                cat /tmp/tmp111.txt | grep $clr33 >> /tmp/tmp33-3-clr.txt
        done < /tmp/tmp33-3.txt
        while read clr22;do
                cat /tmp/tmp111.txt | grep $clr22 >> /tmp/tmp33-2-clr.txt
        done < /tmp/tmp33-2.txt
        while read clr11;do

论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 并有 简单 发布 脚本 实现 利用 echo print awk if ip

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.