当前位置: 首页 > news >正文

Apache如何防止DDOS攻击—mod_evasive模块的配置

目前的网络攻击多种多样,什么CC,DDOS,碎片,死亡ping等等,但是最头疼的就是DDOS了。大多数网站都是使用使用Apache的httpd服务作为服务端的,可以在apache中加载mod_evasive模块来防止DDOS攻击。本文将介绍如何在apche中配置mod_evasive模块。

1.mod_evasive 介绍

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

2、源码安装mod_evasive

[root@Centos6 ~] # wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
[root@Centos6 ~] # tar xzvf mod_evasive_1.10.1.tar.gz
[root@Centos6 ~] # cd mod_evasive
[root@Centos6 ~] # /usr/local/apache/bin/apxs -i -a -c mod_evasive20.c

3、修改httpd.conf,关于mod_evasive的相关参数

  1. <IfModule mod_evasive20.c>   
  2.  DOSHashTableSize 3097  
  3.  DOSPageCount 5  
  4.  DOSSiteCount 100  
  5.  DOSPageInterval 2  
  6.  DOSSiteInterval 2  
  7.  DOSBlockingPeriod 3600  
  8.  DOSEmailNotify lampbo@qq.com   
  9.  DOSLogDir "/var/log/mod_evasive"  
  10. </IfModule>  

参数说明:

  1. <IfModule mod_evasive20.c>   
  2. DOSHashTableSize 3097   
  3. #记录和存放黑名单表大小,如果服务器访问量很大,可以加大该值.   
  4. DOSPageCount 5           
  5. #同一个页面在同一时间内可以被同一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置.   
  6.   
  7. DOSSiteCount 100   
  8. #同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。   
  9.   
  10. DOSPageInterval 2   
  11. #设置DOSPageCount中时间长度标准,默认值为1。   
  12.   
  13. DOSSiteInterval 2   
  14. #设置DOSSiteCount中时间长度标准,默认值为1。   
  15.   
  16. DOSBlockingPeriod 3600   
  17. #被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。   
  18.   
  19. DOSEmailNotify  lampbo@qq.com   
  20. #设置受到攻击时接收攻击信息提示的邮箱地址。   
  21.   
  22. DOSLogDir "/var/log/mod_evasive"  
  23. #攻击日志存放目录,注意这个目录的权限,是运行apache程序的用户。   
  24.   
  25. </IfModule>  

4、测试

在mod_evasive_1.10.1.tar.gz解压目录下面有个测试脚本,是用perl写的,如果可以看下一下结果,就表示该模块安装成功。

[root@Centos6 ~] # chmod 755 test.pl
./test.pl
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

这个时候,可以到你的/var/log/mod_evasive目录下面发现有一个日志文件,同时你的邮箱也会收到该报警信息。

  1. 相关参数   
  2. DOSHashTableSize 3097 #定义哈希表大小。     
  3. DOSSiteCount 50  #允许客户机的最大并发连接。     
  4. DOSPageCount 2 #允许客户机访问同一页的间隔。     
  5. DOSPageInterval 1 #网页访问计数器间隔。     
  6. DOSSiteInterval 1 #全站访问计数器间隔。     
  7. DOSSiteInterval 60 #加入黑名单后拒绝访问时间。     
  8. DOSEmailNotify xxxx@gmail.com #有IP加入黑名单后通知管理员。     
  9. DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP" #IP加入黑名单后执行的系统命令。     
  10. DOSLogDir "/tmp" #锁定机制临时目录。     
  11. DOSWhiteList 127.0.0.1  #防范白名单,不阻止白名单IP。  

相关文章:

  • 利用JK连接Apache与Tomcat,实现负载均衡
  • Ubuntu配置和修改IP地址
  • 几个有用的Apache下.htaccess设置
  • Linux查看硬件信息的方法
  • Linux下优化Apache保证web服务器安全
  • 从零开始学习Linux 基础(二)—磁盘、分区与文件系统
  • apache中开启Gzip和expires,优化页面访问速度
  • Technicolor TG582n 后门
  • Alcatel-Lucent 无限制后门
  • linux设置只读属性,可以防webshell
  • CSRF | XSRF 跨站请求伪造
  • 全面解析PHP的糟糕设计
  • 微软安全工具
  • chrome 浏览器添加来自其他网站的扩展程序
  • 关于JavaWeb中的CSRF攻打与防御
  • [译]如何构建服务器端web组件,为何要构建?
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • ES6系列(二)变量的解构赋值
  • extract-text-webpack-plugin用法
  • JavaScript设计模式之工厂模式
  • Java编程基础24——递归练习
  • Js基础——数据类型之Null和Undefined
  • log4j2输出到kafka
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Vue实战(四)登录/注册页的实现
  • WebSocket使用
  • 基于webpack 的 vue 多页架构
  • 简单基于spring的redis配置(单机和集群模式)
  • 提醒我喝水chrome插件开发指南
  • 在weex里面使用chart图表
  • 主流的CSS水平和垂直居中技术大全
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • PostgreSQL之连接数修改
  • 函数计算新功能-----支持C#函数
  • ​Spring Boot 分片上传文件
  • (06)金属布线——为半导体注入生命的连接
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (WSI分类)WSI分类文献小综述 2024
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (五)Python 垃圾回收机制
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (五)网络优化与超参数选择--九五小庞
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)一些感悟
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .gitignore文件—git忽略文件
  • .net Application的目录
  • .Net Core与存储过程(一)
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法