我们刚刚创建了一个由12个节点组成的集群,并希望为每台计算机之间的许多通信提供OpenVPN都必须100%安全(我们无法访问100%安全/专用环境,因此我们必须在计算机之间进行加密。 )
因此,我们有一个如下所示的设置:
+------------------+
| |
| OpenVPN Server |
| |
+------------------+
^
|
+-----+------+----------------+----------+
| | . |
| | . |
v v . v
+------------------+ +------------------+ ..... +------------------+
| | | | . . | |
| OpenVPN Client | | OpenVPN Client | . . | OpenVPN Client |
| A | | B | . . | n |
+------------------+ +------------------+ ..... +------------------+
OpenVPN Server是12台计算机之一,我们注意到,每当任何客户端与另一个客户端通信时,它都会发疯。查看防火墙信息,我们可以清楚地看到客户端之间没有通信。相反,所有数据都发送到服务器,然后转发到另一个客户端(即,从客户端A到客户端B,我们看到传输是从A到Server,然后是Server到B。)
我想知道的是:
每当要向B发送数据时,A会获得B的公钥吗?我可以想象这不是因为OpenVPN客户端代码需要知道数据正在发送到B。所以,如果我理解正确的话,发生的事情是:
换句话说,它看起来确实像这样:
+------------------+
| |
| OpenVPN Server |<-----------------------+
| | |
+------------------+ |
^ ^ ^ |
| | . |
| | . |
| | .................. |
| | . |
v v v v
+------------------+ +------------------+ ..... +------------------+
| | | | . . | |
| OpenVPN Client | | OpenVPN Client | . . | OpenVPN Client |
| A | | B | . . | n |
+------------------+ +------------------+ ..... +------------------+
那是对的吗?我试图在文档中找到类似的内容,并且只能找到有关如何安装OpenVPN的信息(我们确实做到了,而且可以正常工作,但它看起来相当慢!比我预期的要慢得多。)
是的,OpenVPN客户端-服务器配置看起来像第二张图。隧道位于OpenVPN服务器和OpenVPN客户端之间。OpenVPN服务器解密来自一个隧道的数据并将其加密到另一个隧道。
您可以使用对等体系结构而不是客户端-服务器体系结构使用OpenVPN来实现第一个图。您需要为网络中的每对计算机设置一个VPN隧道:每个节点有n个VPN隧道,总共n²个隧道(这不太方便)。
您对正在发生的事情的分析大部分是正确的,只有一部分。公钥/私钥不(直接)用于对进出隧道的数据包进行加密/解密。相反,它们用于验证隧道并协商用于实际加密/解密(和MAC)的对称会话密钥。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句