腾讯云Web应用防火墙(WAF)完整对接与使用指南
腾讯云Web应用防火墙(WAF)完整对接与使用指南
在数字化业务高速发展的今天,Web应用面临的安全威胁日益复杂,SQL注入、XSS跨站脚本、恶意爬虫、CC攻击等高频攻击手段,时刻威胁着网站数据安全与业务连续性。腾讯云Web应用防火墙(Web Application Firewall,简称WAF)作为专业的Web安全防护产品,基于云端集群架构与智能检测引擎,可精准识别并拦截各类Web攻击,为云上及云下Web业务提供全方位安全防护。本文将从基础概念、实例选购、三种接入形态(SaaS型、云原生型、混合云)、详细对接步骤、防护配置、日志分析、API集成到成本优化,进行全面且深入的讲解,帮助不同场景的用户快速完成WAF对接与落地使用。
一、腾讯云WAF核心概念与产品形态
1.1 WAF核心定义
腾讯云WAF是部署在网络七层(应用层)的安全防护系统,通过对HTTP/HTTPS请求进行深度解析,识别请求中的恶意特征,实现攻击拦截、访问控制、爬虫管理等功能,区别于传统网络防火墙(侧重网络层防护),WAF专注于Web应用层面的安全防护,是网站安全防护的核心组件。
1.2 产品形态与适用场景
腾讯云WAF提供三种主流产品形态,适配不同业务部署架构,用户需根据自身业务场景选择对应形态:
- SaaS型WAF(主流推荐):云端托管模式,无需部署硬件,通过CNAME域名解析接入,适合中小规模网站、独立域名业务、云外IDC部署的Web服务,具备接入简单、运维成本低、弹性扩容的优势。
- 云原生型WAF(CLB联动):与腾讯云负载均衡(CLB)深度集成,采用旁路检测模式,流量经CLB转发至源站,WAF同步镜像流量进行威胁检测,适合腾讯云内大规模业务、集群部署、需高转发性能的场景,实现防护与转发分离,无性能损耗。
- 混合云WAF(本地部署):支持将WAF防护节点部署在第三方云、私有云、线下IDC,通过云端统一管控,适合跨云部署、特殊合规要求、本地流量需就近防护的场景,兼顾本地防护与云端管理优势。
1.3 核心防护能力
腾讯云WAF具备完善的防护模块,默认开启核心防护能力,无需复杂配置即可抵御常见攻击:
- SQL注入防护:拦截数据库恶意查询语句,防止数据泄露与篡改;
- XSS跨站脚本防护:阻断恶意脚本注入,避免用户浏览器被劫持;
- CC攻击防护:识别高频恶意请求,通过验证码、人机验证、限流策略拦截;
- 恶意爬虫防护:区分正常搜索引擎与恶意爬虫,防止数据爬取与资源消耗;
- WebShell防护:检测并阻断恶意后门文件上传,防止服务器被控制;
- 0day漏洞防护:基于威胁情报库,快速拦截新型漏洞攻击。
二、WAF对接前准备工作
2.1 账号与权限准备
对接WAF前,需准备腾讯云账号并完成权限配置,避免因权限不足导致操作失败:
- 注册腾讯云账号,完成实名认证(个人/企业认证均可,企业认证可解锁更多高级功能);
- 创建子账号并授权WAF相关权限,遵循最小权限原则,避免主账号密钥泄露,授权策略示例(JSON格式):
{
"Version": "2.0",
"Statement": [
{
"Effect": "Allow",
"Action": [
"waf:CreateDomain",
"waf:ModifyDomain",
"waf:DeleteDomain",
"waf:DescribeDomainList",
"waf:ModifyProtectionRule"
],
"Resource": "*"
}
]
}
将上述策略绑定至子账号,即可通过子账号登录控制台进行WAF操作,降低主账号使用风险。
需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联
2.2 域名与备案要求
接入WAF的域名需满足严格的备案与合法性要求,否则无法完成接入:
- 中国大陆地区域名:必须完成工信部备案,备案主体与域名归属一致,未备案域名无法接入SaaS型WAF;
- 境外域名:无需备案,但需保证域名合法,无违规内容;
- 源站要求:源站服务器需稳定运行,可正常响应HTTP/HTTPS请求,且需开放80(HTTP)、443(HTTPS)端口;
- 域名所有权:需持有域名解析权限,可修改DNS解析记录(SaaS型接入必备)。
2.3 实例选购与开通
根据业务规模选择合适的WAF实例规格,腾讯云WAF提供基础版、专业版、企业版、旗舰版四种规格,核心差异在于防护域名数量、QPS峰值、高级功能(如Bot管理、API防护、日志存储):
- 登录腾讯云控制台,进入「产品」→「安全」→「Web应用防火墙WAF」;
- 点击「立即购买」,选择实例形态(SaaS型/云原生型)、地域、规格、购买时长;
- 确认订单并支付,支付完成后实例自动开通,状态显示为「运行中」,通常需等待5-10分钟完成初始化。
基础版适合小型网站(单域名、QPS≤1000),企业版适合中大型业务(多域名、QPS≥5000、需高级防护功能),用户可根据业务峰值QPS、域名数量、防护需求灵活选择。
三、SaaS型WAF详细对接步骤(主流接入方式)
SaaS型WAF是最常用的接入方式,核心原理是将域名DNS解析指向WAF集群CNAME地址,所有Web请求先经过WAF过滤,正常流量转发至源站,恶意流量直接拦截,接入流程简单,无需修改源站配置。
3.1 域名添加与基础配置
- 登录WAF控制台,左侧导航栏选择「接入管理」→「域名接入」,点击「添加域名」;
- 配置基础参数: - 所属实例:选择已开通的SaaS型WAF实例; - 域名:输入需防护的域名(如www.example.com,支持泛域名*.example.com); - 协议类型:选择HTTP/HTTPS(建议同时开启,HTTPS需配置SSL证书); - 源站地址:填写源站服务器IP或域名(支持多个源站IP,实现负载均衡); - 源站端口:HTTP默认80,HTTPS默认443,若源站修改端口需同步配置。
- 点击「下一步」,进入SSL证书配置页面。
3.2 SSL证书配置(HTTPS必备)
HTTPS域名需配置SSL证书,否则无法正常访问,腾讯云WAF支持三种证书配置方式:
- 腾讯云托管证书(推荐):直接选择腾讯云SSL证书服务中已上传的证书,自动关联,无需手动配置;
- 手动上传证书:输入证书公钥、私钥、证书链,支持PEM格式;
- 免费证书申请:点击「申请免费证书」,自动生成90天有效期的免费SSL证书,适合测试或小型网站。
配置完成后,开启「强制HTTPS跳转」(302重定向),确保所有HTTP请求自动跳转至HTTPS,提升访问安全性。
3.3 本地验证测试(关键步骤,避免业务中断)
修改DNS解析前,必须进行本地验证,确保WAF配置正确、源站可正常访问,避免直接修改DNS导致网站无法访问:
- 在WAF域名接入页面,复制WAF分配的CNAME地址(如xxx.waf.qcloud.com);
- 本地电脑修改hosts文件(Windows:C:\Windows\System32\drivers\etc\hosts;Linux/Mac:/etc/hosts),添加如下内容:
WAF实例IP 防护域名(如123.45.67.89 www.example.com)
- 保存hosts文件,本地浏览器访问防护域名,若能正常打开网站,且响应头包含「WAF」标识,说明WAF配置与源站连通正常;若无法访问,排查源站端口、防火墙、WAF源站配置是否错误。
3.4 修改DNS解析并生效验证
本地验证通过后,修改域名DNS解析,将域名指向WAF的CNAME地址,正式接入WAF:
- 登录域名注册商控制台(如腾讯云DNSPod、阿里云万网),进入域名解析管理页面;
- 添加CNAME记录: - 主机记录:填写域名前缀(如www、@,泛域名填*); - 记录类型:选择CNAME; - 记录值:粘贴WAF分配的CNAME地址; - TTL:默认300秒(5分钟),可缩短至60秒加快生效速度。
- 保存解析记录,DNS生效需等待10-30分钟(全球DNS缓存同步);
- 验证生效:在WAF控制台「域名接入」页面,查看域名状态为「已接入」,且访问域名时,IP解析为WAF集群IP,说明接入成功。
3.5 安全组配置(防止源站被绕过)
接入WAF后,需配置源站服务器安全组,仅允许WAF集群IP访问源站端口,避免攻击者绕过WAF直接攻击源站:
- 在WAF控制台「实例管理」页面,查看WAF集群的所有公网IP段;
- 登录腾讯云CVM控制台,进入源站服务器安全组,添加入站规则: - 协议:TCP; - 端口:80、443; - 源地址:填写WAF集群IP段; - 策略:允许;
- 拒绝所有其他IP访问80、443端口,确保流量仅通过WAF进入源站。
四、云原生型WAF对接步骤(CLB联动)
云原生型WAF适配腾讯云内CLB负载均衡架构,采用旁路检测模式,流量转发路径为「用户→CLB→源站」,WAF同步镜像CLB流量进行威胁检测,不影响转发性能,适合大规模集群业务。
4.1 前置条件
- 已购买云原生型WAF实例;
- 已创建腾讯云CLB实例,并配置七层监听器(HTTP/HTTPS);
- CLB监听器已绑定源站服务器,且可正常转发流量。
4.2 绑定CLB实例
- 登录WAF控制台,左侧导航栏选择「接入管理」→「对象接入」;
- 点击「刷新资产」,同步当前账号下所有CLB实例;
- 选择需防护的CLB实例,点击「开启WAF防护」,在弹窗中确认绑定的WAF实例,点击「确定」;
- 绑定完成后,CLB实例状态显示为「防护中」,WAF开始镜像CLB流量进行检测。
4.3 域名关联与防护验证
- 在WAF控制台「域名接入」页面,添加CLB绑定的域名,源站地址填写CLB域名;
- 无需修改DNS解析(流量仍指向CLB),直接访问域名,触发测试攻击(如SQL注入语句);
- 在WAF控制台「攻击日志」页面,查看攻击记录,若显示已拦截,说明云原生型WAF接入成功。
五、混合云WAF对接步骤(本地部署)
混合云WAF适合跨云、私有云、线下IDC业务,核心是部署本地防护节点,将流量引流至本地节点,再同步至云端管控,兼顾本地防护与云端管理能力。
5.1 创建混合云集群
- 登录WAF控制台,左侧导航栏选择「接入管理」→「混合云接入」;
- 点击「创建集群」,填写集群名称、地域、节点数量,选择WAF实例规格;
- 创建完成后,获取集群部署脚本与配置文件。
5.2 部署本地防护节点
- 准备本地服务器(Linux系统,推荐CentOS 7+,配置≥2核4G);
- 通过SSH登录服务器,执行集群部署脚本,自动安装WAF防护组件;
- 配置节点网络,开放80、443端口,确保节点可访问云端WAF控制台;
- 部署完成后,在控制台查看节点状态为「在线」,说明部署成功。
5.3 流量引流与验证
- 修改本地业务DNS解析,将域名指向本地防护节点IP;
- 配置节点转发规则,将正常流量转发至本地源站;
- 访问域名并触发攻击,在云端控制台查看攻击日志,验证防护效果。
六、WAF核心防护配置(接入后必做)
完成接入后,需根据业务场景优化防护配置,平衡安全性与业务可用性,避免误拦截正常流量。
6.1 基础防护规则配置
- 进入WAF控制台「防护设置」→「基础防护」,默认开启「SQL注入防护」「XSS防护」「CC防护」;
- CC防护优化:设置「防护等级」(宽松/中等/严格),小型网站选中等,高流量网站选宽松,避免误拦截;配置「限流阈值」(如单IP每秒10请求),超过阈值触发验证码拦截;
- 白名单配置:添加信任IP(如办公网IP、合作方IP)、信任URL(如登录接口、支付接口),避免正常业务被拦截。
6.2 高级防护功能配置
- Bot管理:区分正常爬虫(如百度、谷歌)与恶意爬虫,开启「人机验证」,对可疑爬虫弹出验证码,拦截恶意爬取;
- API防护:针对API接口,配置请求方法限制、参数校验、频率限制,防止API被刷、数据泄露;
- WebShell防护:开启「文件上传检测」,拦截恶意脚本文件(如.php、.asp后缀的恶意文件)上传;
- 地域访问控制:根据业务需求,禁止特定地区IP访问(如仅允许国内IP访问国内业务)。
6.3 误拦截排查与优化
若出现正常业务被拦截,可通过以下步骤排查:
- 在「攻击日志」页面,查看拦截记录,获取拦截原因、请求IP、请求URL;
- 若为误拦截,将该IP或URL添加至白名单;
- 调整防护规则:如降低CC防护等级、放宽SQL注入检测阈值、关闭不必要的防护模块。
七、WAF日志分析与监控
日志分析是排查攻击、优化防护策略的核心手段,腾讯云WAF提供实时攻击日志、访问日志、报表统计功能。
7.1 攻击日志查询
- 进入WAF控制台「日志管理」→「攻击日志」;
- 支持多维度筛选:时间范围、域名、攻击类型、拦截状态、请求IP;
- 日志详情包含:攻击时间、请求IP、攻击URL、攻击内容、拦截动作、防护模块,可导出日志(CSV格式)用于本地分析。
7.2 访问日志与报表
- 访问日志:记录所有经过WAF的正常请求,可分析访问来源、访问频率、热门URL;
- 防护报表:提供攻击趋势、攻击类型分布、TOP攻击IP、TOP被攻击域名等可视化报表,支持自定义时间范围,便于安全态势分析。
7.3 告警配置
开启告警通知,及时发现异常攻击:
- 进入「监控告警」→「告警配置」;
- 选择告警类型:CC攻击告警、SQL注入告警、异常流量告警;
- 配置通知方式:短信、邮件、企业微信、钉钉,设置告警阈值(如1分钟内拦截≥100次触发告警)。
八、WAF API集成与自动化管理
腾讯云WAF提供完善的API接口,支持通过代码实现域名管理、防护配置、日志查询等自动化操作,适合企业运维自动化场景。
8.1 API调用准备
- 获取API密钥:登录腾讯云控制台,进入「访问管理」→「API密钥」,创建SecretId与SecretKey;
- 选择SDK:腾讯云提供Python、Java、PHP、Go等语言SDK,本文以Python为例。
8.2 Python SDK示例(添加域名)
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.waf.v20180125 import waf_client, models
# 配置密钥
cred = credential.Credential("SecretId", "SecretKey")
httpProfile = HttpProfile()
httpProfile.endpoint = "waf.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = waf_client.WafClient(cred, "ap-guangzhou", clientProfile)
# 添加域名请求
req = models.AddDomainWhiteRuleRequest()
params = {
"Domain": "www.example.com",
"Rules": ["123.45.67.89"] # 白名单IP
}
req.from_json_string(str(params))
# 发送请求并获取响应
resp = client.AddDomainWhiteRule(req)
print(resp.to_json_string())
上述代码实现添加域名白名单IP的功能,其他API接口(如查询攻击日志、修改防护规则)可参考腾讯云官方API文档,替换对应请求参数即可。
九、WAF成本优化与常见问题
9.1 成本优化技巧
- 实例规格匹配业务:避免过度采购,小型网站选基础版,高流量业务按需升级;
- 域名合并:泛域名(*.example.com)替代多个子域名,减少防护域名数量;
- 日志存储优化:缩短日志存储周期(如保留7天),避免存储费用过高;
- 按量计费模式:测试环境选择按量计费,避免包年包月资源浪费。
9.2 常见问题与解决方法
- 域名无法接入,提示备案异常:检查域名是否完成工信部备案,备案主体是否一致,未备案域名需先备案;
- 修改DNS后网站无法访问:排查本地hosts配置是否正确、源站是否开放端口、WAF源站IP是否配置错误,回滚DNS解析恢复业务;
- 正常业务被频繁拦截:调整CC防护等级、添加白名单、优化防护规则,避免过度防护;
- HTTPS域名访问提示证书错误:检查SSL证书是否配置正确、证书是否过期、域名是否匹配,重新上传有效证书。
十、总结
腾讯云WAF作为成熟的Web安全防护产品,通过SaaS型、云原生型、混合云三种接入形态,适配各类业务部署场景,具备接入简单、防护全面、运维便捷的优势。本文从账号准备、实例选购、详细对接步骤、防护配置、日志分析、API集成到成本优化,全面覆盖WAF对接与使用的核心知识点,用户可根据自身业务架构选择对应的接入方式,严格按照步骤完成部署,并通过优化防护规则、监控日志告警,实现Web业务的安全稳定运行。随着Web攻击手段不断升级,建议定期更新WAF防护规则、关注威胁情报,持续提升业务安全防护能力。
问答环节
1. 腾讯云WAF有哪几种接入形态?
答:腾讯云WAF有SaaS型、云原生型、混合云三种接入形态,分别适配独立域名、腾讯云CLB集群、跨云/本地部署场景。
2. SaaS型WAF接入必须备案域名吗?
答:中国大陆地区域名必须完成工信部备案,境外域名无需备案,但需保证域名合法合规。
3. 如何避免攻击者绕过WAF直接攻击源站?
答:配置源站安全组,仅允许WAF集群IP访问80、443端口,拒绝其他IP访问,确保流量仅通过WAF进入源站。
4. 正常业务被WAF误拦截该如何处理?
答:在攻击日志中排查拦截原因,将误拦截的IP或URL添加至白名单,同时降低防护等级或放宽检测阈值,优化防护策略。
5. 云原生型WAF接入是否需要修改DNS解析?
答:不需要,云原生型WAF与CLB联动,流量仍指向CLB,WAF仅镜像流量进行旁路检测,不影响原有DNS配置。
6. 腾讯云WAF支持哪些语言的API SDK?
答:支持Python、Java、PHP、Go等主流编程语言,可通过SDK实现域名管理、防护配置、日志查询等自动化操作。




