实战在Centos5.3下mod_dosevasive对抗DDos攻击

转截请写明出处,谢谢!

 

     最近老同事的电子商务网站经常性的对手ab,无奈我花些时间google,发现有不少朋友用mod_dosevasive来对抗ddos攻击(当然是小范围的,如果没有带宽和硬件的保障效果会更好).

居体的安装可以参看

 

关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明

 

上面写的够详细了。

下面是我的安装过程

1.安装apxs 即要有 apache开发版本的支持

#yum install httpd-devel

 

2.进入mod_evasive目录

查看apxs在哪里

#whereis apxs /* /usr/bin/apxs*/

#/usr/bin/apxs -i -a -c mod_dosevasive20.c

 

执行上面的命令后系统会在/etc/httpd/conf/httpd.conf中加入下面一行

LoadModule evasive20_module   /usr/lib/httpd/modules/mod_evasive20.so

 

3.加入在被DDOS时的处理操作

手工在/etc/httpd/conf/httpd.conf最下方加入下面内容

 

<IfModule mod_evasive20.c>

    DOSHashTableSize    3097

    DOSPageCount        2

    DOSSiteCount        50

    DOSPageInterval     1

    DOSSiteInterval     1

    DOSBlockingPeriod   10

    DOSEmailNotifymy@email.com

    DOSSystemCommand    "sudo iptables -A INPUT -s %s -p tcp --dport 80  -j DROP"

    DOSLogDir           "/tmp/lock/mod_evasive"

</IfModule>

 

针对上面的配置在mod_dosevasive目录下面的REAME中有详细说明。

做了上面的配置之后记得要重启apache

 

4.重启apache

#service httpd restart

 

4.测试

我用压力测试工具ab

#ab -n 1000 -c 100 http://192.168.1.254/index.php 

 

5.查看是否本机IP(192.168.1.100)是否被封

#iptables -nvL

显示:

 

[c-sharp]  view plain copy
  1. Chain INPUT (policy ACCEPT 64628 packets, 6176K bytes)  
  2.  pkts bytes target     prot opt in     out     source               destination           
  3. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)  
  4.  pkts bytes target     prot opt in     out     source               destination           
  5. Chain OUTPUT (policy ACCEPT 49010 packets, 10M bytes)  
  6.  pkts bytes target     prot opt in     out     source               destination    

 

 

 

结果显示并没有封着我的本机IP

 

分析原因是apache用户执行sudo处没有执行,因为我把

DOSSystemCommand    "sudo iptables -A INPUT -s %s -p tcp --dport 80  -j DROP"

改成了

DOSSystemCommand    "/bin/touch /tmp/%s.log"

重启apache没有问题故可以判断是sudo执行iptables的问题。因iptables命令是一定要root用户才能执行的。

中间我还把相关的命令写在了一个shell(/tmp/do.sh)中,并且把do.sh的权限改为4755(该权限会改变文件执行的属主为root)

do.sh

 

 

 

[c-sharp] view plain copy
  1. #!/bin/sh  
  2. #相关的参数判断自己来吧  
  3. /sbin/iptables -A INPUT -s $1 -p tcp --dport 80  -j DROP  

 

重启apache再压力测试。用iptables -nvL查看还是没有看到策略中有被封的IP

 

 

针对上面的测试问题就在定位到了sudo 下面就是google.

最终找到相关的答案

 

Gentoo Sudo(ers)指南

 

简单的步骤就是

#visudo

加入下面的内容

apache ALL=NOPASSWD: /sbin/iptables

 

然后用sudo -l可以查看apache用户是否成功加入可以执行sudo的行列

 

重启apache->压力测试->查看防火墙策略->结果依旧(失败)查看apache的error日志显示

sudo: sorry, you must have a tty to run sudo

意思就是apache运行sudo要求是终端模式,在做web服务器用sudo的时候肯定是不能用终端了。

经查看visudo的配置和google的结果显示 我们需要将visudo中的

Defaults    requiretty

注解掉

#Defaults    requiretty

 

最终重复测试流程在

#iptables -nvL的命令下看到了被封堵的记录

 

[c-sharp]  view plain copy
  1. Chain INPUT (policy ACCEPT 64543 packets, 6168K bytes)  
  2.  pkts bytes target     prot opt in     out     source               destination           
  3.   836 39828 DROP       tcp  --  *      *       192.168.1.100        0.0.0.0/0           tcp dpt:80   
  4. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)  
  5.  pkts bytes target     prot opt in     out     source               destination           
  6. Chain OUTPUT (policy ACCEPT 48945 packets, 10M bytes)  
  7.  pkts bytes target     prot opt in     out     source               destination        

 

 

 

 

 

 

总结:
你需要了解一些基本的shell,iptables知识,当然还有google工具
上面只是一个简单的 iptables策略,你需要什么特殊的控件可以把相关的控件(如发邮件,写数据库)等操作写入到一个shell中然后改为DOSSystemCommand    "sudo /path/to/youshell %s"
说明:
如发现有不足之处请反馈我,我将非常感谢。
该文章是我在真实环境下面测试通过的总结。
参考资料:
其它:
MediaLayer防DDOS: http://deflate.medialayer.com/
Apache引入mod_evasive模块防止ddos攻击 我的环境是appserv-win32-2.5.10集成环境 网站的图片被大量恶意IP访问 百度良久找到这个模块 引入这个模块配置之后的确是有作用的 但作用不是很大,最后曲线救国解决了这个问题,解决的方法有很大局限性 我就不说了; 具体配置如下 conf/httpd.conf LoadModule dosevasive22_module modules/mod_dosevasive22. 阅读详情

相关推荐

mod_evasive/mod_dosevasive22

mod_evasive.dll mod_dosevasive22

mod_dosevasive模块安装及配置说明

编译方法:/usr/local/apache/bin/apxs -c -i -a mod_evasive20.c编辑httpd.conf,加入以下内容: LoadModule dosevasive20_module modules/mod_dosevasive20.soDOSHashTableSize 3097  记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值 DOSPageCount 2        同一个页面在同一时间内可以被 同一个用户访问的次数,超过该数字就会被列为攻击,同一时间

语音通讯-软交换asterisk,Freeswitch 1974

win版apache防ddos mod_dosevasive22

安装方法: 1、下载附件中的压缩包,解压并拷贝mod_dosevasive22.dll到Apache安装目录下的modules目录(当然也可以是其他目录,需要自己修改路径)。 2、修改Apache的配置文件http.conf。 添加以下内容 LoadModule dosevasive22_module modules/mod_dosevasive22.so DOSHashTableSize 3097 DOSPageCount 3 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 其中DOSHashTableSize 3097 记录黑名单的尺寸 DOSPageCount 3 每个页面被判断为dos攻击的读取次数 DOSSiteCount 50 每个站点被判断为dos攻击的读取部件(object)的个数 DOSPageInterval 1 读取页面间隔秒 DOSSiteInterval 1 读取站点间隔秒 DOSBlockingPeriod 10 被封时间间隔秒 mod_dosevasive v1.10 什么是mod_dosevasive? mod_dosevasive是一种提供躲避 HTTP DOS/DDOS攻击或暴力强制攻击的apache模块。它同样可以用作网络探测和管理的工具,通过简单的配置,就可以同ipchains(ip链?)防 火墙,路由器等设备进行对话。并通过email或系统日志提供报告。 发现攻击是通过创建一个内建的IP地址和URIs的动态哈希表来完成,并且阻止同一ip在以下的情况: 1.在同一秒多次请求同一页面 2.对同一child(对象?)作出超过50个并发请求 3.被列入黑名单的ip 这种方式在单点攻击和分布式多点攻击的状况下都能很好工作,但如同其它的防黑软件一样,只是针对于那些对网络带宽和处理器消耗的攻击,所以这就是为什么我们要推荐你将它与你的防火墙和路由器配合使用,因为这样才能提供最大限度的保护。 这 个模块有一个内建的滤除机制和级别设定,对付不同情况,正因如此合法请求不会受到妨碍,即使一个用户数次连击“刷新”,也不会受到影响,除非,他是故意这 样做的。mod_dosevasive完全可以通过apache配置文件来配置,很容易就可以集成到你的web服务器,并且容易使用。 DOSHashTableSize ---------------- 哈希表的大小决定每个子级哈希表的顶级节点数,越多则越可避免反复的查表,但会占据更多内存,如果你的服务器要应付很多访问,那就增大它。The value you specify will automatically be tiered up to the next prime number in the primes list (see mod_dosevasive.c for a list of primes used). DOSPageCount ------------ 规定请求同一页面(URI)的时间间隔犯规的次数,一旦超过,用户ip将被列入黑名单 DOSSiteCount ------------ 规定请求站内同一物件的时间间隔犯规的次数,一旦超过,用户ip将被列入黑名单 DOSPageInterval --------------- 同一页面的规定间隔时间,默认为1秒 DOSSiteInterval --------------- 站内同一物件的时间间隔,默认为1秒 DOSBlockingPeriod ----------------- The blocking period 是规定列入黑名单内ip的禁止时限,在时限内,用户继续访问将收到403 (Forbidden)的错误提示,并且计时器将重置。由于列入黑名单后每次访问都会重新计时,所以不必将时限设置太大。在Dos攻击下,计时器也会保持 重置 DOSEmailNotify -------------- 假如这个选项被设置,每个ip被列入黑名单时,都将发送email通知。但有机制防止重复发送相同的通知 注意:请确定mod_dosevasive.c (or mod_dosevasive20.c)已正确配置。 默认配置是 "/bin/mail -t %s" %s 是email发送的目的地址,假如你是linux或其它使用别的邮箱的操作系统,你需要修改这里 DOSSystemCommand ---------------- 假如设置了此项,当有ip被列入黑名单,指定的系统命令将被执行,此项功能被设计为受攻击时可以执行ip过滤器和其它的工具软件,有内建机制避免对相同攻击作重复反应 用 %s 表示黑名单中的ip DOSLogDir --------- 系统日志目录 默认"/tmp"目录用作保密机制,仅向一些特权级用户开放 (这里有些不懂,可能翻错了) By default "/tmp" will be used for locking mechanism, which opens some security issues if your system is open to shell users. 在没有特权shell用户时,你应该为apache服务器用户(通常为root)创建一个只可写的文件夹,并在httpd.conf里配置访问权限 WHITELISTING IP ADDRESSES 在1.8版中提供信任ip机制 进入信任ip名单的ip它们将不会受到阻止,次功能主要是用于保护软件,scripts,本地搜索,或其它的自动工具对服务器进行大量的资源请求时不会被阻止 请确认而不是用在添加客户或其它什么类别的人员,因为这将给本模块进行正常工作带来阻碍 信任ip名单应在apache配置文件中添加如下格式的字段(可以是ip段) DOSWhitelist 127.0.0.1 DOSWhitelist 127.0.0.* ip地址后三段可以使用通配符,并且可以各格式复用 TWEAKING APACHE keep-alive项是确保能阻止攻击(至少其中一部分攻击). 但在阻止攻击,发送403页面前,5-10 个页面还是会通过阻止而发送 . 所以你必须设置足够高的MaxRequestsPerChild, 但不是无限,是一个非零的数,默认的MaxRequestsPerChild设定是10000. 这还是将允许少量的攻击进入,但如果你配合防火强使用,将天衣无缝 TESTING 运行 test.pl来测试是否安装成功,如果不是localhost的话,修改其中的服务器地址字段,成功的话在25-50个(取决于你的配置)请求后你将收到403 forbidden回复。

如何在CentOS 7上使用mod_evasive保护Apache免受DoS和DDoS攻击

mod_evasive Apache 模块,以前被称为 mod_dosevasive,有助于保护 Apache web 服务器免受 DoS、DDoS(分布式拒绝服务)和暴力攻击。它可以在攻击期间采取规避措施,并通过电子邮件和系统日志设施报告滥用情况。每秒请求同一页面超过几次在同一子进程上每秒进行超过 50 个并发请求在暂时列入黑名单时进行任何请求如果满足上述任何条件,将发送 403 响应并记录 IP 地址。可选择向服务器所有者发送电子邮件通知,或运行系统命令来阻止 IP 地址。

rubys007的博客 1099

windows apache ddos mod_dosevasive22

x86 ,解压直接使用

配置 mod_dosevasive 让你的 Apache 拒绝 DDOS

NULL 博文链接:https://huanlong78.iteye.com/blog/737169

DDOS 攻击防御-SYN 洪水攻击

本文章仅供学习交流 一.环境配置 攻击机:kali 2021.1 ip: 192.168.0.118 255.255.255.0 靶机:contos7.6 ip:192.168.0.116 255.255.255.0 条件:两机器要在同一局域网中,能相互访问contos开启apche服务 二.信息收集 1.Traceroute 命令也可以对路由进行跟踪 2.使用nmap扫描win7进行信息收集 nmap 目标ip --exclude 排除目标ip 扫描时排除指定ip nmap -iL 目标文

qq_41245301的博客 5414

实战ByteTrack:用C++手把手教你实现多目标跟踪(附完整代码解析)

本文通过C++实战教程,手把手教你实现ByteTrack多目标跟踪算法。文章详细解析了算法核心,包括利用卡尔曼滤波进行状态预测、匈牙利算法完成数据关联,以及ByteTrack独特的三次匹配策略来有效处理低置信度检测框,并提供了完整的项目架构、代码实现与性能优化指南。

yolo5detector的博客 300

Iptables 防火墙封禁/解禁 IP,查看列表

# 封 iptables -I INPUT -s ***.***.***.*** -j DROP # 解 iptables -D INPUT -s ***.***.***.*** -j DROP # 列表 输入后可能会需要等一会 iptables -L

WoBenZiYou的专栏 2729

H3C无线控制器AC与第三方认证系统集成实现企业级Portal短信认证方案

本文详细阐述了如何将H3C无线控制器(AC)与第三方认证系统集成,构建企业级Portal短信认证方案。该方案通过手机号作为临时凭证,实现了访客网络的实名追溯、权限控制与专业体验。文章深入解析了方案原理、H3C AC的关键配置步骤、第三方系统对接要点及短信网关选型避坑指南,为企业提升网络安全管理与访客服务质量提供了完整、可行的实战指导。

a3b4c5的博客 196

AHP层次分析法在项目风险评估中的实战应用(含Excel模板)

本文详细介绍了AHP层次分析法在项目风险评估中的实战应用。通过构建风险层次模型、利用判断矩阵量化主观判断,并结合Excel工具进行权重计算与一致性检验,将模糊的定性风险转化为清晰的量化排序。文章以新产品上线项目为例,提供了完整的分析流程和可操作的Excel模板,帮助项目经理高效识别并优先处理核心风险。

weixin_29061465的博客 571

Apache防DDOS模块mod_evasive安装和配置方法详解

一、mod_evasive 介绍mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。mod_evasive 的官方地址: ht...

java践行之路的博客 1362

【Qt-4】QT基于qhttp-server搭建http服务器

QT搭建http服务器

WXG1011的博客 5714

关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明

作者:北南南北来自:LinuxSir.Org摘要:在服务器管理中,经常遇到DDOS攻击WWW服务器。对于Apache(httpd)服务器来说,防御DDOS是通过mod_evasive来实现的。本文将介绍mod_evasive模块的安装、配置;目录 2.1 mod_evasive 的下载地址;2.2 mod_

程序人生 1147

Kriging代理模型理论相关推导

代理模型,Kriging,加点准则

森屹的博客 1万+

Vibe Coding 工具实战案例全解:Cursor、Claude Code、Codex 真实项目 30 分钟到 4 小时快速构建指南(2026 年最新)

2026年VibeCoding工具实战案例精选:1)使用Cursor在30分钟内构建现代TodoList应用(Next.js+TS+Tailwind);2)通过ClaudeCode纯终端2小时开发3D飞行射击游戏(Three.js+R3F);3)利用OpenAICodex多Agent并行4小时完成SaaS全栈开发(Next.js+Supabase+Stripe)。案例均来自真实项目,覆盖从入门到生产级开发,重点展示:自然语言Prompt技巧、迭代反馈方法、工具特性对比(Cursor可视化最佳/Claude推

hy行者勇哥的博客 3186

通向架构师的道路(第三天)之apache性能调优

一、总结前一天的学习 在前两天的学习中我们知道、了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构。这个架构是一个非常基础的J2ee工程上线布署时的一种架构。在前两天的教程中,还讲述了Http服务器、App Server的最基本安全配置(包括单向https的实现), 它只是避免了用户可以通过浏览器侵入我们的Web访问器或者能够通过Web浏览器来查询我们的W...

fulerbakesi 751

【用unity实现100个游戏之2】复刻实现经典2d平台跳跃游戏《蔚蓝 Celeste》(附工程源码)

蔚蓝》是一款备受好评的独立游戏,由游戏开发工作室开发并由发行。这款游戏于2016年首次发布,并在玩家和评论界收获了广泛赞誉。蔚蓝以其独特的艺术风格和引人入胜的故事而著称。游戏以深海为背景,玩家将扮演一个能够探索水下世界的神秘生物。游戏通过惊人的视觉表现和动态的海洋生态系统为玩家带来了令人难忘的游戏体验。无论是广阔的水下景观还是充满生机的海洋生物,蔚蓝都让玩家感受到深海的神秘和美丽。蔚蓝在玩法上注重探索和解谜。玩家可以在海底环境中自由游动,发现隐藏的地点和秘密,与各种生物互动,并解决环境谜题以继续前进。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4170

APACHE中用mod_evasive防DOS攻击

服务器遭受到DDOS攻击,可以说防不胜防,但是作为apache服务器,可以安装一些模块一定程度上减缓DDOS的攻击。比如第3方模块mod_evasive就是一个预防 Apache 遭受 DDos 攻击的模组,可以防止同一个 IP 对相同 URI 发出的大量请求,可设定的选项有:– 限制同一个 IP 在一定秒数内请求一个页面或档案的次数。– 限制同一个 IP 一秒内只可发出 50 个请求。– 设定被禁止的 IP 封锁时间。1.首先下载mod_evasive_1.10.1.tar.gz并解压:# tar zxv

寻找甘当科学家的女人/男人 3131

利用requests库下载bilibili字幕文件

文章目录1. 前言2. 程序下载大法好2.1 挖掘思路2.2 核心知识点2.3 汇总代码 1. 前言   之前的博客介绍了使用工具下载B站视频,但美中不足的是无法下载字幕。为了提高效率,将下载字幕的工作用程序自动化处理。 2. 程序下载大法好 2.1 挖掘思路   在谷歌浏览器中按下F12,打开谷歌开发者工具。搜索subtitle,则会得到一个json文件,如下图所示:   在网页中空白位置点击查看网页源代码,然后通过搜索(Ctrl+f)查找subtitle,则会发现在subtitle_url中包含了对应

herosunly的博客 4万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: Linux、Shell常用命令
下一篇: Apache防DDOS模块mod_evasive安装和配置方法详解
yufei_java
博客等级 码龄10年 18粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值