有什么select可用于保护半私人networking内的数据传输?

更具体地说,我打算build立一个负载均衡的电子商务网站。 这两个负载均衡器将接受来自pipe道的https连接,然后就像ssl的性质一样,他们需要validation连接,将其解密,然后将UNencryption的请求转发到应用程序服务器。

在一个安全的私人networking,这将是一切都很好,但是我想运行这个设置与虚拟机(切片主机)。 理论上,机器应该在专用networking上,但是另一个人(切片)可能以某种方式窥探networking中的stream量是可行的。 我需要假设networking不安全。

所以。 我曾经想过使用ssh,而有人build议我使用VPN(我之前没有设置,并且不太了解)。 如果我使用ssh,我需要不断监视连接并确保连接。

我想我想知道其他人在做什么?

越复杂越好(即可能出错和需要监控的东西越less)

这是一个Linux设置。 我正在考虑使用英镑负载平衡器。 仍然需要做一些testing,在这方面的事情。 也开始阅读nginx了。

这听起来像是对我来说IPSEC的工作。

IPSEC被“烘焙”到现代Linux发行版中。 对于应用程序层而言是完全透明的,并且“正常工作”。 我会去那个需要保持私密的机器内通信路线。

使用预共享密钥的“主机到主机”IPSECconfiguration非常简单。 例如在CentOS中,已经有一种方法可以将这些主机到主机的连接configuration为正常的“networking脚本”function的一部分(见http://www.centos.org/docs/4/4.5/Security_Guide/ s1-ipsec-host2host.html )。

根据您使用的Linux的分布,configuration可能非常容易,或者您可能需要做一些工作。 你不需要任何VPN启动/closures脚本,隧道监控脚本等 – 它将在第3层“只是工作”。对我来说,听起来像是一个成功的解决scheme。

编辑:

我经常使用OpenVPN,所以在这里我没有对OpenVPN进行“解散”,但作为解决您的特定问题的解决scheme,我认为这是次优的,原因如下(按照我的关注程度sorting):

  • 它创build了一个并行networking基础架构 您必须确保您的主机内通信使用正确的目标IP地址,以便通信通过VPN,而不是公用IPnetworking。 如果您打算使用DNS名称,这可能会特别有趣,因为您需要对DNS执行一些操作(创buildhostA-secure,hostB-secure等主机名,或者创build一个始终返回DNS的“视图”如果查询来自“安全”主机,则为“安全”IP地址),以确保将名称parsing为“安全”VPN IP。

  • OpenVPN是点对点的。 您需要configuration一个OpenVPN隧道网格,或通过单个主机路由OpenVPNstream量“集线器和辐条”。 IPSEC是完全对等的,您可以使用IPSEC和dynamic密钥轻松configuration网状拓扑。 使用预共享密钥function可以做更多工作,但是您也可以通过这种方式来configuration网状拓扑结构。

  • OpenVPN是一个需要启动的用户级程序。 这不是一个大问题,但是IPSEC居住在内核空间,只要configuration好就可以启动任何用户级程序。

我不明白为什么人们会认为IPSEC是非常难以configuration的。 拥有预共享密钥的IPSEC在现代发行版中可以像使用静态密钥的OpenVPN一样容易地configuration(如果不是更多,通常是您的发行版自动启动/停止)。 具有dynamic密钥的IPSEC,使用PKI,几乎需要使用基于证书的身份validation来configurationOpenVPN。

使用第二组IP地址创build并行networking拓扑的OpenVPN的复杂性将成为我的杀手。 我希望我的主机能够使用相同的IP地址进行通信,以便与不安全的通信进行通信,“自动”透明地encryption彼此之间的连接。

编辑2:

对于海报的描述,我认为IPSEC听起来是最好的解决scheme(由于我上面描述的原因)。 如果海报正在讨论与其他操作系统的互操作性,而不仅仅是为了保护一些主机之间的通信,我会特别推荐OpenVPN。

我同意,将各种Linux IPSEC实现与其他任何东西进行互操作都很困难(实际上,几乎所有的IPSEC与几乎任何其他的IPSEC实现都是互操作的)。 我已经设法让Cisco PIX到OpenSWAN隧道工作,并且我已经在Windows机器的静态密钥隧道方面取得了一些成功。 我甚至从来没有碰过任何Juniper的设备,所以我根本无法说话。

我用过OpenSWAN(实际上是FreeSWAN),我同意这个文档很难。 由于RedHat“select”了KAME工具来pipe理Linux 2.6内核IPSEC堆栈,我已经停止了关注OpenSWAN。 在过去的几年里,我需要主机到主机的IPSEC(在RHEL或CentOS上 – 我真正在Linux世界中工作)的几次,KAME工具都做得很好。 我一直在使用RHEL的“官方”文档和KAME项目网站的文档。

OpenVPN是IPSEC的一个非常好的和简单的“替代”。 OpenVPN是一个全function的开源SSL VPN解决scheme,存在于用户空间中。 多平台(windows,linux,osx ..)包括所有主要的Linux发行版。

示例设置:

首先我们生成静态密钥(不安全但简单):

$ openvpn --genkey --secret static.key 

(通过scp将此密钥复制到您的客户/服务器)

configuration服务器(/etc/openvpn/server.conf)

 dev tun ifconfig 10.8.0.1 10.8.0.2 secret static.key keepalive 10 60 ping-timer-rem persist-tun persist-key 

configuration客户端(/etc/openvpn/client.conf)

 remote myserver.address.com dev tun ifconfig 10.8.0.2 10.8.0.1 secret static.key keepalive 10 60 ping-timer-rem persist-tun persist-key 

确保在服务器上打开UDP端口1194。

在客户端/服务器上运行:

 # server openvpn --config /etc/openvpn/server.conf # client openvpn --config /etc/openvpn/client.conf 

要validationVPN是否正在运行,您应该能够从服务器ping 10.8.0.2,从客户端ping 10.8.0.1。

对于一个简单的自我监控ssh隧道,我使用autossh 。 但请记住,吞吐量高可能需要花费时间来configuration一个完整的VPN,因为ssh在大量的stream量上performance不佳。