信息发布→ 登录 注册 退出

Linux 安全:如何配置 mod_evasive 防止 DoS / DDoS 攻击

发布时间:2025-11-21

点击量:
mod_evasive通过监控请求频率防御DoS攻击,安装后配置DOSPageCount、DOSSiteCount等参数控制访问阈值,设置DOSBlockingPeriod封锁超限IP,结合DOSWhitelist避免误封,日志记录至/var/log/httpd,可选DOSBlockingExec联动iptables封禁,需合理配置防止误判,适用于抵御小规模CC攻击。

mod_evasive 是 Apache 的一个模块,用于帮助防止 DoS(拒绝服务)和 DDoS(分布式拒绝服务)攻击。它通过监控客户端请求频率,在检测到异常行为时自动阻止 IP 地址,从而减轻服务器负载并保护网站可用性。以下是配置 mod_evasive 的具体步骤。

安装 mod_evasive 模块

在大多数 Linux 发行版中,mod_evasive 不是默认启用的,需要手动安装。

  • CentOS / RHEL / Rocky Linux:使用 EPEL 仓库安装

yum install -y epel-release
yum install -y mod_evasive

  • Ubuntu / Debian:通过 apt 安装

apt update
apt install -y libapache2-mod-evasive

安装完成后,Apache 会自动加载该模块,无需手动添加 LoadModule 指令(通常已包含在配置中)。

配置 mod_evasive 参数

配置文件位置因系统而异:

  • Ubuntu/Debian: /etc/apache2/mods-available/evasive.conf
  • CentOS/RHEL: /etc/httpd/conf.d/mod_evasive.conf

编辑配置文件,设置以下关键参数:


    # 每个客户端每秒最多请求次数(同一子目录)
    DOSPageInterval 1
    DOSPageCount 2
# 每个客户端每秒最多总请求数
DOSSiteInterval 1
DOSSiteCount 50

# 黑名单持续时间(秒)
DOSBlockingPeriod 600

# 记录日志路径
DOSLogDir "/var/log/httpd"

# 触发拦截时执行的命令(可选:发送警报或防火墙封禁)
# DOSBlockingExec "iptables -I INPUT -s %s -j DROP"

# 白名单 IP(避免误封内部网络)
DOSWhitelist 127.0.0.1
DOSWhitelist 192.168.1.*

说明:

  • DOSPageCount 表示单个页面每秒最多请求次数,超过则触发拦截
  • DOSSiteCount 控制整个站点每秒最大请求数
  • DOSBlockingPeriod 决定 IP 被封锁的时间长度
  • DOSWhitelist 可防止本地或可信 IP 被误封

设置日志与监控

确保日志目录存在且 Apache 有写入权限:

mkdir -p /var/log/httpd
chown apache:apache /var/log/httpd chown www-data:www-data /var/log/httpd

查看拦截记录:

tail -f /var/log/httpd/mod_evasive.log

日志内容示例:

[client 203.0.113.45] Blacklisted for exceeding request limits

集成防火墙增强防护(可选)

可通过 DOSBlockingExec 自动调用 iptables 封禁恶意 IP:

DOSBlockingExec "sudo /sbin/iptables -I INPUT -s %s -j DROP"

注意:需确保 Apache 用户(如 www-data 或 apache)有免密码执行 iptables 的权限:

visudo
添加:
www-data ALL=(ALL) NOPASSWD: /sbin/iptables

重启 Apache 生效配置:

systemctl restart httpd
systemctl restart apache2

基本上就这些。mod_evasive 不能完全替代专业 DDoS 防护服务,但对于小规模 CC 攻击或暴力扫描非常有效。合理设置阈值,避免误伤正常用户,同时结合 fail2ban、CDN 和防火墙规则,能显著提升 Web 服务器安全性。

标签:# var  # 持续时间  # 重启  # 可通过  # 可用性  # 适用于  # 拒绝服务  # 客户端  # 可选  # 最多  # ddos  # debian  # linux  # for  # 分布式  # 黑名单  # 配置文件  # cdn  # ai  # ubuntu  # 防火墙  # apache  # centos  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!