隐藏服务器 IP 很重要,但封堵泄露服务器 IP 的环节更重要。

网站要注意隐藏服务器真实 IP 的观点,服务器真实 IP 泄露造成的后果损失是无法估量的,甚至往往会带来毁灭性的后果都不是不可能。比如: DDos/CC 攻击、刷流量、后门植入、恶意扫描、漏洞入侵等等很多不可预料的危害。当然,隐藏服务器真实 IP 的方法非常简单,只需要给网站套个 CDN 即可,但很多人都忽略了会泄露服务器真实 IP 的环节。

一、如何判断自己服务器真实 IP 已泄露?

比较直观的方法就是通过第三方工具检索域名来判断放置这个域名的服务器真实 IP 是否能泄露,如比较著名的 Censys 搜索。

Censys 的检索非常简单,就跟咱们用的谷歌、百度搜索引擎一样,只需要输入主域名或者子域名即可,如下图所示:

什么是 Censys Search?

Censys 是一款用以搜索联网设备信息的新型搜索引擎,安全专家可以使用它来评估他们实现方案的安全性,而黑客则可以使用它作为前期侦查攻击目标、收集目标信息的强大利器。

Censys 使黑客和安全专家们拥有了一款新型强大的分析工具,那就是 Censys 搜索引擎,与最流行的搜索引擎 Shodan 非常类似。Censys 是一款免费的搜索引擎,最初由密歇根大学的研究人员在 10 月发行,目前由谷歌提供支持。

Censys 搜索引擎能够扫描整个互联网,Censys 每天都会扫描 IPv4 地址空间,以搜索所有联网设备并收集相关的信息,并返回一份有关资源(如设备、网站和证书)配置和部署信息的总体报告。

当然,Censys 搜索绝不是仅仅可以检索域名的,还可以检索 SSL 证书、端口、IP、虚拟主机、在线服务等等,所以用来判定服务器真实 IP 是否泄露还是很有权威性的。理论上只要你的服务器真实 IP 出现在搜索结果里就意味着你的服务器真实 IP 已经泄露公开了,别有用心的人完全可以在检索结果里找出那个真实的服务器 IP,然后你的服务器基本就是裸奔在别人面前了,至于能造成多大的危害就取决于这个人的技术水平了。

另一个判断服务器真实 IP 泄露的方法就是在给网站套了带有 WAF 的 CDN 后,服务器依旧会受到 DDoS 或者 CC 攻击的侵扰,那么这也可以判定判断服务器真实 IP 泄露已经泄露了,只是对方没有最终确定而已(这也就是个时间问题了其实)。

最后一个判断服务器真实 IP 泄露的办法就是通过站点的 Nginx/Apache 日志分析了,这个相对有点儿专业和复杂,比较适合专业的运维人员,这里就不过多的赘述了!

综上所述,建议大家没事儿可以经常的查询检索一下自己站点域名看看自己的服务器真实 IP 是否泄露了,没有泄露当然是万事大吉、相安无事了,一旦发现泄露了就要赶紧照着下面总结的几点排查一下是哪个环节泄露了,及时的封堵和修复哦。

二、经常“灯下黑”的几个泄露服务器真实 IP 的环节

WordPress 、Typecho 博客站点泄露服务器真实 IP 的环节还是不少的,基本就是一种“灯下黑”的存在了,几乎 90%以上的新手站长都会忽略和不注意这些,都是莫名奇妙的就被人攻击了,严重的宕机、被黑洞几乎非常普遍,哪怕是拥有高防 CDN 、高防服务器的依旧是有心无力,其实罪魁祸首就是服务器真实 IP 遭到泄露了而已。

1、评论邮件暴露服务器真实 IP

无论是 WordPress 还是 Typecho 都是有自带原生的评论模块的,并且都有评论邮件提醒功能,早期很多的网上教程都会推荐免费的第三方邮箱平台来发送评论邮件,而这些免费的邮箱平台几乎都会在发送的邮件标头里显示发送服务器的 IP,而这个标头仅仅是以代码的形式存在的,不查看邮件源代码是不会注意到的,但别有用心的人只要在你的博客发布一个评论后其预留的邮箱收到了评论回复提醒邮件就可以通过查看邮件标头或者邮件源代码找到你服务器的真实 IP,阿里云企业邮箱还是值得推荐一下的,至少不会泄露 IP 地址了!分享过一个评论回复提醒邮件泄露服务器真实 IP 的截图,如下图所示:

上图灰色标记地方的 IP 地址就是这个评论回复邮件发出站点服务器真实 IP,并且不止标记的地方,下面的 X-Originating-IP 也显示了服务器的真实 IP:113.126.73.220。所以说获取你服务器的真实 IP 有时候仅仅需要发表一个评论即可。

此漏洞解决修补办法

修补这个漏洞的办法其实非常简单,就是使用一个不会在邮件标头、源代码里显示发送源 IP 地址的邮箱即可,目前明月实测国内阿里云企业邮箱是不会泄露发送源 IP 的,在阿里云企业邮箱还是值得推荐一下的,至少不会泄露 IP 地址了!专门推荐过的,至于腾讯企业邮箱,至少前年在用的时候发现会泄露发送源 IP 的,不知道现在是否已经修正了,有条件的可以测试一下。

如果是境外站点,可以选择 Gmail 的 API 方式发送评论邮件也是没问题的,当然使用境外的企业邮箱就更没问题了,一般免费的即可。有条件自建邮件系统也不是不可以,但一般不建议,毕竟需要一定的基础知识的,第三方其实就很不错!

2、DNS 解析服务 A 解析历史记录暴露真实 IP

在建设网站阶段获得了域名后自然是通过 DNS 解析到站点所在服务器的 IP 上来让网站上线访问的。这个估计很多站长们都知道,并且站点域名首次接入都是要在 DNS 做个 A 解析记录到服务器真实 IP 上的,恰恰是这个 A 记录解析也会是泄露服务器真实 IP 的地方。因为随着这个 A 解析记录生效时间的延长,会被各地 ISP 缓存 DNS 记录的时候给缓存保留下来,而各地的 ISP 服务商技术水平参差不齐,指不定就会泄露或者暴露这些保存记录,文章开头提到的Censys 搜索就能很容易的检索到这类记录呈现在搜索结果中,这就间接的造成你的服务器真实 IP 泄露了。

此漏洞解决修补办法

解决 A 解析记录暴露服务器真实 IP 的最好方法就是缩短使用 A 解析的时间,理论上 A 解析生效后就可以接入 CDN 了,这时候随便接入一个免费的 CDN 就可以把 A 解析变更为 CNAME 解析类型,至此也就不存在 A 解析记录被各地 ISP 缓存保留和泄露的风险了。重要的就是 A 解析保持的时间越短,这个泄露的风险就越小。总结下来就是新站上线后要第一时间接入 CDN 来隐藏服务器真实 IP

另一种修补方法就取决于你自身资源了,如果你像明月一样有多个服务器,就可以将网站在两个服务器间迁移来实现服务器真实 IP 的隐藏,用 A 服务器上线成功后接入 CDN ,然后迁移至 B 服务器修改 CDN 里回源 IP 即可,这就也达到修补这个漏洞的目的了。

3、DNS 解析服务里给搜索引擎线路单独 A 解析暴露真实 IP

这个很多新手站长们都容易忽略的地方,因为都过于迷信网上那些早年间的 SEO 优化教程了,其实现在的搜索引擎已经能很好的抓取 CDN 节点上的内容了,使用了 CDN 后根本不会对 SEO 有任何的影响,单独给搜索引擎 A 解析只会被仿冒搜索引擎爬虫脚本获得服务器真实 IP 提供便利,没有其他任何实际意义,这点儿明月已经多次讲过了,并且都是自己使用多个 CDN 后的实测经验。

此漏洞解决修补办法

这个就非常简单了,直接删除这类 A 解析记录即可,有条件的话能让服务器只接受 CDN 节点 IP 回源请求就最完美了,这样所有的搜索引擎爬虫都不会再回源抓取了,只要 CDN 正常缓存并及时回源更新就不会影响搜索引擎蜘蛛爬虫的抓取。

这时候建议大家在 Nginx/Apache 的站点配置文件里添加一个头部 header 标签,如 Nginx 站点配置里 server 模块中添加如下:

add_header Cache-Control "public, max-age=3600, must-revalidate";
意思是:缓存所有内容一个小时(这个时间可以根据自己站点内容更新频率来灵活调整)。但在那之后,内容必须再次被检查,但不必过期,也不必从缓存中清除。来提升 CDN 缓存更新的及时性,以达到保证搜索引擎爬虫蜘蛛抓取内容是最新的目的。

4、插件、代码暴露真实 IP

这个也是很多新手站长们容易忽略的一个地方,因为很多新手都会尝试各种插件、代码啥的,来源几乎都是网上各个地方,所以不可避免的会有些恶意代码啥的,这类代码泄露服务器真实 IP 几乎都是毫无察觉的情况下发生的,并且还非常难发现,所以明月一直强调选择和安装插件以及使用代码的时候一定要慎重。

此漏洞解决修补办法
解决这个漏洞就是需要大家养成好的只在 WordPress 后台的在线插件库里选择安装插件习惯,来源不明以及所谓的破解版之类的插件一律不要轻易安装使用。至于代码,理论上看不懂或者不知道要干啥的尽量不用。

5、宝塔面板后门泄露真实 IP

这个漏洞在宝塔面板上碰到过很多次,是亲历了变更服务器 IP 后安装完宝塔面板,刚运行没多长时间服务器真实 IP 就泄露了的全程经过,虽然理论上可以及时更新宝塔面板来修复,但基于宝塔面板的原理考虑,还是有很大的泄露服务器真实 IP 的风险的。

此漏洞解决修补办法

据说安装完宝塔面板后随即就开启防火墙里的“安全加固”就不会再有泄露服务器真实 IP 的风险,因为从来就不用宝塔面板,所以没有相关实测体验,仅供大家参考了!但保持宝塔面板的更新是必须的,并且有条件的话建议购买付费版比较稳妥些。这年月“免费就是最贵”的是真理呀!

当然,也可以换用其他的面板,但要说的是就面板原理来说泄露服务器真实 IP 的风险是永远会存在的,个人博客类不具有太高商业价值的是无所谓的,商业化使用的话还是建议尽量原生控制台终端形式安全系数最高了。

6、SSL 证书申请泄露真实 IP

Nginx 在设计上有个小缺陷,会因为 ssl 证书泄露网站的服务器真实 IP,原理是用 Nginx 部署网站,在默认或不正确的配置下,网站开启 SSL,直接访问 ip 的 443 端口,即 IP:443,Nginx 会返回默认一个站点的 SSL 证书,间接的能让别人扫到这个 IP对应的域名。其实就是对 IP 的 443 端口发送 ClientHello,对方回复的 ServerHello 中有 SSL 证书,SSL 证书里的 Common Name 有域名信息。这样就知道了解析这个 IP 的域名。所以更准确的说是 IP 的 443 端口可能会暴露了域名。动作再大一点,批量扫描机房的 IP 段,把对应的域名-IP 的多值映射表统计起来。以后想查某个域名对应的源站 IP 查这个表就够了,这是黑产很喜欢干的事;同时也是很多站点,明明套了 CDN ,依然能被打到源站 IP 的原因。

此漏洞解决修补办法

幸运的是 Nginx 自 1.19.4 版后支持了 ssl_reject_handshake,只需要在 nginx.conf 文件里新增一个 443 端口的 server 块就可以对没有匹配 server_name 的请求拒绝 handshake(握手),具体代码如下:

server
    {
        listen 443 ssl http2;
        listen [::]:443 default_server;
        server_name _;
        ssl_reject_handshake on;
        return 444;
        }

 

默认来说添加完成后,如下图这样:

就是给 nginx.conf 里添加一个不存在的 443 端口的 server 块对没有匹配 server_name 的请求拒绝 handshake(握手)。

三、总结

保护服务器真实 IP 不泄露是个要长期要坚持的运维工作,给大家分享的都是目前已知的 WordPress 、Typecho 这类博客网站系统会造成泄露服务器真实 IP 的风险环节,修复这些漏洞也相对很简单,只要照着给出的解决办法做就行。另外要给大家强调的是一定要养成及时更新 WordPress 、Typecho 到最新版本的习惯以及插件、主题更新的习惯,这样只要有了 CDN 在外层的保护,你的服务器以及网站就会安然无忧。

 

本文转自明月登楼的博客

文章版权归原作者所有或来自互联网,未经允许请勿转载。如有侵权请联系我删除,谢谢!
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录