我有两个 OpenVPN 客户端(A 和 B)的通用设置,它们都连接到服务器 S。这问题是,每个客户端与服务器都有一个加密通道,但服务器会取消加密以便将流量路由到另一个客户端。据我了解,如果服务器受到损害,攻击者可以从 S 内部看到 A 和 B 之间未加密的流量。我说得对吗?如果是,我如何在 A 和 B 之间强制进行某种端到端加密,以便在这种情况下使用 telnet(例如)是安全的?
答案1
原则上可以在类似洋葱的层中使用 OpenVPN。
假设您被迫保持第 1 层 (L1) 不变:
- S 仍然是 L1 开放 VPN 服务器
- A和B作为L1服务器S的L1客户端
在L1下面,我们添加L2,如下:
- A作为L2开放VPN服务器
- B 作为 L2 服务器 A 的 L2 开放 VPN 客户端
通过此设置,假设 A 和 B 通过 L2 传输所有敏感信息,则受感染的 S L1 服务器无法窃听 L2 流量。
答案2
是的,如果服务器受到威胁,流量就会面临风险。你要求的是在主机之间而不是路由器之间有一个安全通道,这意味着你必须设置 tunne;在它们上(一个作为服务器,另一个作为客户端)并设置端口转发(如果服务器位于某个 NAT 之后)。
答案3
简单的答案是:如果您想假装任何受损的中间系统来读取明文流量,那么一定不能有任何中间系统。您需要在每对系统之间建立(非路由)点对点 VPN 隧道,以便能够以这种方式进行通信。当然,您必须为每个隧道使用证书或不同的预共享密钥。