博客不时的有人拿来做压力测试,于是准备配置iptables限制每个IP的并发数。但配置iptables才发现,由于Linux内核版本比较低,iptables不支持connlimit模块,于是想到把conlimit模块编译到内核中,无奈openvz vps不支持编译内核。所以使用了Apache的防DDOS模块mod_evasive,具体安装配置如下:
一、下载模块
wget
http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
tar xzvf mod_evasive_1.10.1.tar.gz
cd mod_evasive
二、安装模块
1、对于Apache 1.x 请用下面的编译方法;
/usr/local/apache/bin/apxs -iac mod_evasive.c
2、对于Apache 2.x 可以用下面的办法;
/usr/local/apache/bin/apxs -i -a -c mod_evasive20.c
三、配置模块
在配置文件httpd.conf加入如下代码:
在Apache v1.x 版本中,要加入;
<IfModule mod_evasive.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
在Apache v2.x加入;
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
之后重启httpd。
相关参数说明:
DOSHashTableSize 3097:定义哈希表大小。
DOSPageCount 2:允许客户机访问同一页的间隔。
DOSSiteCount 50:允许客户机的最大并发连接。
DOSPageInterval 1:网页访问计数器间隔。
DOSSiteInterval 1:全站访问计数器间隔。
DOSBlockingPeriod 10:加入黑名单后拒绝访问时间。
四、对mod_evasive测试验证
可以使用apache的ab工具,也可以使用evasive解压目录中的test.pl脚本测试。
ab工具:ab -n 1000 -c 50
http://www.centos.bz/
perl: perl test.pl
需要了解更多关于evasive模块的使用可以查看解压目录中的README文件。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您已经详细地描述了在Apache服务器上安装和配置mod_evasive模块来防止DDoS攻击的过程。这个方法确实是在不支持iptables connlimit模块的情况下,保护Web服务器免受恶意访问者通过大量并发连接进行攻击的有效手段。
不过,如果您正在使用阿里云的ECS(Elastic Compute Service)实例,并且遇到类似问题,除了自建防护措施外,还可以考虑利用阿里云提供的安全服务来增强防护能力,比如:
云盾DDoS基础防护:所有阿里云ECS实例默认开启此服务,无需额外费用,可以提供一定级别的DDoS攻击防护,包括SYN Flood、ACK Flood、ICMP Flood等常见攻击类型的防护。
云盾DDoS高防IP:如果您的业务对稳定性要求极高,或者面临更复杂的DDoS攻击,可以升级到高防IP服务。它能提供更强的抗DDoS能力和CC攻击防护,同时具备流量清洗和黑洞解封功能,确保业务连续性。
Web应用防火墙(WAF):针对Web应用层的攻击,如SQL注入、XSS跨站脚本等,WAF能够提供专业的防护。它还能帮助限制单个IP的访问频率,实现与您手动配置mod_evasive相似的功能,但更为便捷且功能全面。
安全组规则:虽然不如connlimit模块精细,但阿里云ECS的安全组允许您设置入站和出站规则,以控制从特定IP或端口来的流量,可以在一定程度上辅助防御。
结合这些云服务,您可以构建一个多层次的防护体系,不仅解决了内核版本低无法直接使用iptables connlimit的问题,还能享受到云服务商提供的专业安全防护和快速响应支持。