--- title: Istio 入口 WAF 与限速协同策略(ModSecurity、Envoy RateLimit 与验证) date: 2025-11-26 keywords: - WAF - ModSecurity - Envoy Rate Limit - Ingress - 黑白名单 description: 在入口层结合WAF规则与Envoy限速实现协同防护,通过指纹识别与令牌桶保护后端,提供配置与端到端验证方法。 categories: - 文章资讯 - 技术教程 --- ## 概述 入口WAF识别常见攻击与恶意机器人,Envoy限速在高峰与异常流量时保护后端。两者协同可提升边界防护与系统稳定性。 ## 关键实践与参数 - WAF规则: 启用CRS并按业务调优 - 本地限速: `tokens_per_fill` 与 `fill_interval` 设置速率 - 黑白名单: 基于IP或Header策略控制 - 审计: 记录命中规则与限速事件 ## 示例/配置/实现 ```apache # ModSecurity + CRS 示例 SecRuleEngine On Include /usr/local/modsecurity/crs-setup.conf Include /usr/local/modsecurity/rules/*.conf SecRule REQUEST_HEADERS:User-Agent "@rx (curl|bot|scrapy|wget)" "id:100100,phase:1,deny,status:403,log" ``` ```yaml # Istio EnvoyFilter 本地限速 apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: ingress-rl namespace: istio-system spec: workloadSelector: labels: { istio: ingressgateway } configPatches: - applyTo: HTTP_FILTER match: { context: GATEWAY } patch: operation: INSERT_BEFORE value: name: envoy.filters.http.local_ratelimit typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit stat_prefix: rl token_bucket: { max_tokens: 100, tokens_per_fill: 100, fill_interval: 1s } ``` ## 验证 - 攻击拦截: 使用扫描UA与Payload触发WAF拒绝 - 高并发限速: 超过速率阈值请求返回429且后端稳定 - 名单策略: 黑名单拒绝、白名单放行准确 - 审计可追溯: 日志记录规则ID与限速命中 ## 注意事项 - 规则与限速需结合业务场景调优 - 外层WAF与入口网关策略需协同 - 在多副本网关下评估分布效果 - 定期复盘拦截与误报

发表评论 取消回复