部署在云端的虚拟机和web服务,很容易受到DoS护着DDoS的服务攻击,让一些新上线的业务苦不堪言,当然各个云服务提供商也有不同层面DDOS的防护,然而由于防护粒度,攻击复杂度的关系,未必可以满足你的需求,本文介绍如何对使用了Apache httpd的用户做一些简单的配置,从而有效防护一些简单的DDOS攻击。

 

mod_evasive模块是httpd对web服务器的一个DoS和DDoS防护模块,针对单个IP地址客户端对单个页面,访问总量等参数,对疑似DDOS的IP地址进行屏蔽,配置简单而且简单有效,具体步骤将会在以下步骤中详述。

 

本文测试使用Azure作为公有云平台,采用CentOS 6.5和自带的Apache httpd 2.2作为demo环境。

 

  1. 安装apache httpd

     

    2. 安装mod_evasive:

     

    3. 检查配置文件,并对mod_evasive进行配置:

     

     

    3.1 在配置文件的首行,可以看到加载了mod_evasive模块:

    # mod_evasive configuration
    LoadModule evasive20_module modules/mod_evasive20.so

     

    3.2 DOSHashTableSize是存放DOS数据的表,如果你的用户访问数量比较高,建议设置高一写,本测试中使用默认值:

        DOSHashTableSize    3097

     

    秒)来自同一个IP地址对同一个页面的访问次数,如果超过这个次数,那么这个IP地址就会被放到黑名单,禁止掉,默认为2,可能有点太低了,在本次测试中,调整为10(不排除一个某个公司的员工都是通过一个代理地址出来,而非DDOS的情况,这个需要综合考虑)

        DOSPageCount        10

     

    秒)来自同一个IP地址对网站的访问总量,一旦超过,该IP地址就被放入黑名单,暂时使用默认

        DOSSiteCount        50

     

        # The interval for the page count threshhold; defaults to 1 second
        # intervals.
        DOSPageInterval     1

        DOSSiteInterval     1

     

    (3分钟)

        DOSBlockingPeriod   180

     

    3.7 其他的是是否需要邮件提示,一旦发现DDOS需要执行的命令,日志文件地址等,大家可以自行配置

        #DOSEmailNotify      you@yourdomain.com

     

    4. 重新启动httpd服务,并进行验证:

    [azureuser@centostest ~]$ sudo service httpd restart

    Stopping httpd:                                            [  OK  ]

    Starting httpd:                                            [  OK  ]

    5. 验证下mod_evasive是否被正确加载

     

     

    次访问,那么mod_evasive就会把这个地址加入黑名单,并拒绝访问,我们看一下效果:

     

    7. 如何知道该地址被加入了黑名单昵?事实上mod_evasive也会将该信息写入syslog:

     

    到此为止所有的测试和验证结束,可以看到mod_evasive是一个简单易用的DDOS工具:)

最新文章

  1. C# 集合类 :(Array、 Arraylist、List、Hashtable、Dictionary、Stack、Queue)
  2. centos7 开机/etc/rc.local 不执行的问题
  3. Linux系统巡检常用命令
  4. Object Oriented Programming python
  5. Linux之磁盘管理
  6. iOS富文本(二)初识Text Kit
  7. MongoDB数据库和集合的状态信息
  8. Android “NetworkOnMainThreadException”出错原因及解决办法
  9. hdoj 1233 还是畅通工程---最小生成树---prime算法
  10. Spark编程进阶
  11. iOS 之 Block Variable
  12. !function 笔记
  13. Spring Boot(十)Logback和Log4j2集成与日志发展史
  14. redis拾趣(客户端连接,keys命令,数据备份,缓存有效期等)
  15. Linux下wget下载整个FTP目录(含子目录)--转载
  16. Apache Spark探秘:利用Intellij IDEA构建开发环境
  17. FacebookFriendAdderPro
  18. HDU 4336 Card Collector 期望dp+状压
  19. Java 接口与抽象类
  20. python接口自动化22-签名(signature)鉴权(authentication)之加密(HEX、MD5、HMAC-SHA256)

热门文章

  1. sql 数据库优化
  2. AlarmReceiver 与IntentService的使用
  3. Dropdownlist的onchange事件应用
  4. android android:textColor="@[package:]color/filename" ----Color/filename文字颜色selector状态列表
  5. 处理事件的方式:两种类的覆盖处理(自己管理,覆盖专用事件函数;自己统一管理,覆盖QWidget::Event通用函数),一种对象的处理(父控件统一管理,即安装过滤器),两种全局处理(QCoreApplication安装过滤器;覆盖notify方法)
  6. C#中Split分隔字符串的应用(C#、split、分隔、字符串)
  7. 锁sql server锁
  8. sqlserver 创建索引
  9. Kth Smallest Element in a BST 解答
  10. Sql Server使用正则表达式