我是如何隐藏服务器 IP 地址的?(二)

上一篇文章讨论了怎样正确地设置 Cloudflare 来保证服务器 IP 免遭泄露.接下来,介绍一下如何在应用层面隐藏 IP 地址,作为近期各种折腾的一个记录.

在应用层面隐藏 IP 地址,宗旨其实很简单,就是要避免服务器上的程序在主动对外建立连接时暴露自己的 IP. 对于一个 WordPress 博客来说,最常见的主动对外连接就是 Ping, Pingback 和 Trackback 了. Ping 用于在新文章发布时通知搜索引擎前来抓取, Pingback 和 Trackback 则是在文章引用了其他网站的内容时通知这些网站.可见,收到 Ping/Pingback/Trackback 通知的服务器均可记录我们服务器的真实 IP, 因此有必要加以限制.

Ping 对于促进搜索引擎收录来说有一定的作用,所以不建议完全禁用掉.不过,网上各种教程给出的大量 Ping 列表不应该直接用在自己的网站上(当然啦,刚刚建立这个网站的时候,我也是抄了一大段 Ping 列表就用).经测试发现,许多流传甚广的 Ping 服务,要么打不开,要么域名过期挂着个停泊页,要么彻底改头换面(居然还有个直接跳转 "360 会员商城"的,我靠).显然,许多 Ping 服务已经不可靠/不可信了.建议在设定网站的 Ping 服务列表时仔细筛选,只使用可信的服务. (WordPress 设置 -> 撰写 -> "更新服务)

至于 Pingback 和 Trackback...你能够信任自己写的文章里外链的网站吗?如果不信任的话,还是关掉更好. (WordPress 设置 -> 讨论 -> ")

除此之外,邮件也是造成 IP 泄露的重要因素.使用 SMTP 方式时,邮件原始数据中往往会包含源服务器的 IP. 本站的通知邮件发送地址 notify[at]nota.moe 使用的 Zoho Mail 就是这样:

我咨询了 Zoho Mail 的客服,答复是 SMTP 标准就是这么规定的,还给我发了个 RFC 的链接过来.行吧,那就告别 Zoho Mail, 寻找替代方案.据说 SendCloud 就会去掉原始数据里的 IP 地址,但这是国内的公司(具体来说,搜狐)的产品.既然我的目的是提升网站的安全性,那又怎么会用它呢?尝试了一下 Yandex, 你猜怎么着,半个多月过去了,我的域名还没验证通过.最终选择了 SendGrid.

SendGrid 挺好用的,默认会把 SPF 和 DKIM 配好(不像 Zoho Mail 那么折腾).使用 SMTP 方式发信的话, WordPress 这边的设定方法就跟用 Zoho Mail 一样(我用的 SMTP 发信插件是 Easy WP SMTP). 在 mail-tester.com 能拿到 9.5/10 分(因为 SendGrid 有一个黑名单记录),还可以啦.——问题是, SendGrid 也会泄露源服务器 IP 呀!

不过呢,当我向客服提出这一点后,对方马上表示可以在邮件原始数据里去掉 IP, 只需要由他们的技术人员在后台做一些微小的设定.这样一来就完美了,本站的通知邮件地址更换为 notify[at]send.nota.moe, 今后将通过 SendGrid 发送.

除了上述这些,一些零碎的地方也可能造成 IP 泄露.似乎是 Akismet 给 WordPress 添加了个功能:在网站后台查看文章评论时,可以预览评论里的链接的网页截图.我之前怀疑这里会导致 IP 泄露,不过抓包发现这些截图并不是在我的服务器上,而是在 WordPress 官方的服务器上生成的,不会泄露 IP.

另外,毕竟 VPS 也不便宜,为了充分利用,我搭了 Shadowsocks. 因此,当我挂着代理上网时,我浏览的网站会得到这台服务器的 IP. 假如有人想要查找某个网站上某个账户关联的 IP, 直接翻日志就行.因此,有必要另外买一台 VPS 专门用于搭梯子.

以上.

4 thoughts on “我是如何隐藏服务器 IP 地址的?(二)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注