使用 CDN 后如何保护源站 IP 不泄露

温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。

使用 CDN,一般都是出于加速和安全防护的目的,但是经常一些有意无意的配置导致源站 IP 暴露,致使 CDN 防护失效,本文将探讨如何更好地保护源站 IP 安全。

分析

背景

开始之前,先介绍一个网站:Censys - Security starts with visibility ,这个网站通过不间断地扫描来记录 IP 等信息,因此在这里可以找到与你网站相关的很多东西(且不限于此),比如:

Censys.png

这也就意外着,只要有心套几层 CDN 都防不住,而且能实现这个功能的网站或工具不限于 Censys 一家。因此我们就要想办法尽量减少各个信息链的关联。

原理

Nginx 服务器本身工作原理,当未设置默认网站(default_server)时,通过 IP 可直接访问建立的第一个网站,而当你在 IP 前加上 https 访问时,Nginx 会自动返回该网站的 https 证书,从而暴露相关域名信息。

实例

以百度为例,ping 一下 baidu.com,比如我这里分配到的 IP 是 220.181.38.148,于是我们访问 https://220.181.38.148,可以看到:

Baidu.png

已经把该 IP 下的默认站点 www.baidu.cn 暴露了,虽然证书是可以随意配置的,但至少我们可以确定该 IP 曾经关联过 www.baidu.cn 域名,再去 Censys 搜一下 baidu.cn

Baidu.Censys.png

可以看到刚查到 IP 220.181.38.148,以及其他很多关联 IP,这其中很有可能某一个就是真正的源站 IP。

结论

通过上述分析,我们知道只需要扫描全球所有 IP 段的所有 IP 的 443 端口就很有可能知道某个网站的源站 IP(直接扫描 0.0.0.0/0 即可)。

在讲如何防止源站 IP 泄露之前,如果你在 Censys 已经能查到源站 IP,请换掉你的源站 IP,或者直接重新开 VPS 搬家(比如 Vultr 17 元/月日本 VPSCloudCone 12 元/月美国 CN2 VPS华为云 199 元/年国内学生机等),换掉 IP 之后千万千万别那么着急傻乎乎的解析到自己源站 IP 上,到时候会有查解析记录的平台照样查得出。

方法

IP 限制

最暴力的方法,你用的啥 CDN,就利用防火墙只允许 CDN 的回源 IP 访问自己的 VPS,参考之前的文章《使用 CDN(CloudFlare|腾讯云|加速乐等)情况下如何获取访客真实 IP 》。

IP 证书

这是最方便快捷的方法,就是新建一个默认的站点(default_server),证书使用 IP 证书,这样通过扫描 443 来判断源站的方法就无法获知你的域名,签发可信任 IP 证书,可以参考之前的文章《获取免费的泛域名证书|IP 证书|多域名证书|单域名证书》。

默认站点的意思就是说不通过域名直接访问 IP,要显示的是哪个网站内容。

回源限制

你根本不需要在源站放一个证书,你只要 CDN 设置为 http 回源,CDN 使用 https 就行了,不要用协议跟随。

比如在 CloudFlare上把 SSL 设为 full即可(参考《如何正确启用 CloudFlare SSL》) ,记得一点就是不要把自己的网站设为默认网站。

PS:其实本站就是个宝藏有木有,相关的都有提过,就看你怎么串在一起用起来。

邮局保护

不要在服务器上直接使用邮件服务,包括使用托管邮局和本地直接发信,因为收信用户都可以在邮件头信息中直接查看来源 IP,确有需要尽量使用代理服务器或者邮局 web 端来发信。

当然了,防护措施不仅仅上面提到的这些,大家可以根据自己的需求选择。


参考文章:

1、《防止源站IP泄露


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 cdn经验IP保护源站 的文章

 本文最后更新于 2019/06/19 14:21:44,可能因经年累月而与现状有所差异

 引用转载请注明: VirCloud's Blog > 经验 > 使用 CDN 后如何保护源站 IP 不泄露

精选评论

  1. 心灵博客
    心灵博客 回复

    Mac OS X 10_14_5Chrome 75.0.3770.80来自 江西 的大神

    好多查历史解析的网站,很难避免。
    自动邮件回复也会暴露,对于高手来说真的很难防

    1. 欧文斯
      欧文斯 回复

      Windows 10Chrome 75.0.3770.80来自 福建 的大神

      所以文中说到了,如果已经暴露,可以更换 VPS 或者 IP,然后先别急着 DNS 解析,做好防护后再解析。
      自动回复这个确实就比较麻烦,可以的话用 API 方式估计可以避免暴露。

  2. owen
    owen 回复

    Windows 10Chrome 75.0.3770.80来自 福建 的大神

    IP 证书这个可以有 icon_lol.gif

    1. owen@owen.ml
      [email protected] 回复

      Windows 10Chrome 75.0.3770.80来自 福建 的大神

      IP 证书签发成功,666!

  3. AWS CloudFront CDN 详细图文部署教程及自选优质 IP 方法 | 我的文本
  4. vpsxb
    vpsxb 回复

    Windows 10Chrome 108.0.0.0来自 浙江 的大神

    大佬,您好,想申请转载到我的博客,麻烦了,谢谢

    1. 欧文斯
      欧文斯 回复

      Windows 10Chrome 106.0.0.0来自 福建 的大神

      可以,注明出处

  5. DDOS/CC防护参考资料 R11; Hidden Nation