20.14 VPN
过去几年中最有意思的发展之一就是VPN(virtual private network,虚拟私用网络)的出现。这项技术之所以成为可能,主要归功于现在已经提高了的,可以在一个芯片(或者在用户的工作站)上提供的处理能力。VPN最简单的形式是一条连接,这条连接让远程网络看上去仿佛就是直接连接的一样,哪怕它在物理上隔着千山万水,跨越了许多台路由器。为了提高安全性,这条连接不但以某种方式进行了验证(通常用像口令这样的一个“共享秘密”),而且还对端到端的流量做了加密处理。这样的编排通常称为“安全隧道”。
下面的这个例子就是一种体现了VPN方便之处的场合:假定有家公司在芝加哥、布德(译者注:作者工作的学校—科罗拉多大学的所在地)和迈阿密都有办事处。如果每个办事处都有一条到本地ISP的连接,那么这家公司就可以用VPN通过不可信的Internet把三地的办事处(而且在极大程度上是安全地)连接起来。这家公司可以租用连接三地办事处的专线来达到相同的效果,但是那样一来成本就太高了。
雇员在家远程办公的公司是另一个比较好的例子。VPN可以让那些用户既享受到高速和廉价电缆调制解调器(cable modem)服务的好处,又能让他们觉得仿佛是直接连接到了企业网。
因为这一功能的方便性和普及性,所以几乎所有的商家都能提供某种VPN的解决方案。您可以从路由器厂商那里把VPN当作是操作系统的一个插件,或者甚至是作为给您网络的一种专门VPN设备来购买它。根据预算和扩展性的需要不同,您可能会考虑市场上多种商业VPN解决方案的某一种。
如果没有预算,而又要找到一种能迅速解决问题的方案,那么SSH可以实现安全的隧道技术。在正常情况下,SSH用于提供“每次一个端口”的连接,但是它也能像12.13.9节里给出的例子那样提供伪VPN功能,就是在一条SSH隧道上运行PPP。
20.14.1 IPsec隧道
如果您热衷于IETF的标准(或者热衷于省钱),又确实需要VPN解决方案,那么应该考虑一下IPsec(Internet Protocol SECurity)。IPsec最初是为IPv6开发的,但是它已经广泛为IPv4所实现。IPsec是一种由IETF批准的端到端验证和加密系统。几乎所有重要的VPN厂商都提供至少一种兼容IPsec模式的产品。
IPsec使用强加密技术,提供验证和加密服务。验证确保了包来自正确的发送方,在传送途中不会被篡改,而加密则防止未经授权对包的内容进行研究。
IPsec目前的形式加密的是传输层的包头,它包括源和目的端口号。可惜这种方法和大多数防火墙的工作原理直接冲突。IETF正在制订一项建议来取消这一功能。
2.5.47及以后版本的Linux内核都自带一个IPsec实现,它和2.4版内核所采用的FreeS/WAN实现完全不同。因为IPsec是内核的一个组成部分,所以在我们所举例的所有Linux发行版本中都带有IPsec。
注意,围绕IPsec隧道和MTU大小有一个难题。保证IPsec一次就把整个包加了密,而在隧道通过的路径上没有什么会对包进行分片是很重要的。为了做到这一点,可以降低隧道之前设备的MTU(在现实世界里,1400字节通常就行了)。参考12.3.1节,了解有关MTU大小的更多信息。
20.14.2 VPN够用吗
可惜VPN也有不好的一面。虽然它们的确在两个端点之间不可信的网络中提供了一条(大多是)安全的隧道,但是它们往往没有解决端点本身的安全问题。例如,如果您在企业主干和CEO(首席执行官)的家之间建立了一条VPN连接,您可能也会无意中为CEO(首席执行官)15岁的女儿建立了一条直接访问您的网络上任何地方的途径。她可能只会用她新得到的接入来和送货的伙计约会。
底线:您需要把VPN隧道连接当作外部连接来对待,只有在绝对必要,并且经过了认真考虑之后才赋予它们更多的权利。您可能想要考虑给您的网点安全策略中增加一个特殊的部分,这部分介绍对VPN连接应用什么样的规则。
| 回书目 上一节 下一节 |