Azure上Linux VM防DDOS***:使用Apache mod_evasive

部署在云端的虚拟机和web服务,很容易受到DoS护着DDoS的服务***,让一些新上线的业务苦不堪言,固然各个云服务提供商也有不一样层面DDOS的防御,然而因为防御粒度,***复杂度的关系,未必能够知足你的需求,本文介绍如何对使用了Apache httpd的用户作一些简单的配置,从而有效防御一些简单的DDOS***。web


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


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


  1. 安装apache httpd服务器


    wKioL1Y1sZqDkOnpAAB_WJYPrR4445.jpg

    wKiom1Y1sWTwZHrNAAZKB83cDWM184.jpg

2. 安装mod_evasive:dom


wKioL1Y1sfKz589vAAOYb_Fyb3M230.jpg

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


wKiom1Y1sgXhdXkrAABzJ6wFUTc395.jpg


3.1 在配置文件的首行,能够看到加载了mod_evasive模块:工具

# mod_evasive configuration
LoadModule evasive20_module modules/mod_evasive20.so
测试


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


    DOSHashTableSize    3097
spa


3.3 DOSPageCount,该参数定义了在指定时间内(默认1秒)来自同一个IP地址对同一个页面的访问次数,若是超过这个次数,那么这个IP地址就会被放到黑名单,禁止掉,默认为2,可能有点过低了,在本次测试中,调整为10(不排除一个某个公司的员工都是经过一个代理地址出来,而非DDOS的状况,这个须要综合考虑)

    DOSPageCount        10


3.4 DOSSiteCount指定了在特定间隔内(默认1秒)来自同一个IP地址对网站的访问总量,一旦超过,该IP地址就被放入黑名单,暂时使用默认

    DOSSiteCount        50


3.5  DOSPageInterval 和DOSSiteInterval分别是3.3和3.4提到的时间间隔,默认是1秒

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

    DOSSiteInterval     1


3.6 DOSBlockingPeriod就是被你加到黑名单的IP地址,你但愿他多长时间没法访问你的网站,以秒计,测试中设置为180(3分钟)

    DOSBlockingPeriod   180


3.7 其余的是是否须要邮件提示,一旦发现DDOS须要执行的命令,日志文件地址等,你们能够自行配置

    #DOSEmailNotify      you@yourdomain.com


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

[azureuser@centostest ~]$ sudo service httpd restart

Stopping httpd:                                            [  OK  ]

Starting httpd:                                            [  OK  ]

wKioL1Y1uRGyBWCPAAcJKPKCIrU047.jpg

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


wKiom1Y1uk7AbFMOAADF5b_ZE04338.jpg


6.那么最后一步是验证咱们的配置是否工做,mod_evasive自带了一个很是简单的测试工具,其目的是模拟DDOS,使用同一个IP地址向同一个页面发起100次访问,那么mod_evasive就会把这个地址加入黑名单,并拒绝访问,咱们看一下效果:

wKioL1Y1vr2STLNhAALq9QcyDcw276.jpg


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

wKiom1Y1vy3gqKaxAAL9eCsB0BQ295.jpg


到此为止全部的测试和验证结束,能够看到mod_evasive是一个简单易用的DDOS工具:)

相关文章
相关标签/搜索