首页主机资讯如何防止Apache2遭受DDoS攻击

如何防止Apache2遭受DDoS攻击

时间2025-11-26 17:10:03发布访客分类主机资讯浏览650
导读:Apache2 防护 DDoS 的实用方案 一 分层防护思路 边缘与网络层:优先在CDN/WAF侧做流量清洗与速率限制,隐藏源站真实 IP,显著降低到达 Apache 的恶意流量。 主机与系统层:用 iptables/fail2ban 做...

Apache2 防护 DDoS 的实用方案

一 分层防护思路

  • 边缘与网络层:优先在CDN/WAF侧做流量清洗与速率限制,隐藏源站真实 IP,显著降低到达 Apache 的恶意流量。
  • 主机与系统层:用 iptables/fail2ban 做连接数与异常频率限制,快速封禁恶意来源。
  • 应用层:在 Apache 启用 mod_evasive(抗高频请求/CC)与 mod_reqtimeout、mod_qos(抗慢速攻击、限并发与最低速率),并配合 mod_security(WAF规则)降低应用被滥用风险。
  • 监控与响应:实时观测连接、带宽与日志,出现异常时按预案限流/封禁并溯源。

二 关键模块与配置示例

  • 安装与启用模块(Debian/Ubuntu)
    • 抗 CC/暴力:sudo apt install libapache2-mod-evasive;启用:sudo a2enmod evasive;检查:apachectl -M | grep evasive
    • 抗慢速:sudo apt install libapache2-mod-qos;启用:sudo a2enmod qos
    • WAF:sudo apt install libapache2-mod-security2;启用:sudo a2enmod security2
  • mod_evasive 推荐配置(/etc/apache2/mods-enabled/evasive.conf)
    • 作用:限制同一页面/站点的请求频率,超阈值返回 403 并可邮件告警
    • 示例:
      <
          IfModule mod_evasive20.c>
          
          DOSHashTableSize    32768
          DOSPageCount        20
          DOSSiteCount        100
          DOSPageInterval     1
          DOSSiteInterval     1
          DOSBlockingPeriod   600
          DOSLogDir           "/var/log/apache2/evasive"
          DOSEmailNotify      admin@domain.com
      <
          /IfModule>
          
      
    • 提示:高并发站点适当增大 DOSHashTableSize,避免哈希冲突影响性能。
  • 抗慢速与限并发(mod_reqtimeout、mod_qos)
    • mod_reqtimeout:限制请求头/体的接收超时与最低速率,超时返回 408
      <
          IfModule mod_reqtimeout.c>
          
          RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
      <
          /IfModule>
          
      
    • mod_qos:限制每 IP 并发、全局并发与最低传输速率,识别并断开慢客户端
      <
          IfModule mod_qos.c>
          
          QS_ClientEntries 100000
          QS_SrvMaxConnPerIP 50
          MaxClients 256
          QS_SrvMaxConnClose 180
          QS_SrvMinDataRate 150 1200
      <
          /IfModule>
          
      
  • WAF 基础规则(mod_security,示例为阻断对敏感脚本的直接访问)
    SecRule REQUEST_URI "@rx \.(php|asp|aspx|jsp)$" \
        "id:1000001,phase:2,block,t:none,log,msg:'Blocking direct access to PHP/ASP/ASPX/JSP files',severity:'CRITICAL'"
    
    以上模块与参数可有效缓解 HTTP Flood/CCSlowloris/Slow POST 等常见攻击形态。

三 系统与网络层加固

  • 防火墙放行与端口管理
    • Ubuntu(UFW):sudo ufw allow 80/tcp;sudo ufw allow 443/tcp;sudo ufw enable
    • CentOS(firewalld):sudo firewall-cmd --permanent --add-service=http;sudo firewall-cmd --permanent --add-service=https;sudo firewall-cmd --reload
  • 连接数/速率限制(iptables,示例)
    • 限制单 IP 到 80 端口的最大并发连接数:
      iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
    • 限制每秒新连接速率(突发 30):
      iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/second --limit-burst 30 -j ACCEPT
  • 自动封禁(fail2ban)
    • 安装:sudo apt/yum install fail2ban
    • 作用:基于日志匹配“短时间高频失败/异常请求”的 IP,自动添加防火墙规则封禁,减轻应用层压力。

四 检测与验证

  • 连接与流量观测
    • 查看连接状态:ss -s;实时带宽/连接:iftop;抓包分析:tcpdump
  • 验证 mod_evasive
    • 使用 ab 发起压力测试(仅在内网或测试环境):
      ab -n 1000 -c 50 http://your-domain/
    • 预期:超过阈值后返回 403,并在日志/邮件中看到拦截记录(如配置了 DOSEmailNotify)。

五 运维与架构建议

  • 优先把 CDN/WAF 放在源站前,利用其全球清洗与规则引擎,源站只接受来自 CDN 的回源流量(可通过源站防火墙仅放行 CDN 网段)。
  • 对静态资源启用长缓存与 CDN 边缘缓存,减少源站请求占比。
  • 为管理后台、登录与敏感接口增加强认证/验证码来源白名单,降低被刷风险。
  • 制定应急预案:阈值调整流程、封禁脚本、告警通道与回滚方案;定期审计日志与规则有效性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何防止Apache2遭受DDoS攻击
本文地址: https://pptw.com/jishu/756860.html
CentOS Syslog在安全审计中的应用 怎样调整Apache2的内存使用

游客 回复需填写必要信息