配置安全的Apache服务器之 --防范DoS

时间:2008-07-16 06:53:56  类别:Dos  作者:knightkytor

DoS的英文全称是Denial of Service,也就是“拒绝服务”的意思。从网络攻击的各种方法和所产生的破坏情况来看,DoS算是一种很简单但又很有效的进攻方式。目前并无根本的解决方法,不过我们还是可以采取一些措施来防范DoS。

这里所要讲的便是在Linux下,使用mod_dosevasive模块加强Apache来应对拒绝服务攻击。

mod_dosevasive可以快速拒绝来自相同地址对同一URL的重复请求,通过查询内部一张各子进程的哈希表来实现。Mod_dosevasive可以十分方便的和防火墙、路由器等进行整合,进一步提高拒绝服务的能力。

⑴安装mod_dosevasive

这里以Fedora 8.0为测试环境。Apache安装在/etc/httpd,假如你安装在其他位置,请注意路径。

从下列地址下载mod_dosevasive_1.10.1.tar.gz包。

http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz

将其拷贝到/usr/local/src目录下。当然你也可以拷贝到其它目录,这里只是建议这么放。

解压缩:tar zxf mod_evasive_1.10.1.tar.gz

进入解压后的目录:cd mod_dosevasive

在该目录下有两个文件:mod_dosevasive.c与mod_dosevasive20.c,如果你的Apche版本是2.0或者更高,则编译mod_dosevasive20.c,倘若低于,那就编译mod_dosevasive.c。一般现在都是用Apache2,所以编译mod_dosevasive20.c。

编译: apxs –iac mod_dosevasive20.c

这里需要说明的是:apsx是一个为Apache HTTP伺服器编译和安装扩展模组的工具,用于编译一个或者多个源程式或者目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运作时加载到Apache伺服中。

如果找不到该命令,那么你必须安装httpd-devel。可以采用yum来安装。

yum install httpd-devel

⑵配置mod_dosevasive

APXS会自动安装模块以及修改httpd.conf配置来提供防拒绝服务攻击的能力,但我们仍然需要手动修改以达到自己所预期的目的。

vi /etc/httpd/conf/httpd.conf

在文件的末尾添加如下:

<ifmodule mod_dosevasive.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify root@localhost

DOSLogDir “/var/lock/mod_dosevasive”
</ifmodule>

参数简单说明:

DOSHashTableSize 3097

记录和存放黑名单的哈希表大小,你可以根本自己的需要来修改该值。

DOSPageCount 2

同一页面在同一时间内可以被同一个用户访问的次数,超过该数值就会被列为攻击。这里的同一时间值由DOSPageInterval指定。

DOSSiteCount 50

同一用户在同一网站内可以同时打开的访问数。

DOSPageInterval 1

设置DOSPageCount中时间长度标准,默认值为1。

DOSSiteInterval 1

设置DOSSiteCount中时间长度标准。

DOSBlockingPeriod 10

被封时间间隔,这中间会收到Forbidden的返回。

DOSEmailNotify root@localhost

设置受到攻击时接收攻击信息提示的邮箱地址,你可以改成自己的邮箱

DOSLogDir “/var/lock/mod_dosevasive”

设置攻击日志存放的目录。

最后重启httpd服务,使配置生效。


特别推荐

广而告之