1.
总体架构与原则
步骤说明:
(1) 把 CDN 放在前端作为流量入口,源站(ESC 服务器)仅允许 CDN 回源 IP 访问;
(2) 最小权限原则:仅开放必要端口(HTTP/HTTPS、管理端口限内网);
(3) 分层防护:边缘 CDN/WAF -> 网络层防护(防火墙/安全组)-> 主机加固 -> 应用加固。
2.
在 CDN 层配置(加速与安全)
实操步骤:
(1) 在 CDN 控制台添加域名为 CNAME,并配置回源地址为 ESC 的公网地址或内网地址;
(2) 启用回源保护:设置“仅允许 CDN 回源”策略或在源站做 IP 白名单;
(3) 启用 WAF、Bot 管理、DDoS 防护与速率限制(Rate Limiting);
(4) 配置缓存规则和刷新 API,设置静态资源长缓存、动态请求不缓存或按路径规则缓存。
3.
限制源站访问(防止绕过 CDN)
操作指南:
(1) 在 ESC 防火墙/安全组中只允许 CDN 提供的回源 IP 段访问 80/443;
(2) 在 Web 服务层检查来源头:如 X-Forwarded-For 或自定义回源头,拒绝非 CDN 回源请求;
(3) 配置协议校验:要求回源使用 HTTPS 且校验客户端证书(双向 TLS)以进一步验证。
4.
TLS 与证书管理
配置步骤:
(1) 在 CDN 端启用 TLS 1.2/1.3,禁用 SSLv3/TLS1.0/1.1;
(2) 使用强安全套件(推荐 ECDHE+AES/GCM),启用 HSTS、OCSP Stapling;
(3) 自动化证书更新:使用 Let’s Encrypt + certbot 或 CDN 的托管证书;定期检查到期并在到期前自动续签。
5.
ESC 主机(系统与服务)加固
操作命令示例:
(1) SSH:关闭 root 远程登录、仅使用密钥认证,修改 /etc/ssh/sshd_config:PermitRootLogin no, PasswordAuthentication no,重启 sshd;
(2) 安装并配置 fail2ban 或类似防暴力工具,示例:apt install fail2ban;配置 jail.local 针对 ssh/nginx;
(3) 关闭不必要服务(systemctl disable --now
),移除不必要软件。
6.
Web 服务器与应用安全配置
具体步骤:
(1) Nginx/Apache:强制 HTTPS、配置严格的 header(X-Frame-Options, X-Content-Type-Options, Referrer-Policy);
(2) 在应用层启用 WAF 规则,定制规则阻断 SQL 注入、XSS、文件上传漏洞;
(3) 使用内容签名或 CDN 签名 URL(Signed URL/Token)保护私有资源。
7.
日志、监控与告警
部署建议:
(1) 开启 CDN 访问日志与源站访问日志并集中到日志服务(ELK/EFK 或云日志);
(2) 配置 IDS/IPS、异常流量告警(请求数异常、频繁 4xx/5xx)和系统资源监控;
(3) 定期审计日志并保留合规期(如 90 天),使用自动化脚本聚合分析。
8.
自动化运维与补丁管理
实践步骤:
(1) 使用配置管理(Ansible/Chef/Puppet)管理系统基线,确保一致性;
(2) 制定补丁策略:测试-灰度-全量,使用 apt/yum 的非交互自动更新或定期批量更新并重启服务窗口;
(3) 对关键组件(OpenSSL、nginx、语言运行时)进行版本监控并及时升级。
9.
备份、恢复与应急响应
具体流程:
(1) 定期全量/增量备份配置与数据(数据库、配置文件、证书)到异地存储;
(2) 制定 RTO/RPO,编写恢复演练步骤并每季度演练;
(3) 建立应急岗与联系方式,发生大规模攻击时启动流量切换到备用机房或 CDN 清洗服务。
10.
其他防护细节与测试方法
操作要点:
(1) 定期做漏洞扫描(Nessus/OpenVAS)与渗透测试,并对发现的问题打标签修复;
(2) 使用 CDN 的访问控制(地理封禁、Referer 白名单、User-Agent 阻断)作为补充;
(3) 测试方法:关闭 CDN 直接打到源站验证白名单有效性;使用压力测试(限速)评估限流规则。
11.
问:如何验证“仅允许 CDN 回源”配置是否生效?
答:操作步骤:
(1) 在本地或外网主机(非 CDN IP)用 curl 直接请求源站公网地址,预期应被拒绝或返回 403;
(2) 在 CDN 回源日志或源站访问日志中查找 CDN 回源的正常请求记录;
(3) 可临时将源站响应内容改为可识别字符串,通过 CDN 请求看到缓存内容则说明走 CDN。
12.
问:如何在回源使用双向 TLS 的同时保持自动化部署?
答:步骤要点:
(1) 在源站和 CDN 之间使用客户端证书:生成 CA -> 为源站和 CDN 颁发证书并配置;
(2) 将证书私钥以安全方式(Vault/Secrets Manager)管理,部署脚本(Ansible)读取并安装到 nginx 的 ssl_certificate/ssl_certificate_key;
(3) 自动化续签:结合证书管理系统或 API,在证书到期前自动替换并 reload nginx。
13.
问:发生大规模 DDoS 时应该如何处置并恢复服务?
答:应急流程:
(1) 立即打开 CDN 的清洗/高防功能并启用全局限速或挑战(验证码/JS challenge);
(2) 临时增加缓存 TTL,减少回源请求;启用返回 503 降级页面保护核心服务;
(3) 联系 CDN/云厂商支撑,按预案切换流量到备用机房或启用黑洞/清洗,事件结束后逐步放宽限流并审计日志。