虚拟专用网络的实现方法及客户端设备的制造方法

文档序号:9581590阅读:691来源:国知局
虚拟专用网络的实现方法及客户端设备的制造方法
【技术领域】
[0001] 本发明实施例涉及计算机技术,尤其涉及一种虚拟专用网络的实现方法及客户端 设备。
【背景技术】
[0002] 虚拟专用网络(VirtualPrivate化twork,简称VPN)是一条穿过公用网络的安 全、稳定的隧道。通过对网络数据的封包和加密传输,在一个公用网络建立一个临时的、安 全的连接,从而实现在公网上传输私有数据、达到私有网络的安全级别。常用的两种VPN技 术分别是基于传统网络安全协议的VPN技术和基于安全套接层(SecuritySocketLayer, 简称SSL)VPN技术,前者主要作用于网络层,而后者主要作用于应用层。SSLVPN是WSSL 为基础的VPN技术,它利用S化协议提供的基于证书的身份认证、数据加密和消息完整性验 证机制,为用户远程访问公司内部网络(W下简称内网)提供了安全保证。SSLVPN有多种 使用方式,其中3层SSLVPN使用的最为广泛。网络驱动包括传输层驱动接口灯ransport DriverInte;rface,简称TDI)驱动和网络驱动接 口规范(NetworkDriverInte;rface Specification,简称NDI巧驱动,其中,NDIS又可分为协议驱动、中间层驱动和网卡驱动。3 层SSLVPN需要安装客户端软件。在启动SSLVPN客户端(W下简称客户端)登录SSLVPN 网关(W下简称网关)之后,客户端与网关建立一条S化隧道,并从网关申请一个虚拟IP 地址,客户端对用户的操作系统进行配置,使得系统上的应用程序可W使用该虚拟IP地址 访问内网服务器。客户端截获使用虚拟IP地址的报文,将截获的报文通过之前建立的SSL 隧道转发到网关,由网关将送些报文转发给内网服务器。
[0003] 现有技术中,在安装客户端的时候在用户操作系统中新建一张虚拟网卡,平时该 虚拟网卡处于禁用状态。在启动客户端并登录网关时,客户端从网关申请到一个虚拟IP 地址,客户端启动该虚拟网卡并将申请到的虚拟IP地址设置为该虚拟网卡的地址。当有 进程通过该虚拟网卡访问内网服务器时,应用程序发送的数据经过驱动找向下发送数据, 最终发送到NDIS虚拟网卡驱动时,虚拟网卡接收上层驱动下发的报文,将报文提交给客户 端,客户端通过登录时建立的S化隧道将报文发送到网关,网关再将报文转发到内网服务 器上。
[0004] 现有技术的问题是,系统中的所有的进程都可W使用虚拟网卡,都可W访问内网 服务器,如果需要限制某些进程的访问则没有办法实现,且启动客户端时由于需要同时启 动虚拟网卡,客户端启动速度慢。

【发明内容】

[0005] 本发明实施例提供一种虚拟专用网络的实现方法及客户端设备,W解决现有技术 中不能实现对进程访问的控制,且启动客户端时由于需要同时启动虚拟网卡,客户端启动 速度慢的问题。
[0006] 第一方面,本发明实施例提供一种虚拟专用网络的实现方法,所述方法应用于基 于安全套接层协议的虚拟专用网络SSLVPN中,所述SSLVPN包括;客户端设备、网关和所 述SSLVPN的内网服务器,所述客户端设备通过网关与所述内网服务器通信,所述客户端 设备包括传输层驱动接口TDI驱动、网络驱动接口规范NDIS协议驱动、网络驱动接口规范 NDIS中间层驱动、网络驱动接口规范NDIS网卡驱动和客户端,所述方法包括:
[0007] 所述NDIS中间层驱动捕获应用程序向所述内网服务器发送的报文,根据所述报 文对应的进程标识号PID,判断是否允许所述报文对应的进程使用所述SSLVPN;
[0008] 若允许使用,则所述NDIS中间层驱动建立新报文,将所述新报文的目的地址设置 为所述应用程序所在的客户端设备的本机地址,将所述新报文的目的端口号设置为客户端 接收所述报文的端口号,将原所述报文的源网络互连协议IP地址修改为虚拟网络互连协 议IP地址,并将原所述报文作为所述新报文的载荷,将所述新报文提交给NDIS网卡驱动; 所述虚拟网络互连协议IP地址为所述客户端与所述网关建立安全套接层协议S化隧道后, 向所述网关获取到的虚拟网络互连协议IP地址;
[0009] 所述NDIS网卡驱动将所述新报文发送到所述客户端,由所述客户端向所述内网 服务器发送所述新报文。
[0010] 结合第一方面,在第一方面的第一种实现方式中,所述根据所述报文对应的进程 标识号PID,判断是否允许所述报文对应的进程使用所述SSLVPN,包括:
[0011] 获取所述报文的协议类型和端口号,根据协议类型、端口号和进程标识号PID的 映射关系确定所述报文对应的PID,根据所述PID判断是否允许所述PID对应的进程使用所 述S化VPN。
[0012] 结合第一方面、或第一方面的第一种实现方式,在第一方面的第二种实现方式中, 所述NDIS中间层驱动捕获应用程序向所述内网服务器发送的报文之前,还包括:
[001引所述TDI驱动获取发送报文的报文流的信息,所述信息包括协议类型、端口号和 进程标识号PID,将所述信息通知所述NDIS中间层驱动,所述NDIS中间层驱动存储所述信 息的映射关系。
[0014] 结合第一方面、或第一方面的第一、第二种实现方式,在第一方面的第H种实现方 式中,所述根据所述报文对应的进程标识号PID,判断是否允许所述报文对应的进程使用所 述SSLVPN之前,还包括:
[0015] 所述客户端在所述NDIS中间层驱动中设置是否允许所述报文对应的进程使用所 述SSLVPN的进程标识号PID。
[0016] 结合第一方面、或第一方面的第一至第H任一种实现方式,在第一方面的第四种 实现方式中,还包括:
[0017] 所述客户端接收到所述网关转发的所述内网服务器的报文,将所述报文的目的地 址改为所述客户端所在客户端设备的本机地址,通过原始套接字RawSocket接口发送所述 报文到NDIS协议驱动,由所述NDIS协议驱动转发到对应的应用程序。
[0018] 第二方面,本发明实施例提供一种客户端设备,应用于基于安全套接层协议的虚 拟专用网络SSLVPN中,所述SSLVPN包括;客户端设备、网关和所述SSLVPN的内网服务 器,所述客户端设备通过网关与所述内网服务器通信,所述客户端设备包括传输层驱动接 口TDI驱动、网络驱动接口规范NDIS协议驱动、网络驱动接口规范NDIS中间层驱动、网络 驱动接口规范NDIS网卡驱动和客户端,所述NDIS中间层驱动,用于捕获应用程序向所述内 网服务器发送的报文,根据所述报文对应的进程标识号PID,判断是否允许所述报文对应的 进程使用所述SSLVPN;
[0019] 若允许使用,则建立新报文,将所述新报文的目的地址设置为所述应用程序所在 的客户端设备的本机地址,将所述新报文的目的端口号设置为客户端接收所述报文的端口 号,将原所述报文的源网络互连协议IP地址修改为虚拟网络互连协议IP地址,并将原所述 报文作为所述新报文的载荷,将所述新报文提交给NDIS网卡驱动;所述虚拟网络互连协议 IP地址为所述客户端与所述网关建立安全套接层协议S化隧道后,向所述网关获取到的虚 拟网络互连协议IP地址;
[0020] 所述NDIS网卡驱动,用于将所述新报文发送到所述客户端,由所述客户端向所述 内网服务器发送所述新报文。
[0021] 结合第二方面,在第二方面的第一种实现方式中,所述NDIS中间层驱动,具体用 于:
[0022] 获取所述报文的协议类型和端口号,根据协议类型、端口号和进程标识号PID的 映射关系确定所述报文对应的PID,根据所述PID判断是否允许所述PID对应的进程使用所 述S化VPN。
[0023] 结合第二方面、或第二方面的第一种实现方式,在第二方面的第二种实现方式中, 所述TDI驱动,用于获取发送报文的报文流的信息,所述信息包括协议类型、端口号和进程 标识号PID,将所述信息通知所述NDIS中间层驱动,所述NDIS中间层驱动存储所述信息的 映射关系。
[0024] 结合第二方面、或第二方面的第一、第二种实现方式,在第二方面的第H种实现方 式中,所述客户端,用于在所述NDIS中间层驱动中设置是否允许所述报文对应的进程使用 所述SSLVPN的进程标识号PID。
[0025] 结合第二方面、或第二方面的第一至第H任一种实现方式,在第二方面的第四
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1