首先,访问一下这个IP网址,看看他是什么内容:点我访问



别让SSL证书和Nginx漏洞泄露了你的网站IP!


没错,这是百度图片的IP源站地址。

但问题来了。我们知道,百度图片的网址是https://image.baidu.com/ 当我们用ping工具去ping它时,可以很明显看出来,他是套了CDN的,源IP地址肯定是隐藏的。那么,它的源IP地址是如何暴露的呢?



别让SSL证书和Nginx漏洞泄露了你的网站IP!



这就要谈到Nginx的一个bug了,当使用Nginx运行网站时,他会默认的将你的服务器IP地址绑定为你的一个最新站点。我们就拿百度图片举例,通过IP访问我们可以知道它所在服务器的一个最新的、使用Nginx运行的网站便是百度图片,因此当我们通过443端口即https://103.235.46.231 访问时,便出现了百度图片的网页。

想象一下,CDN就是一群你的替身,遍布于各地,伪装成你;而你的网站,即这些替身的正主,便躲藏在一个地方。借此,与你有仇的人便不会轻易知道你在哪里并上门找麻烦。但是偏偏有一个漏洞,就是全球房子的房主,都喜欢炫耀。每当一个人住进了他们的房子,他们便在门口贴个大字报:“×××刚刚租了我的房子并住在这里!”而有一种组织,我们姑且称他为情报官,便到处搜集这些大字报的信息,并挂出来。而任何人,尤其是与你有仇的人,便可以轻易的通过这些情报官的信息,找到了你真正的藏身地点,从而找上门。

通过这个比喻,大家应该能比较清楚的理解Nginx泄露网站源IP是怎么回事了。但这里还有两个问题:

一.这些搜集IP地址的“情报官”到底是谁?

二.网站IP这么多,他们如何将IP地址与我的域名匹配?


一.这些搜集IP地址的“情报官”到底是谁?

在情报官里,最出名的,或者至少最出名之一的,应该有censys的一个名字,截止发稿前,censys已经拥有251.6M的IPV4信息,175.2M的IPV6信息以及1.2B的虚拟主机信息!


别让SSL证书和Nginx漏洞泄露了你的网站IP!



而我们文章开头所披露的百度图片源站IP,便在他的数据库当中:


别让SSL证书和Nginx漏洞泄露了你的网站IP!



类似censys的网站,据了解,几小时便可扫描一遍全球的IP地址信息!因此,你上午刚建的网站,下午便可出现在其中,其效率之高,令人咋舌。


二.网站IP这么多,他们如何将IP地址与我的域名匹配?

这就要提到你的另一个安全措施了——SSL证书。我们还是拿百度图片举例,当我们访问百度图片网址https://image.baidu.com 时,我们可以很清楚的看到他的SSL证书信息:


别让SSL证书和Nginx漏洞泄露了你的网站IP!



可以看到,证书的公用名为baidu.com。

然后,我们再访问百度的IP源站域名:https://103.235.46.231


别让SSL证书和Nginx漏洞泄露了你的网站IP!



汗流浃背了吧,直接就告诉你我所绑定的域名是baidu.com。正是借由这种方式,在censys搜索对应域名即可找到他的对应IP域名。

三.如何避免或解决?

首先,在censys(点击访问)中,看看自己网站的源IP是否已经暴露,如果暴露,为了安全,最好更换服务器IP。

其次,我以宝塔面板为例,在配置域名对应证书时,配置假证书。没错,就是假证书。


别让SSL证书和Nginx漏洞泄露了你的网站IP!



此处推荐一个假证书的渠道:MySLL(点击访问) , 并按如下方式生成一个自签证书


别让SSL证书和Nginx漏洞泄露了你的网站IP!



将其绑定到你的网站SSL证书中,然后在CDN中配置你的真实网站证书,便可避免IP证书暴露问题。当然如果你不打算使用CDN,也可以随便建一个站点,给他配置SSL自签证书,并将其设置为默认站点


别让SSL证书和Nginx漏洞泄露了你的网站IP!



别让SSL证书和Nginx漏洞泄露了你的网站IP!



然后访问你的IP查看效果:


别让SSL证书和Nginx漏洞泄露了你的网站IP!



别让SSL证书和Nginx漏洞泄露了你的网站IP!



当然也还有其他许多方法,比如禁止IP直接访问站点、IP加黑等渠道,但就有点繁琐了,也不是很保险,留待你们自己研究吧。
至此,你算是堵住了知道你源站IP的一个渠道了。当然,网络攻防最终还是防不胜防,真是有心人你也拦不住,我们能做的只能是尽量减少自己的弱点,好好保护自己脆弱的网站~