使用CDN时防止源站被扫描攻击

# 使用CDN就安全无虞?

部署SSL证书时,获取的证书中会包含您签发的域名,通过扫描443端口,可获取部署在该IP地址上的相关证书,从中解析出包含的域名。即使您通过CDN反向代理了网站,只要源站没有对外封禁,且部署了含有您域名的证书,通过扫描便可轻松的获取您域名所对应的源站IP地址。
从而绕过CDN保护以及WAF对您进行4层或7层攻击。

# 使用IPV6地址回源

若您的服务器有IPV6支援且CDN支持IPV6回源,您可以将回源地址设置为IPV6地址,IPV6地址繁多,扫描不可能或者说基本不现实。 (同时需要您将IPV4的443端口做封禁)

# 使用无域名信息的自签证书

您可以在您的服务器上部署不包含您任何明显信息的自签名证书,从而避免扫描源站。

1
2
openssl genrsa -out server.key 2048  
openssl req -new -x509 -days 3650 -key server.key -out server.crt -subj "/C=/ST=/L=/O=/OU=/CN="  

以上命令便生成了一份不包含多余信息的SSL证书,证书名为server.crt,私钥名为server.key 部署在源站,重启您的web服务,便可使您在使用CDN是不泄漏源站。
(注意,若CDN验证源站的证书有效性可能会无法通信,以CloudFlare为例,您需要确保其SSL设置为FULL但不是FULL(Stict)以确保可以顺利回源。)
当您设定CDN为不检查证书有效性时,有可能遭受MITM中间人攻击。但目前来看,在公网,这种情况不太普遍。

# 内网/隧道传输

使用同一公有云的服务器,构建VPC内网,结合负载均衡,跨地域云企业网,等服务实现数据全内网传输,到最终用户。 若采用了不同供应商,可以搭配VPN网关接入,或者您有更高吞吐量更高要求可以进行线下物理专线的牵拉。 如您恰好财力雄厚,可以咨询相关公有云客户经理寻求帮助。

Licensed under CC BY-NC-SA 4.0