当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Apache防DDOS模块mod

    栏目:Linux/apache问题 时间:2019-10-10 10:09

    一、mod_evasive 介绍
    mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。
    mod_evasive 的官方地址: http://www.zdziarski.com/
    二、mod_evasive 工作原理
    Apache模块mod_evasive利用Hash表储存相应的HTTP请求,利用设定规则判断是否拒绝对方的请求。
    三、mod_evasive 安装
    复制代码 代码如下:
    wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
    tar zxvf mod_evasive_1.10.1.tar.gz
    cd mod_evasive/
    apxs -i -a -c mod_evasive20.c
    #编译、安装、并加载模块
    #注:apxs 用于编译模块工具;如果是用系统自带的软件包,一般位于/usr/sbin目录。如果您是自己编译安装Apache(httpd)的,你应该自己来指定路径;

    在编译安装完成后,会自动插入一行到Apache 配置文件中,对于Apache 2.x 版本中,应该在其配置文件中有类似下面的一行;
    复制代码 代码如下:LoadModule evasive20_module   lib/httpd/modules/mod_evasive20.so
    四、配置mod_evasive
    复制代码 代码如下:
    [root@localhost ~]# vi /etc/httpd/conf/httpd.conf
    #加入以下配置
    <IfModule mod_evasive20.c>
        DOSHashTableSize    3097 #表大小
        DOSPageCount        2 #限制单位时间内同一IP请求同一网页次数
        DOSSiteCount        10 #限制单位时间内同一IP请求网站次数
        DOSPageInterval     1 #网页存取间隔
        DOSSiteInterval     1 #网站存取间隔
        DOSBlockingPeriod   10 #限制访问时间
        DOSEmailNotify     #疑似攻击时邮件通知
        DOSSystemCommand "su - onovps -c iptables -I INPUT -s %s --dport 80 -j DROP"
        #疑似攻击时用防火墙限制IP访问80端口
        DOSLogDir  "/var/log/    #日志目录
        DOSWhiteList 127.0.0.1 #添加白名单
    </IfModule>
    如果您不知道把这些插入到哪,用下面的办法做也是可以的;
    在/etc目录中创建一个文件,比如mod_evasive.conf;
    复制代码 代码如下:[root@localhost ~]#touch /etc/mod_evasive.conf
    然后把根据自己的Apache版本来加入相应的内容;
    接着我们再修改 httpd.conf ,在最后一行加入
    复制代码 代码如下:Include /etc/mod_evasive.conf

    修改完成后,我们要重启Apache服务器使配置生效:
    复制代码 代码如下:/etc/init.d/httpd restart
    五、测试mod_evasive
    防DDOS的模块做好后,我们可以要验证,可以用Apache 自带的ab工具,系统默认安装在/usr/sbin目录中;比如;
    复制代码 代码如下:[root@localhost ~]/usr/sbin/ab -n 1000 -c 50 http://www.baidu.com:80/
    注:上面的例子的意思是,如果您的服务器是百度的WEB服务器,我们要发送数据请求包,总共1000个,每次并发50个;
    另外一个测试工具就是mod_evasive的解压包的目录中,有个test.pl ,你可以修改IP地址,然后用