[转]http://nt.discuz.net/showtopic-52209.html
公布了网站一天之内给很多人扫描,影响正常访问。因为用的是虚拟机,可以动态添加CPU,添加的8个 vcpu,cpu 使用率还是达到25%,而且响应速度机器慢。
网上查询看见apache 有一个 防ddos 的模块,决定试试看。
参考
http://www.toplee.com/blog/278.html 1.下载
cd /tmp
wget
mod.zip
(20.11 K, 下载次数:935)tar zxf mod_evasive_1.10.1.tar.gz
2.安装
cd mod_evasive
/usr/local/apache2/bin/apxs -i -a -c mod_dosevasive20.c
3.配置
vi /usr/local/apache2/conf/httpd.conf
添加下面内容
LoadModule dosevasive20_module libexec/apache22/mod_dosevasive20.so
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600
4.重新启动apache2,配置完毕。
5.测试
打开IE ,访问网站 不断快速刷新网页就会出现错误提示,说明防泛有效,查看/tmp目录会dow.ip 日志文件。
说明:
DOSHashTableSize 3097 记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值
DOSPageCount 5 同一个页面在同一时间内可以被统一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置。
DOSSiteCount 50 同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。
DOSPageInterval 2 设置DOSPageCount中时间长度标准,默认值为1。
DOSSiteInterval 2 设置DOSSiteCount中时间长度标准。
DOSBlockingPeriod 10 被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。
[root@test logs]# grep 404 access_log | awk -F: '{print $1}' | sort | sort -u | wc -l
1011
一个晚上有1011 个Ip来扫描测试下来速度比较块,CPU基本没使用。可以正常使用了。下一步是能不能分析日志,找出肉鸡的源头。
阅读(1638) | 评论(0) | 转发(0) |