CloudFront域名前置实战示例
本文作为《域名前置基础指南》的配套文章,将逐步指导如何设置用于域名前置的站点及被前置的站点。
配置流程中的关键角色
- 前置主机名:fronted.digi.ninja
- 正常源站:digi.ninja
- 正常CloudFront域名:d1pticz0uvhz4n.cloudfront.net(后文说明来源)
- 隐蔽源站:frontme.vuln-demo.com
- 隐蔽CloudFront域名:d1sdh26o090vk5.cloudfront.net(后文说明来源)
设置正常源站
(可选跳过此步骤,直接配置被前置站点,但需自行寻找CloudFront托管站点进行前置)
- 登录AWS账户,进入CloudFront服务,点击"Create Distribution"并选择"Web"选项
- 在"Origin Settings"中:
- “Origin Domain Name"填入现有站点域名(digi.ninja)
- “Origin ID"设置唯一标识符
- 关键调整:将默认的"Origin Protocol Policy"从"HTTP Only"改为匹配源站协议(若源站使用HTTPS则必须修改,否则会返回403错误)
- “Default Cache Behavior Settings"保持默认即可
- 在"Distribution Settings"中:
- 为增强真实性,将"SSL Certificate"改为"Custom SSL Certificate"并通过ACM申请证书(支持DNS或邮箱验证)
- 在"Alternate Domain Names (CNAMEs)“中填入前置主机名(fronted.digi.ninja),缺失此项同样会导致403错误
- 完成创建后,系统将显示状态为"In Progress”。此时需为域名(fronted.digi.ninja)添加CNAME记录,指向CloudFront分配域名(如d1pticz0uvhz4n.cloudfront.net)
- 部署完成后状态变为"Deployed”,即可通过自定义域名和CloudFront域名双向访问
- 若仅CloudFront域名可访问,需检查配置错误(每次重新部署需10-15分钟)
设置隐蔽源站
- 流程与正常源站类似:在"Origin Domain Name"中填入被前置站点(frontme.vuln-demo.com)
- 无需修改"Distribution Settings”:因为该站点不会通过自有域名或CloudFront域名直接访问
- 部署完成后可通过分配的CloudFront域名(如d1sdh26o090vk5.cloudfront.net)验证访问
- 为何不设置"Alternate Domain Names”?
使用匿名化的CloudFront域名而非真实源站域名可增强隐蔽性。即使流量被分析,仅凭随机字符串也无法关联到真实源站(尤其当源站已关闭时)
- 为何不设置"Alternate Domain Names”?
测试域名前置
通过curl命令模拟前置请求:
|
|
- 工作原理:
DNS解析指向正常站点(fronted.digi.ninja),但HTTP请求中的Host头部包含隐蔽CloudFront域名(d1sdh26o090vk5.cloudfront.net),CloudFront据此返回对应源站数据
寻找可用域名
若不想自行配置,可参考以下工具与文章寻找可前置域名:
- 《How I Identified 93k Domain-Frontable CloudFront Domains》
- 《Domain Fronting Via Cloudfront Alternate Domains》
- 工具:FindFrontableDomains
相关文章
- 《域名前置基础指南》
- 《Cloudflare域名前置》
- 《使用HTTP管道化隐藏请求》