让服务器从头到尾保持匿名
Anonymity · 9 分钟阅读
'匿名'实际涵盖了什么
人们谈论匿名服务器搭建时,常常把它当成单一的一个属性,但它实际上是三个碰巧相互关联的独立属性:身份匿名性(账户或服务商是否知道你是谁)、支付匿名性(资金轨迹是否会追溯回你)以及操作匿名性(你日常使用服务器的方式,是否会泄露幕后的人是谁)。一个服务商可以在前两项上做得很好,而你依然可能因为第三项而把自己完全暴露。
这一点很重要,因为大多数关于'让 vps 保持匿名'的指南,止步于注册环节——选一个无 KYC 主机,用加密货币付款,就完事了。这只覆盖了身份和支付两层。它对你从个人笔记本电脑复用的那个 SSH 密钥、你的定时任务悄悄暴露的时区,或者在你还没关闭 shell 历史记录之前就拍下的快照,只字未提。本指南将走完完整的生命周期:账户与支付、部署时的卫生习惯、服务器实际被去匿名化的具体方式、持续的操作习惯,以及如何干净利落地关停一个项目。
从干净开始:账户与支付层
这一部分是最容易做对的,因为它是一次性决策,而不是需要持续维持的纪律。VPS GOAT 的注册就是一个匿名账户密钥,以 Mullvad 式在服务端生成并哈希——账户从始至终没有邮箱、没有姓名、没有任何身份证件,因此在这一层,除了密钥的使用历史之外,没有任何东西可供数据请求索取。
支付通过 Paymento 完成,涵盖多种加密货币——Monero、Bitcoin、USDT、Litecoin、Ethereum、Tron。在这些币种中,Monero 是值得默认使用的那一个,原因与营销无关:它的环签名和隐匿地址在账本本身层面就掩盖了发送方、接收方和金额,而 Bitcoin 的账本则是完全公开且永久可关联的——用于这次购买的钱包,原则上一旦曾经接触过受监管的交易所,就有可能被通过交易所 KYC 记录追溯回来。如果你确实用 Bitcoin 支付,至少要使用一个没有与已实名交易所账户产生关联历史的钱包。
司法辖区也是这一层的一部分,尽管它不直接触及支付。VPS GOAT 在 12 个司法辖区运营——巴拿马、塞舌尔、冰岛、摩尔多瓦、保加利亚、罗马尼亚、马来西亚和荷兰目前已上线,汤加、伯利兹、瓦努阿图和哥斯达黎加即将上线——某个实例所在的司法辖区,决定了一份索取记录的法律请求在法律层面实际需要满足什么条件,这与你在其他方面处理得多好无关。
部署时的卫生习惯:第一个小时至关重要
部署完成后的这段时间,是许多匿名服务器搭建悄悄失败的地方,因为人们很容易把第一次登录当作'先让它跑起来',打算之后再收拾。在做任何其他事情之前,先把主机名设置成通用值——一个沿用了此前项目名称、或个人命名习惯的默认值,从那一刻起就会出现在邮件头、TLS 证书通用名和 shell 提示符里。时区和语言环境也是同理:一台留在你本地时区的服务器,会通过它发送的每一条日志、每一封邮件中的时间戳,泄露你大致的地理位置。
为这台服务器专门生成一套全新的 SSH 密钥对。这是与托管服务商本身无关、却最常见的匿名性失败:把你日常使用的个人密钥复制到匿名 VPS 上,意味着这个公钥指纹现在同时存在于两个地方,任何把 Shodan 或 Censys 扫描结果与一个在别处关联你姓名的密钥指纹进行比对的人,都能瞬间把两者连接起来,无论账户是怎么付款的都无关紧要。
如果你打算通过 Tor 对这台服务器进行管理操作,现在就设置好,而不要等服务器已经留下了来自你真实 IP 的登录历史之后再做——关于通过 Tor 的 SOCKS 代理路由 SSH,或将 SSH 发布为洋葱服务的具体机制,可参阅我们关于通过 Tor 连接 VPS 的指南。
- 在配置其他任何东西之前,先设置通用的主机名和语言环境
- 生成专属的 SSH 密钥对;绝不要从个人机器上复制一个
- 把最初的第一次登录也通过 Tor 或可信 VPN 路由——第一次连接和第一百次一样重要
- 在真正开始工作之前,先禁用或最小化 shell 历史记录和核心转储
服务器实际是如何被去匿名化的
实际情况中,失败的方式相当一致,而且大多平淡无奇,这也正是为什么值得把它们直白地列出来,而不是把去匿名化当作某种高深攻击。流量时间关联是最大的一个:如果一台服务器的活动总是在与你家庭时区清醒时段吻合的时间开始,这种规律本身就是一种信息,与任何 IP 地址无关。元数据泄露是另一个——通过这台机器提供或上传的文件、图片或文档,可能携带从未被清理过的 EXIF 数据、文档作者字段或嵌入的时间戳。
指纹复用更不易察觉,但同样有效:一份 TLS 证书、一个 SSH 密钥,甚至是一个独特的错误页面或 favicon 哈希值,如果同时出现在你已知控制的其他基础设施上,就会被任何进行大规模互联网扫描的人(如今这已是常规且低成本的操作)关联在一起。而备份则是一个被低估的风险——在你完成加固之前拍下的一份快照,可能仍保留着已从实时文件系统中'删除'、但在那份更早的镜像中无限期留存的日志、shell 历史记录或凭证。
经得起数月考验、而不只是设置阶段的操作习惯
只在部署时存在的匿名性会逐渐流失。真正经得起考验的习惯,是那些你每一次会话都重复的:每一次都通过 Tor 或 VPN 连接,而不仅仅是在项目敏感的部分才这样做——一次来自家庭 IP 的疏漏就会永久留在日志里,之后没有办法有选择地把它'忘掉'。每个身份或项目只对应一台服务器,而不是把所有东西整合到一台机器上,因为整合意味着一次关联(共享的登录模式、共享的密钥、共享的时间规律)就能暴露共享这套基础设施的所有内容,而不仅仅是出问题的那一项。
对服务器实际会与哪些第三方服务通信要保持谨慎。正常运行时间监控、分析嵌入代码和错误上报工具都很有用,但每一个都是一个在其自身基础设施上记录服务器 IP、请求模式和活动时间的外部方,这些都不在你的掌控范围内,也不在服务商的司法辖区之内。如果你需要监控,优先选择自托管方案,或者不需要让第三方持续掌握服务器活跃时间与频率的方案。
- 每一次会话都通过 Tor 或 VPN 连接,而不是有选择性地这样做
- 每台服务器只对应一个身份或项目,而不是把多个用途整合到一台机器上
- 审计服务器对外发起的调用——监控、分析、软件包镜像——优先选择自托管或最小化日志记录的替代方案
- 把任何新快照都当作需要重新审查的新产物,而不是默认安全的已加固服务器副本
不留痕迹地关停一个项目
服务器下线这一步经常被跳过,部分原因是没有一个明显的时刻会提醒你去做。在销毁一台 VPS 之前,先想清楚存在哪些旧快照,并删除你不再需要的那些——快照的生命周期比它所对应的实例更长,正是前文所说的那种可能保留实时服务器上已不存在的数据的产物。如果项目确实已经结束,删除实例及其所有快照就算彻底收尾;如果你只是暂停,下次重新捡起项目时,请沿用同样的访问纪律(Tor 或 VPN,毫无例外),因为使用间隔的存在,并不会降低一次草率重新连接所带来的风险。
| 风险点 | 如何泄露身份 | 应对方式 |
|---|---|---|
| 支付元数据 | 公开账本(Bitcoin)可能把钱包集群和交易所 KYC 记录关联到某次购买的时间戳 | 尽可能通过 Paymento 用 Monero 支付;如果使用 Bitcoin,请使用没有交易所关联历史的钱包 |
| 复用的 SSH 密钥指纹 | 同一个公钥出现在个人服务器和匿名服务器上,会在 Shodan 或 Censys 之类的大规模扫描中把两者关联起来 | 为每台匿名服务器生成专属密钥对;绝不复用日常使用的密钥 |
| 从家庭或办公室 IP 直接连接 | 只要有一次未经 Tor 或 VPN 的连接,服务器访问日志就会记录下真实的来源 IP | 每一次会话都通过 Tor 或可信 VPN 路由,不因'临时快速登录'而例外 |
| 默认主机名、TLS 证书或语言环境 | 证书通用名、邮件头和时间戳可能透露出真实姓名、此前项目或时区 | 部署后立即设置通用的主机名和语言环境,先于其他任何配置 |
| 时间规律关联 | 始终与你已知清醒时段吻合的活动规律,会缩小背后是谁的范围 | 在可行的情况下改变访问时间,或用自动化替代按固定时间表手动操作 |
| 快照与备份 | 加固之前拍下的快照可能无限期保留已删除的日志、shell 历史记录或凭证 | 只在加固完成后才做快照,并删除不再需要的旧快照 |