1.
准备与前提
- 确认已购买或准备好云服务器(CentOS/Ubuntu 推荐)与域名;
- 确保能修改域名DNS;建议准备宝塔(BT)面板后台账号;
- 准备好管理员SSH权限、root或sudo权限、以及备用回滚联系方式(控制面板、域名商)。
2.
安装宝塔面板(BT)
- CentOS 示例:ssh 登录服务器,执行:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_panel.sh && sh install.sh;
- Ubuntu/Debian 示例:wget -O install.sh http://download.bt.cn/install/install_panel.sh && sudo bash install.sh;
- 安装完成后通过面板提供的地址+端口(例如:http://服务器IP:8888)登录并完成安全设置(修改面板密码、绑定邮箱)。
3.
在宝塔创建站点并准备证书
- 在面板“网站”模块新增站点:填写域名、根目录、端口(80/443)与PHP版本等;
- 在站点SSL选项使用Let's Encrypt一键申请或导入已有证书(先确保证书能在面板生效);
- 测试本地访问是否通过服务器直连可访问(此步骤方便之后与WAF接入对比)。
4.
安装宝塔云WAF或云防火墙插件
- 在宝塔“软件商店”或“安全”中搜索“WAF/云防火墙/云加速”并安装(如果使用第三方云WAF,按提供方接入文档);
- 安装后进入插件配置,填写站点、来源服务器IP(真实源站)、端口,确认是否开启代理模式(通常为反向代理)。
5.
配置DNS接入(将流量切到WAF)
- 按WAF提供方式将域名的A或CNAME记录指向WAF提供的IP或CNAME;
- 注意降低原DNS的TTL以便回滚;
- 修改后等待DNS解析生效(use dig/nslookup/在线工具确认);不要同时在两个地方开启冲突的代理设置。
6.
SSL与源站防护设置
- 在WAF控制台设置SSL模式:推荐选择 Full 或 Full(strict);若使用严格模式,需将源站证书上传或安装为受信任证书;
- 在源站服务器上限制仅允许WAF的回源IP访问(iptables或安全组),防止直接绕过WAF访问;
- 测试HTTPS访问,确认证书链完整、无混合内容。
7.
规则配置与白名单/学习模式
- 首次启用建议开启“学习/观察”模式或宽松防护,收集正常流量特征;
- 启用常见规则集(SQL注入、XSS、文件包含、RCE、CC防护),并把运维/开发IP加入白名单;
- 设置速率限制与异常行为告警(登录尝试、爬虫高并发、过大请求等);定制必要的自定义规则并记录优先级。
8.
压力与安全功能测试
- 使用 curl -I https://example.com 检查返回头,确认通过WAF代理(通常可见特定Header或WAF指示);
- 执行非破坏性测试:访问包含模拟XSS/SQL敏感字符串的请求,查看WAF是否拦截并记录(避免使用真正恶意payload);
- 使用性能工具(ab、wrk)在低流量下测试响应与缓存策略,观察错误率(502/504)并调整超时与后端连接数。
9.
上线前的最终检查清单
- DNS:TTL已降低、解析到WAF IP正确;
- 证书:WAF及源站证书有效链正确;
- 回源安全:源站仅允许WAF IP访问;
- 日志/告警:WAF日志可查询、邮件/钉钉告警配置完成;
- 误报策略:准备临时放行/调整规则的标准操作和负责人;
- 回滚计划:记录原DNS记录与回滚步骤,DNS回退时间窗口与测试验证步骤。
10.
问:如何在上线后验证WAF确实在工作?
问:如何在上线后验证WAF确实在工作?
答:使用curl检查响应头(查找WAF厂商特有Header),在WAF后台查看实时访问日志和拦截日志;发起几个非破坏性测试请求(带有模拟注入字符串)确认是否被拦截;同时检查源站访问日志是否只来自WAF的回源IP。
11.
问:如果出现大量误拦截怎么办?
问:如果出现大量误拦截怎么办?
答:立即将WAF切换到宽松/观察模式或针对具体规则临时放行,快速将误杀请求的源IP加入白名单;导出误杀日志分析规则特征,调整或添加例外规则;事后形成规则测试流程以避免再发生。
12.
问:上线后如何做备份与回滚?
问:上线后如何做备份与回滚?
答:上线前备份原始DNS记录、WAF配置快照与源站配置;如需回滚,先将DNS指向原IP(注意TTL等待),取消源站的WAF IP白名单限制并恢复原有防护策略;测试恢复后确认流量恢复正常并记录原因以改进流程。