Mr.Chan

导航

针对并行访问Internet和Intranet的分割隧道功能

本页内容
使用“无分类静态路由DHCP”选项 使用“无分类静态路由DHCP”选项
使用Windows Server 2003的连接管理器管理工具包 使用Windows Server 2003的连接管理器管理工具包
分割隧道的安全问题 分割隧道的安全问题
更多信息 更多信息

当基于Windows的VPN客户端建立VPN连接时,将自动添加一个用于该VPN连接的新的默认路由,并修改指向Internet的现有默认路由,使其具有更高的量度。添加新的默认路由意味着,除了VPN服务器的IP地址之外的Internet位置在该VPN连接有效期内是不可达的。

为防止创建新的默认路由,您可以在VPN连接属性的网络选项卡上选择Internet协议(TCP/IP),单击属性,然后单击高级。 在高级TCP/IP设置常规选项卡上,清除使用远程网络上的默认网关复选框,如下图所示。

cg100301

使用远程网络上的默认网关复选框被清除时,就不会再创建默认路由了;然而,这样做会创建一个对应于所已分配的IP地址的基于Internet地址类的网络ID的路由。例如,如果在连接有效期内分配的地址是10.0.12.119,Windows 2000、Windows XP和Windows Server 2003 VPN客户端将为子网掩码为255.0.0.0的基于类的网络ID 10.0.0.0创建一个路由。

基于使用远程网络上的默认网关设置,当VPN连接处于活动状态时,将发生以下情况之一:

使用远程网络上的默认网关复选框被清除时,Internet位置可达,而intranet(企业内联网)位置不可达(那些与已分配的IP地址的Internet地址类的网络ID相匹配的intranet地址除外)。

使用远程网络上的默认网关复选框被选中时(默认设置),所有intranet位置都可达,而Internet位置不可达(VPN服务器的地址和通过其他路由器可用的位置除外)。

对于大多数通过Internet来连接的VPN客户端,这种行为并不表示存在任何问题,因为通常它们要么参与intranet通信,要么参与Internet通信,但是不会同时参与这两种通信。

为了使VPN客户端能够在VPN连接处于活动状态的情况下并行访问intranet和Internet,您可以执行以下操作之一:

选中使用远程网络上的默认网关复选框,并允许通过组织的intranet访问Internet。

VPN客户端和Internet主机之间的Internet流量可穿过组织的防火墙或代理服务器,似乎就像该VPN客户端与组织的intranet建立了物理连接一样。虽然这样在访问Internet资源方面可能存在性能影响,但是这种方法允许在VPN客户端连接到组织网络的时候,根据组织网络策略来过滤和监控Internet访问。例如,如果组织的Web代理服务器阻塞了对某些类型的Web站点的访问,那些Web站点也会在VPN客户端连接到组织网络的时候被阻塞。

如果您的intranet中的寻址方式基于单个基于类的网络ID,则应清除使用远程网络上的默认网关复选框。

例如,如果您的intranet仅使用专用IP地址空间:10.0.0.0/8,那么连接VPN客户端将自动创建一个通过该VPN连接的10.0.0.0/8路由,使得组织intranet上的所有位置都可达。

如果您的intranet中的寻址方式不是基于单个基于类的网络ID,则应清除使用远程网络上的默认网关复选框,并使用以下解决方案之一:

“无分类静态路由DHCP”选项

面向Windows Server 2003的连接管理器管理工具包

VPN客户端上的一个CMD文件

使用这些方法来提供对intranet位置的显式路由称为分割隧道(split tunneling)。

使用“无分类静态路由DHCP”选项

基于Windows 2000、Windows XP和Windows Server 2003的VPN客户端向VPN服务器发送一条DHCPInform消息,请求一组DHCP选项。这样做是为了让VPN客户端能够获得DNS和WINS服务器的更新列表,以及获得一个分配给该VPN连接的DNS域名。DHCPInform消息由VPN服务器转发到组织intranet上的一个DHCP服务器,相应的响应将发回VPN客户端。

基于Windows XP和Windows Server 2003的VPN客户端在其所请求的DHCP选项列表中包括一个“无分类静态路由DHCP”选项。如果在DHCP服务器上进行配置,“无分类的静态路由DHCP”选项将包含一组代表intranet地址空间的路由。这些路由将在请求客户端接收到DHCPInform消息的响应时,自动添加到该客户端的路由表,并在VPN连接终止时自动被删除。

“Windows Server 2003 DHCP服务器”服务支持“无分类静态路由DHCP”选项配置(选项编号:249)。下图显示“DHCP”插件中的选项。

为了将“无分类静态路由DHCP”选项应用于分割隧道,您需要为对应于VPN客户端所连接的intranet子网的范围配置这个选项。接着添加对应于组织intranet的汇总地址空间的路由集。例如,如果您对组织的intranet使用专用IP地址空间,“无分类静态路由DHCP”选项将具有以下三个路由:

10.0.0.0,子网掩码为255.0.0.0

172.16.0.0,子网掩码为255.240.0.0

192.168.0.0,子网掩码为255.255.0.0

添加到“无分类静态路由DHCP”选项的每个路由的路由器IP地址,应该设置为VPN服务器所连接到的intranet子网上的一个路由器接口的IP地址。例如,如果VPN服务器连接到intranet子网10.89.211.0/24,这个子网上的intranet路由器的IP地址为10.89.21.1,那就应该将每个路由的路由器IP地址设置为10.89.21.1。

使用Windows Server 2003的连接管理器管理工具包

您可以使用Windows Server 2003的连接管理器管理工具包,把特定的路由作为分发给VPN客户端的连接管理器配置文件的一部分来配置。在“连接管理器管理工具包”的路由表更新页面上,您可以:

包括一个文本文件,其中包含用于汇总组织intranet的地址空间的路由集。

为组织intranet上的一个文本文件的位置指定一个统一资源定位符(URL),这个文本文件对VPN客户端是可达的,并且包含用于汇总组织intranet地址空间的最新路由集。

您可以同时执行这两个步骤,这时配置文件中包括的文本文件中的路由将首先被应用,然后再应用指定的URL处的文本文件中的路由。

下图显示了路由表更新页面。

要添加或删除路由,配置文件中包括的以及位于指定URL处的两种版本的路由文本文件的内容都包含以下命令(与Route命令使用相同的语法):

Command Destination mask Netmask default metric default if default

其中

Command表示添加(添加一个路由)或删除(删除一个路由)。

Destination表示该路由的网络ID。

Netmask表示子网掩码,对应于定义网络ID的Destination

在路由文本文件的大多数命令中使用default作为网关、量度和接口参数的推荐值。当使用default时,在创建路由时将使用来自VPN客户端的正确值。有关使用除default之外的其它值的更多信息,请参见Windows Server 2003“帮助和支持中心”内名为“包含路由表更新”的主题。

路由文本文件支持的另一个命令是remove_gateway,用于删除默认网关。 remove_gateway命令没有其它参数。

例如,为了给专用网络地址空间添加路由,路由文本文件将包含以下内容:

add 10.0.0.0 mask 255.0.0.0 default metric default if default

add 172.16.0.0 mask 255.240.0.0 default metric default if default

add 192.168.0.0 mask 255.255.0.0 default metric default if default

注意:如要添加路由,VPN客户端用户帐户必须拥有本地管理员特权。

使用VPN客户端上的CMD文件

命令文件(.CMD)也称为批处理文件,其在建立VPN连接之后被创建并运行于VPN客户端计算机。命令文件包含一系列路由命令,这些命令为VPN客户端所连接的组织intranet添加路由。路由命令使用在连接VPN客户端时由VPN服务器动态分配的IP地址作为网关IP地址。因此,您必须设计自己的命令文件以允许在运行命令文件时把动态分配的IP地址当作参数。

例如,为了给专用网络地址空间添加路由,Example.cmd将使用以下内容进行创建:

route add 10.0.0.0 mask 255.0.0.0 %1

route add 172.16.0.0 mask 255.240.0.0 %1

route add 192.168.0.0 mask 255.255.0.0 %1

如要正确地运行这个命令,VPN客户端用户必须首先确定分配给VPN连接的IP地址。 这可以通过从命令行运行ipconfig,或者在VPN连接处于活动状态时在“网络连接”文件加中双击该VPN连接来完成。在随后打开的状态对话框中,单击详细信息选项卡。分配给VPN客户端的IP地址在其中作为客户端IP地址列出。下图显示了一个示例。

在确定分配给VPN客户端的地址之后,Example.cmd文件将使用该IP地址作为参数来执行。例如,对于分配了IP地址192.168.99.211的VPN客户端,命令行上的命令将为:

example 192.168.99.211

您也可以使用其他方法(比如:Visual Basic),以编程方式获得分配给VPN客户端的IP地址并添加路由。

注意: 如要添加路由,VPN客户端用户帐户必须拥有本地管理员特权。

分割隧道的安全问题

当VPN客户端计算机同时连接到Internet和专用intranet,并具有同时允许对两个网络的可达性的路由时,恶意Internet用户可能会利用已连接的VPN客户端计算机,通过经过身份验证的VPN连接来访问专用intranet。如果VPN客户端计算机启用了IP路由,就有可能发生这种情况。在基于Windows XP的计算机上,通过将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip \Parameters\IPEnableRouter注册表项设置为1(数据类型:REG_DWORD)来启用IP路由。

如果必须使用分割隧道功能,您可以采取以下措施来帮助防止来自Internet的有害流量:

使用Windows Server 2003中的“网络访问隔离控制”特性来检查连接客户端是否启用了IP路由,如果已经启用了,则将一直不允许VPN访问,直至IP路由被禁用为止。有关更多信息,请参见网络访问隔离控制(Cable Guy于2001年3月发表的文章)。

对VPN远程访问策略配置文件使用IP数据包过滤器,以便同时丢弃VPN连接上不是由VPN客户端发送的传入流量和不是发送到VPN客户端的传出流量。Windows Server 2003中名为对Microsoft路由和远程访问服务器的连接的默认远程访问策略默认已经配置了这些数据包过滤器。

注意:如果恶意Internet用户正在远程控制VPN客户端计算机,使用上面的方法就无法防止有害流量。为防止这种情况发生,您需要确保VPN客户端计算机启用了防火墙(比如:Windows XP中的Internet连接防火墙),并且安装了反病毒程序和最新的病毒签名文件。在使用“网络访问隔离控制”时,还有其他一些可供检查和强制实施的设置。

posted on 2005-05-25 22:17  cunshen  阅读(760)  评论(0)    收藏  举报