我们隐藏的源站IP,不攻自破
仅发布于哔哩哔哩与个人博客 博客链接 blog.nebulatown.com

为什么会写下这些?
混迹互联网如此长的时间,我深知隐藏自己的真实身份有多么重要,所以我逐渐习惯了在不必要的时候不透露自己的姓名或使用一个假名。后来逐渐做起了自己的博客,为了防止自己的服务器被攻击,我也用CDN把自己的服务器隐藏起来了。
我在网上看到了很多隐藏源站的教程,从cloudflare,到换证书,甚至是跳板机,隧道。显然,这些能够解决大部分的IP泄露问题。但是最近发现很多网站源站IP照样被扒,例如:

该站在一段时间后被打的很离谱,然后换了IP,CDN改泛播之后五分钟源IP再次暴露被打死www,不过后来恢复了(感谢 @wvbskyshi 提供的信息)
又比如:

该站在更换IP后五分钟IP再次泄露。
包括我站在内,很多认为隐藏的很好的站点IP都会不经意的泄露。例如星之谷论坛和这个站点,首先是cloudflare,后来发现censys可以扫描SSL证书,于是我用上了假证书隐藏源站。之后发现包追踪+全网段扫描特征能定位,于是我把服务器加了一层隧道嵌套。再之后发现XMLRPC的pingback会暴露,于是我把服务器的动静态,前后端甚至API,服务器和数据库全部分离,分别用不同的服务器转发且中间仅内网相连。但后来源IP还是泄露,这便是几乎无敌的网络空间测绘。

什么是网络空间测绘?
这个问题就像什么是测绘,网络空间测绘就是把全球互联网的每个服务器,节点甚至是每个打印机,IOT设备,UPS都呈现在地图上。
地球轨道上目前有接近一千颗遥感卫星(来源:前瞻产业研究院),这些卫星24小时连续环绕地球进行测绘,形成不同类型的地图。这些地图被用于国土资源勘探,气象预测,环境监测,农业工业生产以及导航等各种用途。同理,网络空间测绘通过分布在世界各地的探测节点对各个网络设施进行嗅探,采集分析,从而形成一幅互联网地图。这个地图中有这全球骨干网的拓扑链接,大量互联网,物联网设备的位置甚至是其中有什么漏洞。
那么,我们该怎么办?
网络空间测绘几乎是无法逃脱的,不过对于一些探测点没有那么多的引擎,我们仍然有一些办法。
1.在基础的CDN上实行仅CDN的IP可访问源站。这样可以防止以包追踪,ping-back扫描或snmp扫描被直接发现。但如果你的服务器与对方的扫描节点刚好在一个内网,大内网网段或跨网段容错域,则有可能被服务器特征分析从而暴露。
2.关闭或分离一切可以发出被反查追踪返回值的API,例如XML-PRC pingback/X-Content-Type-Options/X-Powered-By/X-Csrf-Token等等,这些是网络空间测绘的常用手段,即使不会直接泄露IP,但也会被分析,匹配。
3.如果源站IP暴露是怕被打,那么直接根源解决问题。例如上f2b,黑洞高防等等。
最后,也是目前我的解决方案。在前面所提的全部方法后做多服务器转发,例如我的服务器架构是一台内网服务器利用多台跳板机获得多个不同内网IP,这些跳板机中进行隔离。之后这些内网IP外再有多个跳板获得多个外网IP,之后使用CDN,CDN外再套一个负载均衡,以此获得多重冗余的防攻击和防空间测绘。
事实上,以上这些都是通过服务器和网关虚拟化出来的,目前我通过伪证书防SSL扫描和虚拟化隔离跳板已经实现了价格很低廉的防攻击。目前我所知道的只有一个二级跳板的IP泄露,但是这并不影响服务器正常运行。即使服务器遭受攻击,无非就是负载均衡中一个红灯()
不过说句实话,最好的防攻击工具就是备案。等到自己符合备案条件的时候做个备案,被攻击寻求法律保护就没有任何问题了~
本篇文章采用 署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0) 许可协议进行许可。