您所在的位置: 首页>>读书频道>>操作系统>>Linux>>

20.14 VPN

http://book.51cto.com  2008-04-24 11:38  [美]Evi Nemeth Garth Snyder Trent R.Hein  人民邮电出版社  我要评论(0)

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连接应用什么样的规则。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
深入Vista应用程序开发
Hyper-V 虚拟化技术专题
重复数据删除技术
2008年上半年IT技术图书阅读排行大盘点
汶川大地震 IT技术人在行动
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有