CheckPoint SSL VPN 连接后无法访问己方内网的解决

来源:互联网 发布:catia软件介绍视频 编辑:程序博客网 时间:2024/05/16 14:08
<script type="text/javascript"><!--google_ad_client = "pub-5143338080895292";/* 728x90, created 4/10/08 */google_ad_slot = "6675122003";google_ad_width = 728;google_ad_height = 90;//--></script> <script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
作者声明:
VPN客户端是出于安全考虑而将原来内网隔离。此解决方法可能会带来安全隐患,使用前请做出厉害关系判断。作者不承担任何直接或连带责任。
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

新公司的SSL VPN连接后无法访问己方内网 ,有时候会引起颇多不便。分析后发现CheckPoint SSL VPN客户端是通过修改本机上的路由表来达到隔离原内网的功能。那么相应地,我们也可以通过Windows 自带的route命令来添加相应的路由达到访问原来内网的目的。

问题现象

作者使用Windows XP Pro SP2,在使用CheckPoint SSL VPN客户端连接到某一客户的网络后无法再访问本地内网及自己公司的其他资源。代理服务器和Exchange服务器甚至本地的dafault gateway等都对ping做出Request timed out回应。


问题分析

根据route print(查看本机路由表的命令)的输出对比了VPN连接前后的路由表后发现,CheckPoint VPN客户端是通过修改本机路由表来达到网络隔离的目的。

一台电脑的路由表和路由器上的路由表一样,决定着本地产生的数据包应如何路由,或者说应该选择一条什么样的路径发送到外部网络。如果相应的目标IP不在路由表中,正常情况下机器会将这些数据包发送到配置的默认网关(一般是路由器)上,由它来决定这个数据包应往何处发送。

而CheckPoint VPN客户端所安装的虚拟网卡并没有配置默认网关,因此,如果相应的目标IP不在路由表中,数据包将被丢弃处理。

解决方案

如果需要在VPN连接后访问自己网络中的某一台机器,可以使用route add命令添加一条相应的路由到路由表中。route add命令的相应格式为:


route add target_IP mask netework_mask default_gateway metric metric_num IF IF_num


其中:
target_IP: 你想要连接的目标IP地址或者是网段的地址
network_mask:目标IP的网络掩码。如果target_IP是一台主机,network_mask则使用255.255.255.255
default_gateway:在这里应该是你自己物理网卡的IP地址
metric_num:路由优先级。数字越小优先级越高。这里用1
IF_num:网络接口(Interface)号码

其中可以使用ipconfig命令获取本机的IP地址,也就是这里的default_gateway参数。

IF_num一般是2 (1是lookback接口,2一般为物理网卡接口),可以使用route print命令查看/验证:

下面是一个route print命令的输出(我的Dell 620,无VPN连接):


    H_Documents and Settings_bsdplus>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
   这个是loopback接口,对应1
0x2 ..
.00 18 8b c4 82 b3 ...... Broadcom NetXtreme 57xx Gigabit Controller - Pac
ket Scheduler Miniport
  这个是我的物理网卡,对应的IF编号为2
0x3 ..
.00 19 d2 c9 e9 85 ...... Intel(R) PRO/Wireless 3945ABG Network Connection
 - Packet Scheduler Miniport
0x4 ..
.54 55 43 44 52 12 ...... Check Point Virtual Network Adapter For SSL Netw
ork Extender - Packet Scheduler Miniport   这个就是CheckPoint虚拟网卡
0x10006 ..
.00 16 41 b7 da 26 ...... Bluetooth Device (Personal Area Network)
===========================================================================

以下为路由表:
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          
0.0.0.0          0.0.0.0      192.168.1.1   192.168.1.101       30
        
127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      
192.168.1.0    255.255.255.0    192.168.1.101   192.168.1.101       30
    
192.168.1.101  255.255.255.255        127.0.0.1       127.0.0.1       30
    
192.168.1.255  255.255.255.255    192.168.1.101   192.168.1.101       30
        
224.0.0.0        240.0.0.0    192.168.1.101   192.168.1.101       30
  
255.255.255.255  255.255.255.255    192.168.1.101               2       1
  
255.255.255.255  255.255.255.255    192.168.1.101   192.168.1.101       1
  
255.255.255.255  255.255.255.255    192.168.1.101           10006       1
  
255.255.255.255  255.255.255.255    192.168.1.101               4       1
Default Gateway:       
192.168.1.1
===========================================================================
Persistent Routes:
  None

关于target_IP和network_mask参数,你需要自己获得。如果是某一天特定的主机,你可以通过 "ping 主机名" 命令获得,这时的network_mask就是255.255.255.255。

比如你想要连接到一个IP地址为 100.200.222. 123,你自己的物理网卡IP地址为200.200.200.200,物理网卡的interface编号为2,则相应的命令为:


route add 
100.200.222.123 mask 255.255.255.255 200.200.200.200 metric 1 IF 2