CentOS下如何给 Apache添加配置 mod_evasive模块防止CC攻击

  • 何为 CC攻击
    CC = Challenge Collapsar,其前身名为Fatboy攻击,是利用不断对网站发送连接请求致使形成拒绝服务的目的,
    CC攻击是DDOS(分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些。这种攻击你见不到真实源IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。最让站长们忧虑的是这种攻击技术含量低,利用工具和一些IP代理一个初、中级的电脑水平的用户就能够实施攻击。因此,大家有必要了解CC攻击的原理及如果发现CC攻击和对其的防范措施。
  • CC攻击原理
    CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
  • 如何防 CC攻击
      防御CC攻击可以通过多种方法,禁止网站代理访问,尽量将网站做成静态页面,限制连接数量等。
    来源于百度百科

这里我们介绍如何使用 Apache的模块 mod_evasive 来防小规模的 CC攻击。
我们的安装环境是 CentOS6.3 + Apache2.2.15
CentOS上我们可以直接使用 yum安装
yum install -y mod_evasive
其他的版本可以使用下载来的软件包安装,安装步骤如下:
首先这个包需要用到 编译工具链和 apxs 我们需要执行yum install -y httpd-devel安装 httpd-devel
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
tar xf mod_evasize_1.10.1.tar.gz
cd mod_evasive
/usr/sbin/apxs -i -a -c ./mod_evasive/mod_evasive20.c

修改配置文件,在 /etc/httpd/conf.d/目录下新建名为 mod-evasive.conf

cat > /etc/httpd/conf.d/mod-evasive.conf<<EOF
<IfModule mod_evasive20.c>
    DOSHashTableSize 3097      #哈希表大小(无需修改)
    DOSPageCount 10            #允许单IP的最大并发连接(瞬间值)
    DOSSiteCount 50            #允许单台机在指定秒数内访问同一页的次数。   
    DOSPageInterval 1          #单页请求检测时间(默认1秒)
    DOSSiteInterval 1          #全站请求检测时间(默认1秒)
    DOSBlockingPeriod 3600     #黑名单封禁时间(默认3600秒)
    DOSEmailNotify root        #有新黑名单记录通知管理员(可修改为邮箱)
    DOSSystemCommand "iptables -A INPUT -s %s -j DROP" #进黑名单执行命令
</IfModule>
EOF

一般 Apache的配置文件 /etc/httpd/conf/httpd.conf 会自动包含 /etc/httpd/conf.d/*.conf
如果是我们自己编译的 Apache我们需要添加 Include conf.d/mod-evasive.conf

使用 service httpd restart 或者 /etc/init.d/httpd restart 重启 Apache服务器

Post a Comment

Your email is never shared. Required fields are marked *

*
*