1. 本段说明目标与准备工作:目标为在物联网(IoT)场景对接华为云WAF实现边缘防护与自定义规则;准备工作包括:已开通华为云账号并具有WAF服务权限、已配置可被WAF代理的域名或负载均衡器(ELB/弹性公网IP)、设备网关(MQTT/HTTP/CoAP)接入点、SSL证书和日志服务(LTS)权限。
2. 设计原则:在边缘放置WAF以拦截恶意流量并在云端做集中策略管理;将WAF放在设备网关前(反向代理或API网关模式);为不同设备组/区域使用独立策略集;预留速率限制和会话保持支持MQTT连接(长连接)。
3. 步骤:登录华为云控制台→安全→WAF→创建WAF实例,选择按流量或按带宽计费;创建完成后→域名管理→添加保护域名,填写外网域名、源站地址(IP/ELB域名)、端口(80/443/1883/8883等)、回源方式(IP或域名);上传或选择证书(HTTPS/MTLS如需设备证书认证)。保存并等待下发。
4. 规则策略:在策略管理中创建策略集→添加自定义规则。实操细则:a) 基于IP/ASN/Geo的白名单与黑名单;b) 基于URI、User-Agent、Header和Cookie的签名规则;c) 对MQTT/CoAP等协议,按端口和报文特征(CONNECT/CONNECT报文主题)识别异常连接;d) JSON/XML负载检测规则,使用正则或JSON路径提取设备ID并对异常模式拦截。
5. 详细步骤:进入策略→CC防护/速率限制→创建规则,设定检测维度(IP、设备ID、URI、主题);示例:对单设备ID每秒不超过5次API写操作,对单IP每分钟连接数上限为200;对MQTT长连接设定最大并发会话数与连接频率阈值,超过阈值触发限流或封禁。
6. 如果设备使用证书认证:在证书管理中上传根CA并开启双向证书校验(MTLS),步骤:上传服务端证书→在域名回源配置中启用HTTPS并选择证书→开启客户端证书校验并上传受信任客户端CA,保存并测验设备握手,确保证书链与CRL/OCSP可用。
7. 步骤:控制台→管理与运维→日志服务(LTS)→创建Log group与Log stream→在WAF日志配置中绑定Log stream并选择访问/防护日志、告警日志;在LTS中配置查询与Metric并创建告警规则(如异常请求速率、封禁量、错误率),结合云监控推送短信/邮件/函数触发。
8. 验证步骤:1) 使用测试设备/模拟器发起正常与异常流量(curl、mosquitto_pub/sub、Postman、JMeter);2) 打开WAF“观察模式/干运行”检测规则命中;3) 调整规则优先级与异常阈值;4) 小流量验收后切换到阻断策略;如需回滚,保持策略版本并在控制台选择历史版本回滚或临时禁用新规则。
9. 优化建议:a) 使用边缘节点与CDN结合减少回源流量;b) 对规则做分层:快速过滤(IP、非法URI)放在最前,深度检查(JSON解析、签名校验)放在后面;c) 使用正则限长与速率样本避免正则引擎阻塞;d) 针对物联网设备,尽量用轻量字符匹配而非过重的解码解析。
10. 自动化步骤:通过华为云SDK(Python/Java)或CLI批量创建策略并绑定域名。示例思路:调用WAF策略创建接口POST /v1/{project_id}/waf/policy,body包含name、rules数组(condition、action、priority);随后调用域名绑定接口将policy_id关联到domain_id;在CI中加入回退逻辑与dry-run测试。
11. 运营建议:建立规则变更记录与审批流程→定期审计封禁/放行列表→结合LTS与威胁情报动态更新自定义签名→对重要设备群体启用更严格策略→定时回归测试,避免误判影响设备上报。
问:在物联网场景下,如何平衡WAF的拦截严格度与设备可用性? 答:先对策略启用观察(干运行)模式收集命中日志;基于设备ID/型号做分组,先给关键设备更宽松白名单或更长阈值;对高风险路径逐步严格化,使用灰度发布与阈值放大/缩小策略并保留回滚方案。
问:MQTT长连接如何与WAF协作防护恶意连接风暴? 答:在WAF设置基于连接频率和并发会话的规则,限制单IP和单设备ID的新连接速率与并发会话数;同时启用连接异常告警与自动封禁短期封锁,必要时结合上游负载均衡做连接队列与熔断。
问:如何尽快定位被误拦截的设备请求并快速放行? 答:通过LTS查询被拦截请求日志(按设备ID/时间/URI筛选),确认命中规则ID后在WAF控制台临时白名单该设备或调整对应规则的条件与优先级,验证后将变更固化并记录审计条目。
