博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

cnsLinux博客

操作系统|编程语言|服务器|网络|防火墙|安全|路由|数据库|备份|日志|IT|电子邮件|流媒体|健康|医院|求职|招聘|工作|人才|空间Linux|C|C++|Java|Python|PHP|SQL|类库|网页|office|英语
  cnscn2008.cublog.cn

关于作者
作者:cnscn 
QQ: 214363570
MSN:cnscn@163.com
主页:http://www.cnscn.org    

文章要有质量...
|| << >> ||
我的分类


阻止DDOS攻击
转载请保留: http://www.cnscn.org(CNS电脑与英语学习网)
#!/bin/sh
#
# keep the DDOS away
# Author cnscn <http://www.cnscn.org>
# Time: 2007-11-30
#

#get the access Ip
awk '{print $1}' /usr/local/apache/logs/access_log | sort  | awk '{print $1}' >/root/ip_access.txt

#这里也可以把access_log拷贝一下或在awk中计算时间,由于麻烦和目前的log不太重要,所以就直接清了,有兴趣您可以修改补足,请把修改的贴上来哟^_^
cat /usr/local/apache/logs/access_log >> /usr/local/apache/logs/access_log_raw

>/usr/local/apache/logs/access_log

#deny the ip the visits times greater than 500
IP=$(awk 'BEGIN{nums=500;count=1;last=""}{if(last!=$1){if(count>nums && last!="::1" && match(last,"124.42.125")==0 && match(last,"192.168")==0 && match(last,"127.0.0.1")==0 ){print last};last=$1;count=1;}else{count++;} }' /root/ip_access.txt)

#把IP用防火墙Drop掉
if [ "" != $IP ]
then
   echo "/sbin/iptables -I INPUT -s $IP -j DROP"
    #这里直接添加到INPUT等重启iptables后会自动失效,可以做修改把这些IP放到文件里
   /sbin/iptables -I INPUT -s $IP -j DROP
fi

发表于: 2007-11-30,修改于: 2007-11-30 16:52,已浏览427次,有评论0条 推荐 投诉


网友评论
 发表评论