Apache防DDOS模块mod_evasive安装和配置方法详解
文件大小: 69k
源码售价: 10 个金币 积分规则     积分充值
资源说明:### Apache防DDoS模块mod_evasive安装与配置详解 #### 一、mod_evasive简介 mod_evasive 是 Apache 服务器的一个扩展模块,主要用于防御分布式拒绝服务(DDoS)攻击。虽然不能完全阻止所有类型的DDoS攻击,但它能够在一定程度上缓解攻击压力,并配合其他安全措施(如iptables或硬件防火墙)提高整体安全性。mod_evasive通过跟踪和分析HTTP请求来识别潜在的恶意行为。 #### 二、mod_evasive工作原理 mod_evasive的工作原理是基于一种高效的哈希表机制,用来存储HTTP请求的信息。通过预先设置的规则,该模块能够检测并阻止来自特定IP地址的异常请求。一旦某个IP地址的请求超过了预设的阈值,mod_evasive就会将这个IP暂时加入黑名单或者执行其他防御操作(例如发送警告邮件、启动防火墙规则等)。 #### 三、mod_evasive安装步骤 1. **下载mod_evasive** 使用`wget`命令从官方网站下载mod_evasive的源代码包。例如: ```bash wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz ``` 2. **解压并进入目录** 解压下载的文件,并进入解压后的目录: ```bash tar zxvf mod_evasive_1.10.1.tar.gz cd mod_evasive/ ``` 3. **编译并安装模块** 使用`apxs`工具编译并安装模块。注意,`apxs`通常位于`/usr/sbin`目录,如果你自定义编译了Apache,可能需要手动指定路径: ```bash apxs -i -a -c mod_evasive20.c ``` 其中,`-i`表示安装模块,`-a`表示添加模块,`-c`表示编译指定的C源文件。 4. **检查Apache配置** 编译安装完成后,会自动向Apache配置文件中添加一行以加载mod_evasive模块。对于Apache 2.x版本,这通常会出现在配置文件中的某一行: ```apache LoadModule evasive20_module lib/httpd/modules/mod_evasive20.so ``` #### 四、配置mod_evasive 1. **编辑Apache配置文件** 打开Apache的主配置文件`httpd.conf`,添加以下配置段: ```apache DOSHashTableSize 3097 # 哈希表大小 DOSPageCount 2 # 单位时间内同一IP请求同一网页次数限制 DOSSiteCount 10 # 单位时间内同一IP请求网站次数限制 DOSPageInterval 1 # 网页存取间隔 DOSSiteInterval 1 # 网站存取间隔 DOSBlockingPeriod 10 # 限制访问时间 DOSEmailNotify # 疑似攻击时邮件通知 DOSSystemCommand "su - novps -c iptables -I INPUT -s %s --dport 80 -j DROP" # 疑似攻击时用防火墙限制IP访问80端口 DOSLogDir "/var/log/" # 日志目录 DOSWhiteList 127.0.0.1 # 添加白名单 ``` 2. **创建单独配置文件** 如果不确定将这些配置放入何处,可以创建一个单独的配置文件(例如`/etc/mod_evasive.conf`),并将上述配置段放入其中。 3. **包含配置文件** 在`httpd.conf`文件的最后一行加入以下行,以包含刚才创建的配置文件: ```apache Include /etc/mod_evasive.conf ``` 4. **重启Apache服务** 修改完成后,重启Apache服务以使配置生效: ```bash /etc/init.d/httpd restart ``` #### 五、测试mod_evasive 完成配置后,可以通过以下方式测试mod_evasive的有效性: 1. **使用Apache自带的ab工具** 使用`ab`工具发送大量请求至目标站点,观察mod_evasive是否按预期工作。例如: ```bash /usr/sbin/ab -n 1000 -c 50 http://www.example.com:80/ ``` 2. **使用mod_evasive提供的测试脚本** 运行mod_evasive解压包中的`test.pl`脚本来测试模块。修改脚本中的IP地址为测试目标地址,然后运行: ```bash perl test.pl ``` #### 六、配置参数详解 1. **DOSHashTableSize** 定义哈希表的大小。哈希表用于存储HTTP请求的信息。较大的哈希表可以处理更多的并发连接,但也会占用更多内存。例如: ```apache DOSHashTableSize 3097 ``` 这里的值3097可以根据实际需求进行调整。 2. **DOSPageCount** 设置在规定时间内从同一IP地址请求相同页面的最大次数。例如: ```apache DOSPageCount 2 ``` 表示同一IP在单位时间内最多只能请求2次相同的页面。 3. **DOSSiteCount** 设置在规定时间内从同一IP地址请求整个网站的最大次数。例如: ```apache DOSSiteCount 10 ``` 表示同一IP在单位时间内最多只能请求10次网站的不同页面。 4. **DOSPageInterval 和 DOSSiteInterval** 设置两次请求之间的最小间隔时间。这两个参数分别针对单个页面和整个网站。例如: ```apache DOSPageInterval 1 DOSSiteInterval 1 ``` 表示单个页面和整个网站的请求之间至少要有1秒的间隔。 5. **DOSBlockingPeriod** 当检测到潜在攻击时,IP地址被禁止访问的时间长度。例如: ```apache DOSBlockingPeriod 10 ``` 表示被检测为潜在攻击者的IP将在10秒内无法访问。 6. **DOSEmailNotify** 设置当检测到疑似攻击时发送警告邮件的功能。例如: ```apache DOSEmailNotify ``` 可以在此基础上进一步配置邮件通知的具体细节。 7. **DOSSystemCommand** 设置当检测到疑似攻击时触发的系统命令。例如: ```apache DOSSystemCommand "su - novps -c iptables -I INPUT -s %s --dport 80 -j DROP" ``` 这条命令会在检测到攻击时,通过iptables防火墙规则阻止该IP访问80端口。 8. **DOSLogDir** 设置日志文件的保存位置。例如: ```apache DOSLogDir "/var/log/" ``` 所有与mod_evasive相关的日志都会记录在这个目录下的文件中。 9. **DOSWhiteList** 设置白名单,即不受mod_evasive监控的IP地址列表。例如: ```apache DOSWhiteList 127.0.0.1 ``` 这里指定了本地回环地址作为白名单。 通过以上详细的步骤和解释,您可以有效地安装和配置mod_evasive模块,从而为您的Apache服务器提供一层额外的安全保护。同时,合理地调整各个参数可以帮助您更准确地检测和应对潜在的DDoS攻击威胁。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。