有时,人们不得不使用未内置非本地连接安全功能的软件。事实上,一些客户端库会通过网络以明文形式发送凭据。另一方面,这些应用程序可能功能强大,并且能够很好地完成其任务 - 因此几乎没有理由替换它们。
如何保护集群内节点之间的“不安全”连接,并向实际应用程序隐藏这些隧道?它会以何种方式影响小型请求/响应或大型请求/响应的性能?需要做出哪些权衡?
请注意:我对 Linux 世界还比较陌生,我想了解更多有关保护环境等方面的信息。当我阅读一篇关于一些早期版本的 NoSQL 数据库的安全功能的论文时,上述问题浮现在我的脑海中。安全漏洞的一个例子是凭据以明文形式通过网络发送,以及节点之间的所有数据。所以我想知道如何使用这种有价值的技术,即使它缺乏一些内置的安全功能。
问候,Ems
答案1
你真正需要做的是通过某种专用网络发送流量。建立自己的专用广域网确实非常昂贵,因此如果我们能以某种方式利用互联网,那就太好了……但是,专用网络不是物理网络,而是“虚拟”网络。事实上,这听起来像是一个非常时髦的产品名称……“虚拟专用网络”。你可以用一个朗朗上口的缩写“VPN”让它更适合营销。如果有人有已经想到了...
答案2
查看 SSH 隧道。您可以通过它们传输任何类型的网络连接,使用基于密钥的身份验证来消除密码,并在启动时编写它们的构造脚本。此外,SSH 是免费的。除非您需要完整的 L2 隧道(听起来您不需要),否则不需要更复杂的东西。
例如:
ssh -L8080:server.example.com:80 otherendpoint.example.com
会将您本地机器上的端口 8080 转发到 server.example.com 上的端口 80,通过加密的 SSH 隧道转发到 otherendpoint.example.com(也可能是 server.example.com)。只需告诉您的应用程序使用“localhost:8080”作为另一个端点,它甚至不会知道其中的区别。