启用 mod_evasive Apache

Mod_evasive 是一个模块 Apache 当检测到 HTTP DoS 攻击或蛮力攻击时自动采取行动。 Mod_evasive 能够记录和报告滥用情况并通过电子邮件通知问题。 在遵循本指南之前,您应该已经有一个运行正常的 LAMP 服务器。

本指南是为 CentOS 及其变体(例如 RHEL)和 Debian 及其变体(例如 Ubuntu)编写的。

该模块创建一个 IP 地址和 URL 表。 如果满足配置中设置的条件(如本文档后面所述),滥用用户将收到 403(禁止)错误。 此外,还会记录 IP 地址,如果设置了该选项,则会向指定的电子邮件地址发送一封电子邮件。

第 1 步:安装 httpd-devel

httpd-devel 包包含构建动态共享对象所需的文件 Apache. 我们需要这个包来安装模块,因为我们将在以下步骤中自己编译它。

在 CentOS/RHEL 上,执行:

yum install httpd-devel

在 Debian/Ubuntu 上,执行:

apt-get install apache2-utils

成功安装此包后,继续下一步。 如果安装没有正确完成,下一步将(很可能)失败。

第 2 步:下载和安装 mod_evasive

方法一:编译

下载模块:

cd /usr/src
wget https://www.zdziarski.com/blog/source/uploads/2010/02/mod_evasive_1.10.1.tar.gz

提取模块:

tar xzf mod_evasive*.tar.gz

导航到目录:

cd mod_evasive

接下来,我们将使用 apxs2,为构建和安装扩展功能的模块而创建的工具 Apache. Apxs2 构建一个动态共享对象,这就是我们安装的原因 httpd-devel 在步骤#1 中。

执行:

apxs2 -cia mod_evasive20.c

方法二:安装使用 yum (受到推崇的)

当你有 epel-release 已安装存储库, mod_evasive 可以通过 yum.

添加存储库:

yum install epel-release

使用安装模块 yum

 yum install mod_evasive

第 3 步:将模块添加到 Apache

一般来说, Apache 加载所有模块 mods-enabled,因此无论何时将模块添加到该文件夹​​中,都不需要将其添加到 Apache 手动配置。 打开您的配置文件以检查是否是这种情况。

在 CentOS 上,相关文件是: /etc/httpd/conf/httpd.conf

在 Ubuntu 上,相关文件是: /etc/apache2/apache2.conf

搜索 Include. 一条线,如 Include mods-enabled/*.conf 告诉 Apache 加载所有模块。 如果不存在,将该行添加到文件的顶部并重新启动 Apache.

对于 Ubuntu,在文件底部添加以下内容:

LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so

步骤 4:配置和更改设置

将以下块添加到配置文件中。 路径与步骤#3 中的路径相同。

<IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 2
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 60
    DOSEmailNotify <[email protected]>
</IfModule>

这些参数的快速概览可以在 README. 您可以按如下方式阅读 README 文件:

cat /usr/src/cd mod_evasive/README

您很可能需要不时调整这些设置,以确保它们适合您的服务器和网站。 毕竟,有些服务器比其他服务器有更多的活动和流量。

步骤 5:重新启动 Web 服务器

重新启动 Apache 使更改生效并加载模块的 Web 服务器:

service httpd restart

确保模块已加载到 Apache:

httpd -M | grep evasive

这应该返回 evasive20_module (shared). 如果不是,则模块未正确加载,我们建议重新检查配置文件以及它们是否已正确保存。

请注意,此模块不能替代 DDoS 保护,因为它在服务器容量用完时无法运行。 事实上,Vultr 提供了 DDoS 保护,这对于更好地保护服务器(以及使用此模块)非常有用。 对于更简单的威胁,尤其是基于脚本的攻击,该模块可以完成其工作并且绝对有用。

您现在已经安装了 mod_evasive 模块输入 Apache,从而使您的网络应用程序更安全。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com