apache本身不提供企业级ddos防护或ssl深度过滤,但可通过mod_ssl实现https终止与tls加固,用mod_evasive等模块缓解轻量攻击,而真正ddos防护需依赖云高防、cdn或反向代理等外部服务。
apache 本身不直接提供企业级 ddos 防护能力,也不内置 ssl 流量深度过滤(如 tls 握手层策略、证书信任链强制校验等),但它可以通过模块组合与外部服务协同,构建基础防护层。关键在于分清职责:ssl 终止和加密由 apache 自身完成;ddos 缓解需依赖网络层或云服务;而“ssl 过滤”实际指对 https 流量的访问控制与安全策略强化,不是解密后的内容扫描。
一、HTTPS 基础配置(SSL 终止)
确保 Apache 正确加载 mod_ssl,并启用 TLS 1.2/1.3:
- 确认已启用模块:LoadModule ssl_module modules/mod_ssl.so
- 监听 443 端口并配置虚拟主机,指定证书路径:
SSLCertificateFile /path/to/fullchain.pem
SSLCertificateKeyFile /path/to/privkey.pem - 禁用弱协议和密码套件,例如在 VirtualHost 内添加:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 - 启用 HSTS(强制浏览器走 HTTPS):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
二、Apache 层面缓解轻量级攻击(非 DDoS,但可防扫描与慢速攻击)
使用 mod_evasive 和 mod_ratelimit 模块限制异常请求频率:
- 安装并启用 mod_evasive:
LoadModule evasive20_module modules/mod_evasive20.so - 在主配置或站点中设置阈值,例如:
DOSPageCount 2(同一页面 2 秒内最多 2 次请求)
DOSSiteCount 50(全站每秒最多 50 次请求)
DOSBlockingPeriod 600(封禁时长 600 秒) - 配合 Timeout 和 LimitRequestBody 控制连接行为:
Timeout 30
LimitRequestBody 10485760(限制上传大小为 10MB)
三、真正防 DDoS:必须依赖外部服务
Apache 是应用层服务器,无法应对网络层(SYN Flood、UDP Flood)或传输层(TCP Flood)的海量流量。推荐方案:
- 云厂商高防服务:如阿里云 DDoS 高防(中国内地),将域名 CNAME 到高防 IP,源站只允许高防 IP 回源,隐藏真实服务器地址。
- 边缘安全加速(ESA):整合 DNS、WAF、DDoS 防护与 HTTPS 卸载,自动识别恶意 Bot 并拦截,比单独配 Apache 更有效。
- 反向代理前置:用 Nginx 或 Cloudflare 做前置,开启 rate limiting、IP 黑白名单、JS 挑战等,再把合法流量转发给 Apache。
四、“SSL 过滤”的实际含义与实现方式
这不是指解密 HTTPS 后检查内容(那需要中间人,且破坏端到端加密),而是强化 TLS 接入控制:
- 要求客户端提供证书(双向认证):
SSLVerifyClient require
SSLVerifyDepth 2
SSLCACertificateFile /path/to/ca-bundle.crt - 拒绝特定签名算法或过期/自签证书:
SSLStrictSNIVHostCheck on(防止 SNI 混淆)
SSLProxyCheckPeerCN off(若作代理,可关闭 CN 校验,但需谨慎) - 结合 mod_security 规则,对 HTTPS 请求头、URI、参数做规则匹配(例如拦截含 sqlmap 特征的 User-Agent)。











