mod_evasive防御DoS和DDoS教程介绍
mod_evasive 模块是一个 Apache Web 服务模块,可帮助你的服务器在发生攻击时保持运行。一种常见 类型的网络攻击以拒绝服务 (DoS)、分布式拒绝服务 (DDoS) 或试图压倒你的安全的蛮力的形式出现。
这些攻击的本质是使用多台不同的计算机对你的服务器发出重复请求。这会导致服务器耗尽处理能力、内存、网络带宽,并变得无响应。
Apache mod_evasive如何防御DoS和DDoS ?本指南将引导你
配置和安装 mod_evasive 以防止 DoS 和 DDoS。
先决条件
安装和配置的 LAMP(Linux、Apache、MySQL、PHP)堆栈
使用sudo 或 root 权限访问用户帐户
功能正常的邮件服务器(用于电子邮件警报)
Apache mod_evasive 如何工作
该
mod_evasive阿帕奇 工具的工作原理是监控的服务器请求。该工具还监视来自一个 IP 的可疑活动,例如:
一秒钟内对同一页面的多个请求。
每秒超过 50 个并发请求。
在 IP 暂时列入黑名单时发出的请求。
如果发生任何这些事情,模块会发送403 错误。默认情况下,这还包括黑名单上的 10 秒等待期。如果发出请求的 IP 地址在该 10 秒窗口内再次尝试,则等待时间会增加。
mod_evasive 可帮助你通过网络检测和管理抵御此类攻击。
安装 mod_evasive Apache 实用程序的步骤
步骤 1:安装 Apache Web 服务器实用程序
如何使用Apache mod_evasive防御DoS和DDoS ?在安装该实用程序之前,请使用适用于你的 Linux 发行版的命令更新包存储库:
Debian /
Ubuntu :
sudo apt update
RedHat /
CentOS :
sudo yum update
允许系统刷新和更新你的软件列表。
然后,安装一个辅助工具:
Debian / Ubuntu :
sudo apt install apache2-utils
RedHat/CentOS :
sudo yum install httpd-devel
输出的最后一部分如下所示:
安装
mod_evasive 需要此实用程序。
第 2 步:安装 mod_evasive
Debian / Ubuntu
Apache mod_evasive如何防御DoS和DDoS?要在 Debian / Ubuntu 上安装
mod_evasive 模块,请输入以下内容:
sudo apt install libapache2-mod-evasive
当你收到提示时,选择“
确定” 并选择你的配置。
如果不确定,请选择
无配置 或
仅本地。
CentOS / RedHat
mod_evasive防御DoS和DDoS教程 - 在 RedHat / CentOS 上安装 mod_evasive 模块:
添加 EPEL 存储库:
sudo yum install epel-release
然后,输入:
sudo yum install mod_evasive
允许该过程完成。
第 3 步:配置 mod_evasive
如何使用Apache mod_evasive防御DoS和DDoS ?与大多数 Linux 软件包一样,
mod_evasive 由配置文件控制。作为防止 DDoS 攻击的第一步,在配置文件中进行以下更改:
1. 使用你选择的文本编辑器和以下命令:
Debian /
Ubuntu :
sudo nano /etc/apache2/mods-enabled/evasive.conf
RedHat /
CentOS :
sudo nano /etc/httpd/conf.d/mod_evasive.conf
2. 找到以下条目:
#DOSEmailNotify you@yourdomain.com
删除
#
标志,然后替换
you@yourdomain.com
为你的实际电子邮件地址。使用你定期查看的电子邮件——这是该工具发送警报的地方。
3. 去掉以下条目的注释标签,日志文件如下所示:
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify mail@yourdomain.com
DOSLogDir "/var/log/apache2/"
4. 保存文件并退出。通过输入以下内容重新加载 Apache 服务:
Debian /
Ubuntu :
sudo systemctl reload apache2
RedHat /
CentOS :
sudo systemctl restart httpd.service
测试 mod_evasive
Apache mod_evasive如何防御DoS和DDoS?现在,让我们验证模块是否正常工作。
在本例中,使用
test.pl 脚本来测试 mod_evasive。
该脚本位于:
/usr/share/doc/libapache2-mod-evasive/examples/test.pl 。
使用以下命令运行脚本:
perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
输出应返回此消息:
mod_evasive防御DoS和DDoS教程
参数和设置
如何使用Apache mod_evasive防御DoS和DDoS?你可以配置许多 mod_evasive 参数:
DOSSystemCommand
: 首先,你可能已经注意到该选项作为注释被禁用。此命令允许你指定当 IP 地址添加到黑名单时要运行的系统命令。你可以使用它来启动将 IP 地址添加到防火墙或 IP 过滤器的命令。
DOSHashTableSize
: 为繁忙的 Web 服务器增加此项。此配置为运行查找操作分配空间。增加大小会以内存为代价提高速度。
DOSPageCount
: 触发黑名单的单个页面的请求数。该值设置为 2,该值较低(且具有攻击性)– 增加此值以减少误报。
DOSSiteCount
: 同一个IP地址对同一个站点的请求总数。默认情况下,它设置为 50。你可以增加到 100 以减少误报。
DOSPageInterval
: 的秒数DOSPageCount
。默认情况下,这设置为 1 秒。这意味着如果你不更改它,1 秒内请求 2 个页面将暂时将一个 IP 地址列入黑名单。
DOSSiteInterval
: 与 类似DOSPageInterval
,此选项指定DOSSiteCount
监视的秒数。默认情况下,这设置为 1 秒。这意味着如果一个IP地址在一秒内请求同一个网站上的50个资源,它将被暂时列入黑名单。
DOSBlockingPeriod
: IP 地址在黑名单上的停留时间。默认设置为 10 秒,你可以将其更改为你喜欢的任何值。增加此值可使被阻止的 IP 地址在更长的时间内保持超时。
DOSLogDir
: 默认情况下,这设置为将日志写入 /var/log/mod_evasive。稍后可以查看这些日志以评估客户端行为。
你可以创建一个新目录来保存这些apache 访问日志——确保将所有者更改为 Apache,然后更新此条目中的位置:
sudo mkdir /var/log/apache/mod_evasive
sudo chown -R apache:apache /var/log/apache/mod_evasive
sudo nano /etc/apache2/mods-enabled/evasive.conf
DOSLogDir "/var/log/apache/mod_evasive"
将 IP 地址列入白名单: 默认情况下,该选项不包含在
evasive.conf 文件中 。
再次打开文件进行编辑,然后添加以下行:
DOSWhitelist 192.168.0.13
DOSWhitelist 192.168.0.*
将 IP 地址替换为你要列入白名单的 IP 地址。此外,你应该
每行 只列出
一个条目 。这通常用于与你的网站交换大量数据的受信任客户端。
该工具擅长检测机器人和脚本。如果有你想要允许的机器人或脚本,你可以将它们列入白名单,以防止这些机器人和脚本触发黑名单操作。
确保保存文件并退出。然后,在测试任何这些选项之前重新加载你的 Apache 服务。
mod_evasive防御DoS和DDoS教程结论
Apache mod_evasive如何防御DoS和DDoS?现在你知道
如何在 Apache 上安装和配置 mod_evasive 。
凭借其配置的简单性和有效性,它已成为保护 Apache 和 Linux 系统的最受欢迎的工具。有关更多信息和手册,请参阅开发人员的
GitHub 文档页面。