Apache本身不内置流量清洗能力,需通过mod_security(配合OWASP CRS)做应用层过滤、mod_evasive/mod_qos实现速率限制,或前置专用WAF/IDS进行网络层清洗,三者协同方可达成接近流量清洗的效果。

Apache 本身不内置流量清洗能力,它作为正向代理(Forward Proxy)时主要负责转发客户端请求到目标服务器,不具备 WAF(Web 应用防火墙)或实时规则过滤功能。所谓“流量清洗”,通常指识别并拦截恶意请求(如 SQL 注入、XSS、扫描器探测、高频爬虫、CC 攻击等),这需要额外模块或外部协同。
要实现接近“流量清洗”的效果,需在 Apache 正向代理基础上叠加以下机制:
启用 mod_security 模块做应用层过滤
mod_security 是开源的 WAF 引擎,可嵌入 Apache,支持自定义规则(如 OWASP CRS 规则集):
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 安装后启用
SecRuleEngine On - 配置核心规则集(如
crs-setup.conf+rules/REQUEST-9*) - 注意:正向代理场景下,规则需适配
REQUEST_HEADERS,REQUEST_BODY,ARGS等变量,因请求经代理后原始 Host、URI 可能被修改 - 示例拦截规则:
SecRule ARGS "@rx <script>" "id:1001,deny,msg:'XSS attempt'" SecRule REQUEST_HEADERS:User-Agent "@rx sqlmap|dirbuster|nmap" "id:1002,deny,msg:'Scanner detected'"
利用 mod_evasive 或 mod_qos 限制异常连接
适用于简单速率控制类清洗:
-
mod_evasive可按 IP 限制每秒请求数、并发连接数,自动封禁超限 IP(写入/tmp黑名单) -
mod_qos更灵活,支持基于 User-Agent、Referer、URL 路径的动态限速与拒绝策略 - 注意:两者对代理流量有效,但仅作用于 Apache 接收到的请求头,无法检测加密 payload 或协议层攻击
结合外部清洗服务(推荐生产环境)
Apache 正向代理前部署专用清洗节点,例如:
- 在网络边界部署 Nginx + lua-resty-waf 或商业 WAF(如 Cloudflare Gateway、阿里云 WAF)
- 或使用 Suricata + iptables 实现网络层清洗,再将干净流量导向 Apache 代理
- 这种架构解耦清晰,Apache 专注代理,清洗由专业组件完成
补充说明:正向代理本身的局限性
- Apache 默认不解析后端响应内容,因此无法对返回流量做清洗(如过滤恶意 JS、iframe)
- 若需双向清洗,必须配合
mod_security的响应规则(SecResponseBodyAccess On),但会显著增加 CPU 开销,且对二进制响应(如图片、PDF)易出错 - 日志中需开启
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i"才能保留真实客户端 IP,便于溯源分析
不复杂但容易忽略

















