你为隧道转发一个端口,并告诉自己改动范围有限。实际上,端口只放行数据包;真正构成暴露的是它背后的东西。三件事决定这种暴露:公网侧监听的套接字、隧道接受的身份,以及该身份随后能触及的目标。每一件都需要自己的答案,因为在一处谨慎选择并不会约束另外两处。

端口转发不是服务

路由器规则把数据包移向某台主机,却不指明读取它们的是哪个进程。转发页面和监听套接字位于不同地方,所以一条规则可能指向一台已不再运行该服务的机器。要查明究竟是谁在应答,请看主机:ss -lntup 会列出每个监听套接字及其所属进程。然后把该进程对应到组件、版本和负责人。

删掉你记得创建过的那条规则,并不等于关上了门。UPnP 映射可能自行添加,IPv4 条目消失后 IPv6 地址仍可能可达,另一台机器上还可能存在第二种发布方式。既要读路由器的 UPnP 映射列表,也要读它的静态条目,然后从网络外部测试。

登录不是局域网权限

隧道决定谁可以连接;资源决定已连接的客户端可以打开什么。NIST 的零信任指南在网络规模上做了同样的划分:地址并不能证明任何授权。给一台已登记的笔记本电脑一项任务,例如读取某台命名主机上的文件共享,并把这对关系写下来。隧道地址不应继承对整个家庭其余部分的管理员访问权。

还要检查摘要略过的路径:客户端到客户端流量、网桥成员资格、互联网转发和源地址转换。每一条都可能把两个系统连起来,而你的书面任务从未提到它们。关掉任务不需要的那些,然后列出客户端仍然能到达的地方。

干净扫描证明的很少

开放端口是关于一个地址和一个协议的事实;成功登录是关于一份凭据的事实。两者都不能说明接下来会发生什么。在目标主机上测试预期操作,然后尝试一个从未登记的身份、一项无人批准的服务,以及本应保持私密的管理界面。最后一项测试通常就是失败的那项。

两种地址族和每一条你发布的路径都要测试。扫描 IPv4 地址并不能说明正在监听的 IPv6 服务,内部测试也看不到 NAT 回环问题或上游过滤器。至少从外部做一次检查,使用不经过同一台路由器返回的连接。

把暴露写下来

一张短表能让这次审查变成下一个人可以审计的东西。从外向内填写,每个可达服务一行,并把它和配置放在一起,而不是放在聊天记录里。如果某一行没有负责人,那本身就是一项发现。

Public address and portReceiving hostProcess on the socketIntended actorWho may reach it
203.0.113.10:51820naswg-quick@wg0my laptopenrolled peers only

只写“VPN”的行还不算行。一行需要套接字、主机、身份和目标,因为审计者或攻击者要测试的正是这些。

需要之前先规划退役

无法撤销的隧道就是一扇永久的门。提前决定如何吊销设备凭据、结束活动会话,以及在升级破坏服务后恢复访问。保留一条不经过隧道的恢复路径,因为你要修的正是隧道。把它存放在没有那台机器也能拿到的地方。

当预期目标可用、不想要的目标不可用时,审查才算完成。它并不保证不存在漏洞,扫描器的绿色标签也不能替代这两者中的任何一个。把表格和恢复说明交给接手这套设置的人。

相关文章