您的当前位置:首页正文

在XP上分离VPN和公网流量

来源:步旅网
在XP端分离VPN和外网流量

Author:毛毛雨:AM 2010-4-15

在XP端分离VPN和外网流量

现在很多上了公司内部VPN之后,所有流量都走VPN,导致无法同时上外网,当然,在VPN Server端是可以做VPN隧道分离,也可以在VPN Server端做NAT,或者因为安全问题,但是基本上都没有做,或者因为懒的原因,什么原因不在讨论之列,我以Cisco ezvpn为VPN Sever,XP端使用Cisco VPN Client为例,给出一个在XP端分离VPN流量和外网流量的方法。其他的第三方vpn的xp端流量分离可依照这个原理来实施。

原理图如下(xp端必须得两块网卡,一块是不行的,看完就知道是为什么了)

实验top如下:

说明:用dy模拟一台Router桥接到XP上的vm网卡(loop口也行),在VM里虚拟一个XP,桥接到路由器桥接的那块vm网卡上,也就是说router的以太口和vm里的xp网卡是在同一子网,并在虚拟XP上安装Cisco VPN Client软件。在虚拟XP里再添加一块网卡,桥接到另一块vm网卡上,这样虚拟的xp就有两块网卡了。为什么不直接在本机做呢?原因稍后解释。

Ezvpn Server端关键配置: aaa new-model

aaa authentication login default local aaa authentication login noacs line none aaa authentication login mylogin local aaa authorization exec default local

aaa authorization network myauthor local !

username abc privilege 15 password 0 abc !

crypto isakmp policy 1 encr 3des

authentication pre-share group 2 !

Page 1 of 4

在XP端分离VPN和外网流量

Author:毛毛雨:AM 2010-4-15

crypto isakmp client configuration group ezvpn key ros911 pool ezpool save-password !

crypto ipsec transform-set myset esp-3des esp-sha-hmac !

crypto dynamic-map mydyna 1 set transform-set myset reverse-route !

crypto map mymap client authentication list mylogin crypto map mymap isakmp authorization list myauthor crypto map mymap client configuration address respond crypto map mymap 1 ipsec-isakmp dynamic mydyna !

interface Loopback0

ip address 172.16.1.1 255.255.255.0 !

interface Ethernet0/0

ip address 202.1.1.1 255.255.255.0 half-duplex

crypto map mymap !

ip local pool ezpool 172.16.0.1 172.16.0.10 line con 0

login authentication noacs

Page 2 of 4

在XP端分离VPN和外网流量

Author:毛毛雨:AM 2010-4-15

Cisco VPN Client设置如下:

Vm里的虚拟xp的非vpn走的那块网卡,把属性中的Deterministic Network Enhancer去掉,这个简称DNE。

DNE在windows下面是一个多线程的NDIS兼容模块,以网络设备驱动程序的方式出现,它支持差不多所有的网络接口类型(如LAN、WAN、USB等),在协议栈中工作于NDIS层之下,提供截获、修改、插入数据包的API接口。许多厂商的vpn client都基于DNE进行开发,包括cisco、3com、lucent、nokia等厂商的vpn client中都使用到了dne技术,在ISS的部分安全产品中这使用到了这个模块。dne并不直接提供应用层的功能。

在xp下没有acl来抓取流量走vpn,就是通过DNE来实现的。所以这里把另一块用作去公网的网卡上的DNE去掉。(这里感谢红盟群里的宋工,是他提醒了我)。

不在本机做的原因就在这里,不管是vm的虚拟网卡还是MS的loopback都是没有DNE的,所以vpn的流量在这些网卡上不能被抓入vpn隧道。而在vm虚拟的xp里的两块网卡都被认为是物理网卡,打开属性是可以看到DNE的。

Page 3 of 4

在XP端分离VPN和外网流量

Author:毛毛雨:AM 2010-4-15

拨通VPN 之后,网关指向172.16.0.7,route print如下:

====================================================================== Active Routes:

Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 172.16.0.7 172.16.0.7 1 。。。。。。。。。。

192.168.128.0 255.255.255.0 192.168.128.130 192.168.128.130 10 192.168.128.0 255.255.255.0 172.16.0.7 172.16.0.7 10 。。。。。。。。。。

Default Gateway: 172.16.0.7

执行以下命令删除默认路由,删除192.168.128.0/24走vpn口的路由,加上默认路由指向正确的外网网关192.168.128.1 Route delete 0.0.0.0

route delete 192.168.128.0 mask 255.255.255.0 172.16.0.7 route add 0.0.0.0 mask 0.0.0.0 192.l68.128.1

之后的route print变成:

======================================================================Active Routes:

Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.128.1 192.168.128.130 1 。。。。。。。

192.168.128.0 255.255.255.0 192.168.128.130 192.168.128.130 10 。。。。。。。。

Default Gateway: 192.168.128.1

这时,VPN流量正常,且去外网的流量也是正确的。

如果不想用两块网卡,当然也可以用VM,在VM里跑VPN,本机跑外网。

Author:毛毛雨:AM

2010-4-15

Page 4 of 4

因篇幅问题不能全部显示,请点此查看更多更全内容