选择区域语言: EN CN HK

11-安全配置指导

12-SSL VPN配置

本章节下载  (676.06 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/SR_Router/SR6600-X/Configure/Operation_Manual/H3C_SR6600_SR6600-X_CG-R7607-6W101/11/201705/992985_30005_0.htm

12-SSL VPN配置


1 SSL VPN

说明

设备缺省可以支持15个SSL VPN用户同时上线,如果用户需要增加设备支持的SSL VPN用户数,需要安装License。卸载License后,设备支持的SSL VPN用户数将恢复缺省值。关于License的详细介绍请参见“基础配置指导”中的“License管理”。

 

1.1  SSL VPN简介

SSL VPN是以SSL(Secure Sockets Layer,安全套接字层)为基础的VPN(Virtual Private Network,虚拟专用网络)技术。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,能够为应用层之间的通信建立安全连接。

目前SSL协议已被集成到大部分的浏览器(如Internet Explorer浏览器)中,这就意味着几乎任意一台装有浏览器的计算机都支持SSL连接。通过这些浏览器访问Web接入方式下的资源时不需要安装额外的客户端软件。如果用户要访问TCP接入方式下和IP接入方式下的资源,则用户需运行SSL VPN客户端专用软件。

SSL VPN可以为企业或机构提供安全、快捷的远程网络接入服务,并适合移动接入。企业员工可以使用移动客户端在任意能够访问互联网的位置安全地接入到企业内部网络,访问内部网络的共享资源。

1.1.1  SSL VPN工作机制

图1-1所示,SSL VPN的工作机制为:

(1)     管理员登录SSL VPN网关,在SSL VPN网关上创建与企业网内服务器对应的资源。

(2)     远程接入用户与SSL VPN网关建立HTTPS连接,通过SSL提供的基于证书的身份验证功能,SSL VPN网关和远程接入用户可以验证彼此的身份。

(3)     远程接入用户输入用户名、密码等身份信息,SSL VPN网关对用户的身份进行认证,并对用户可以访问的资源进行授权。

(4)     用户获取到可以访问的资源,通过SSL连接将访问请求发送给SSL VPN网关。

(5)     SSL VPN网关将资源访问请求转发给企业网内的服务器。

(6)     SSL VPN网关接收到服务器的应答后,通过SSL连接将其转发给用户。

图1-1 SSL VPN示意图

 

1.1.2  SSL VPN典型组网

SSL VPN的典型组网方式主要有两种:网关模式和单臂模式。

1. 网关模式

在网关模式中,SSL VPN网关直接作为网关设备连接用户和内网服务器,所有流量将通过SSL VPN网关进行转发。网关模式可以提供对内网的完全保护,但是由于SSL VPN网关处在内网与外网通信的关键路径上,其性能对内外网之间的数据传输有很大的影响。

图1-2 网关模式

 

2. 单臂模式

在单臂模式中,SSL VPN网关不作为网关设备。用户访问内网服务器时,流量将先由网关设备转发到SSL VPN网关,经SSL VPN网关处理后再转发到网关设备,由网关设备转发到内网服务器。在单臂模式中,SSL VPN网关不处在网络通信的关键路径上,其性能不会影响内外网的通信。但是这种组网使得SSL VPN网关不能全面地保护企业内部的网络资源。

图1-3 单臂模式

 

1.1.3  SSL VPN接入方式

1. Web接入方式

Web接入方式是指用户使用浏览器,通过HTTPS协议访问SSL VPN网关提供的Web资源。用户登录后,Web页面上会显示用户可访问的资源列表,用户可以选择需要访问的资源直接访问。Web接入方式中,所有数据的显示和操作都是通过Web页面进行的,其实现过程为:

(1)     管理员在SSL VPN网关上创建URL列表,URL表项为企业网内部服务器的IP地址(或域名)。

(2)     用户使用浏览器,通过HTTPS协议登录SSL VPN网关。

(3)     SSL VPN网关对用户进行认证,并对允许用户访问的URL资源进行授权,授权的URL资源以URL链接的形式展示在网关的Web页面上。

(4)     用户在SSL VPN网关的Web页面上访问经过授权的URL资源。

(5)     SSL VPN网关解析接收到的Web请求,并使用HTTP或HTTPS协议向Web服务器发送Web请求。

(6)     SSL VPN网关接收到Web服务器的应答报文后,通过SSL连接将其转发给用户浏览器。

图1-4 Web接入方式示意图

 

目前,通过Web接入方式可以访问的资源只有Web服务器。

2. TCP接入方式

TCP接入方式是指用户对企业内部服务器开放端口的安全访问。通过TCP接入方式,用户可以访问任意基于TCP的服务,包括远程访问服务(如Telnet)、桌面共享服务、电子邮件服务、Notes服务以及其他使用固定端口的TCP服务。

用户利用TCP接入方式访问内网服务器时,需要在SSL VPN客户端(用户使用的终端设备)上安装专用的TCP接入客户端软件,由该软件实现使用SSL连接传送应用层数据。

TCP接入方式通过端口转发规则来实现,其实现过程为:

(1)     管理员在SSL VPN网关上创建端口转发规则,将企业网内部服务器的IP地址(或域名)和端口号映射为SSL VPN客户端的本地IP地址(或主机名)和本地端口号。

(2)     用户使用浏览器,通过HTTPS协议登录SSL VPN网关。

(3)     SSL VPN网关对用户进行认证,并对允许用户访问的TCP接入服务(即端口转发规则)进行授权。

(4)     用户在SSL VPN网关的Web页面上下载TCP接入客户端软件

(5)     用户在SSL VPN客户端上启动TCP接入客户端软件,可以看到授权访问的TCP接入服务。TCP接入客户端软件在SSL VPN客户端上打开授权的端口转发规则中指定的本地端口号。

(6)     用户访问本地IP地址(或主机名)和本地端口号时,TCP接入客户端软件将访问请求通过SSL连接发送给SSL VPN网关。

(7)     SSL VPN网关解析接收到的请求,并根据本地配置的端口转发规则,将该请求转发给对应的内部服务器。

(8)     SSL VPN网关接收到服务器的应答报文后,通过SSL连接将其转发给SSL VPN客户端。

图1-5所示,在SSL VPN网关上配置端口转发规则后,当用户在SSL VPN客户端上Telnet访问本地地址127.0.0.1、本地端口号2000时,TCP接入客户端软件将访问请求发送给SSL VPN网关。SSL VPN网关将请求转换为对Telnet服务器10.1.1.2、端口23的访问,并转发给Telnet服务器。Telnet服务器的应答报文同样通过SSL VPN网关转发给SSL VPN客户端。

图1-5 TCP接入方式示意图

 

图1-6所示,移动客户端均通过TCP接入方式访问内网资源。对于移动客户端,不需要在SSL VPN网关上配置端口转发规则,只需要在客户端上安装移动客户端专用的客户端软件,并在SSL VPN网关上为客户端指定EMO(Endpoint Mobile Office,终端移动办公)服务器。移动客户端通过EMO服务器来获取可以访问的内网资源。

图1-6 移动客户端访问企业内部资源

 

3. IP接入方式

IP接入方式用来实现远程主机与企业内部服务器网络层之间的安全通信,进而实现所有基于IP的远程主机与服务器的互通,如在远程主机上ping内网服务器。

用户通过IP接入方式访问内网服务器前,需要安装专用的IP接入客户端软件,该客户端软件会在SSL VPN客户端上安装一个虚拟网卡。

图1-7所示,IP接入方式的工作过程为:

(1)     管理员在SSL VPN网关上创建SSL VPN AC接口,并配置下发给SSL VPN客户端的路由表项。

(2)     用户在客户端上安装IP接入客户端软件后,启动该软件并登录。

(3)     SSL VPN网关对其进行认证和授权。认证、授权通过后,SSL VPN网关为客户端的虚拟网卡分配IP地址,并将授权用户访问的IP接入资源(即路由表项)发送给客户端。

(4)     客户端自动为虚拟网卡设置IP地址,并添加路由表项,路由的出接口为虚拟网卡。

(5)     用户在客户端上访问企业内网服务器时,访问请求报文匹配添加的路由表项,该报文将进行SSL封装,并通过虚拟网卡发送给SSL VPN网关的SSL VPN AC接口。

(6)     SSL VPN网关对SSL报文进行解封装,并将IP报文转发给内网服务器。

(7)     内网服务器将应答报文发送给SSL VPN网关。

(8)     SSL VPN网关对报文进行SSL封装后,通过SSL VPN AC接口将其发送给客户端。

图1-7 IP接入方式的工作过程

 

1.1.4  资源访问控制

SSL VPN采用基于用户的权限管理方法,可以根据用户的身份,限制用户可以访问的资源。

图1-8所示,SSL VPN对资源的管理方式为:同一台SSL VPN网关上可以创建多个SSL VPN访问实例(SSL VPN context)。每个SSL VPN访问实例包含多个策略组。策略组中定义了Web资源、TCP接入服务资源、IP接入服务资源等。

图1-8 SSL VPN资源管理方式

 

用户登录SSL VPN网关时,SSL VPN网关通过以下方法判断用户所属的SSL VPN访问实例:

·     为不同的SSL VPN访问实例指定不同的域名。远端用户登录SSL VPN网关时,指定自己所在的域,SSL VPN网关根据用户指定的域判断该用户所属的SSL VPN访问实例。

·     为不同的SSL VPN访问实例指定不同的虚拟主机名称。远端用户访问SSL VPN网关时,输入虚拟主机名称,SSL VPN网关根据虚拟主机名称判断该用户所属的SSL VPN访问实例。

SSL VPN网关判断出用户所属的SSL VPN访问实例后,根据SSL VPN访问实例所在的ISP域对用户进行认证和授权,授权结果为策略组名称。若某个用户被授权访问某个策略组,则该用户可以访问该策略组下的资源。若没有为用户进行授权,则用户可访问的资源由缺省策略组决定。

SSL VPN网关对用户的认证和授权通过AAA来完成。目前,SSL VPN支持的AAA协议包括RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)协议和LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)协议。在实际应用中,RADIUS协议较为常用。

1.1.5  SSL VPN支持VPN多实例

图1-9所示,在SSL VPN网关设备上,管理员可以将不同的SSL VPN访问实例关联不同的VPN实例,以便隔离不同访问实例内的服务器资源,避免非法用户访问特定资源的同时,还可以实现服务器资源的地址重叠。

管理员还可以指定SSL VPN网关所属的VPN实例。只有属于同一个VPN的用户可以访问SSL VPN网关,从而避免内部服务器资源泄漏到公网和其他VPN中。

VPN实例的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。

图1-9 SSL VPN支持VPN多实例示意图

 

1.2  SSL VPN配置限制和指导

用户先采用Web接入方式登录SSL VPN网关,又在Web页面上下载并运行IP接入客户端。此时用户通过两种接入方式访问SSL VPN网关,SSL VPN网关上会为该用户生成一个SSL VPN会话。之后如果用户从浏览器退出或者从IP接入客户端退出,则会因为SSL VPN会话断开而将无法继续访问对应的Web接入服务资源和IP接入服务资源。

1.3  SSL VPN配置任务简介

SSL VPN相关配置均在SSL VPN网关设备上进行。进行SSL VPN配置前,需要在SSL VPN网关上完成以下操作:

·     配置PKI,为SSL VPN网关获取数字证书,配置方法请参见“安全配置指导”中的“PKI”。

·     配置SSL服务器端策略,配置方法请参见“安全配置指导”中的“SSL”。

表1-1 SSL VPN配置任务简介

配置任务

说明

详细配置

配置SSL VPN网关

必选

1.4 

配置SSL VPN访问实例

必选

1.5 

配置策略组

必选

1.6 

创建URI ACL

可选

1.7 

创建Web接入服务资源

对于Web接入方式,为必选

1.8 

创建TCP接入服务资源

对于TCP接入方式,为必选

1.9 

创建IP接入服务资源

对于IP接入方式,为必选

1.10 

为移动客户端指定EMO服务器

对于移动客户端接入,为必选

1.11 

为移动客户端指定Message服务器

可选

1.12 

配置SSL VPN访问控制策略

可选

1.13 

配置SSL VPN支持VPN多实例

可选

1.14 

配置HTTP重定向

可选

1.15 

配置页面定制

可选

1.16 

配置SSL VPN用户控制

可选

1.17 

开启SSL VPN日志功能

可选

1.18 

配置iMC短信认证服务

可选

1.19 

 

1.4  配置SSL VPN网关

SSL VPN网关位于远端接入用户和企业内部网络之间,负责在二者之间转发报文。SSL VPN网关与远端接入用户建立SSL连接,并对接入用户进行身份认证。远端接入用户的访问请求只有通过SSL VPN网关的安全检查和认证后,才会被SSL VPN网关转发到企业网络内部,从而实现对企业内部资源的保护。

表1-2 配置SSL VPN网关

操作

命令

说明

进入系统视图

system-view

-

创建SSL VPN网关,并进入SSL VPN网关视图

sslvpn gateway gateway-name

缺省情况下,设备上不存在SSL VPN网关

配置SSL VPN网关的IPv4和端口号

配置SSL VPN网关的IPv4地址和端口号:

ip address ip-address [ port port-number ]

缺省情况下,SSL VPN网关的IPv4地址为0.0.0.0,端口号为443

配置SSL VPN网关引用SSL服务器端策略

ssl server-policy policy-name

缺省情况下,SSL VPN网关引用自签名证书对应的SSL服务器端策略

开启当前的SSL VPN网关

service enable

缺省情况下,当前的SSL VPN网关处于关闭状态

 

注意

用户配置的SSL VPN网关的IPv4和端口号请不要与设备的管理IPv4和端口号相同。

 

SSL策略的详细介绍,请参见“安全配置指导”中的“SSL”。

配置过程中,建议先配置SSL服务器策略,再配置SSL VPN网关的IPv4和引用SSL服务器策略,最后配置service enable开启SSL VPN网关。如果SSL服务器策略有变化,需要先配置undo service enable关闭SSL VPN网关,再配置service enable开启SSL VPN网关才能生效。

1.5  配置SSL VPN访问实例

SSL VPN访问实例用来管理用户会话、用户可以访问的资源、用户认证方式等。

执行本配置时需要注意:

·     不同的SSL VPN访问实例引用相同的SSL VPN网关时,必须为不同的SSL VPN访问实例指定不同的域名或虚拟主机名。

·     如果SSL VPN访问实例引用SSL VPN网关时没有指定域名和虚拟主机名称,那么其他的SSL VPN访问实例就不能再引用该SSL VPN网关。

·     如果为SSL VPN访问实例指定了虚拟主机名称,则需要在网络中部署DNS服务器,以便客户端将虚拟主机名称解析为SSL VPN网关的IP地址。

·     证书认证功能、验证码验证功能、动态口令验证功能三者可以同时开启,也可以只开启其中的一个或两个。若同时开启多个功能,则多个功能同时生效,用户需要同时通过多个验证才能访问企业内网资源。

·     对于SSL VPN证书认证功能,仅在Web接入和IP接入方式下,支持SSL服务器端强制要求对SSL客户端进行基于数字证书的身份验证;在TCP接入和移动客户端接入方式下,不支持SSL服务器端强制要求对SSL客户端进行基于数字证书的身份验证。

表1-3 配置SSL VPN访问实例

操作

命令

说明

进入系统视图

system-view

-

创建SSL VPN访问实例,并进入SSL VPN访问实例视图

sslvpn context context-name

缺省情况下,设备上不存在SSL VPN访问实例

配置SSL VPN访问实例引用SSL VPN网关

gateway gateway-name [ domain domain-name | virtual-host virtual-host-name ]

缺省情况下,SSL VPN访问实例没有引用SSL VPN网关

一个SSL VPN访问实例最多可以引用10个SSL VPN网关

配置SSL VPN访问实例使用指定的ISP域进行AAA认证

aaa domain domain-name

缺省情况下,SSL VPN访问实例使用缺省的ISP域进行认证

SSL VPN用户的用户名中不能携带所属ISP域信息。执行本配置后,SSL VPN用户将采用指定ISP域内的认证、授权、计费方案对SSL VPN用户进行认证、授权和计费

开启当前的SSL VPN访问实例

service enable

缺省情况下,SSL VPN访问实例处于关闭状态

(可选)配置SSL VPN访问实例的最大会话数

max-users max-number

缺省情况下,SSL VPN访问实例的最大会话数为1048575

(可选)开启证书认证功能

certificate-authentication enable

缺省情况下,证书认证功能处于关闭状态

(可选)开启验证码验证功能

verify-code enable

缺省情况下,验证码验证功能处于关闭状态

(可选)开启动态口令验证功能

dynamic-password enable

缺省情况下,动态口令验证功能处于关闭状态

(可选)配置SSL VPN会话保持空闲状态的最长时间

timeout idle minutes

缺省情况下,SSL VPN会话保持空闲状态的最长时间为30分钟

(可选)配置SSL VPN访问实例引用SSL客户端策略

ssl client-policy policy-name

非FIPS模式下:

缺省情况下,引用缺省的SSL客户端策略,该策略支持的加密套件为rsa_rc4_128_md5

FIPS模式下:

缺省情况下,引用缺省的SSL客户端策略,该策略支持的加密套件为rsa_aes_128_cbc_sha

执行本配置后,SSL VPN网关使用指定的SSL客户端策略与HTTPS类型的Web服务器建立连接

 

1.6  配置SSL VPN策略组

策略组包含一系列规则,这些规则为用户定义了可访问的资源。

一个SSL VPN访问实例下可以配置多个策略组。远端接入用户访问SSL VPN访问实例时,AAA服务器将授权给该用户的策略组信息下发给SSL VPN网关。该用户可以访问的资源由授权的策略组决定。如果AAA服务器没有为该用户进行授权,则用户可以访问的资源由缺省策略组决定。

表1-4 配置SSL VPN策略组

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

创建策略组,并进入SSL VPN策略组视图

policy-group group-name

缺省情况下,设备上不存在策略组

退回SSL VPN访问实例视图

quit

-

指定某个策略组为缺省策略组

default-policy-group group-name

缺省情况下,未指定缺省策略组

 

1.7  创建URI ACL

URI形式的ACL用于对SSL VPN的各种接入方式进行更精细的控制。对URL进行匹配,符合要求的URL请求可以访问对应的资源。在SSL VPN访问实例视图下可以创建多个URI ACL,并且每个URI ACL下又可以配置多条URI ACL规则。若一个URI ACL中配置了多条URI ACL规则,则按照规则编号由小到大进行匹配。

表1-5 创建URI ACL

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

创建URI ACL,并进入URI ACL视图

uri-acl uri-acl-name

缺省情况下,不存在URI ACL

创建URI ACL规则

rule [ rule-id ] { deny | permit } uri uri-pattern-string

缺省情况下,不存在URI ACL规则

 

1.8  创建Web接入服务资源

1. 创建Web接入服务

为了使用户能够通过Web接入方式访问企业内网资源,SSL VPN网关上需要创建Web接入服务资源,创建方法为:

(1)     在SSL VPN访问实例中定义Web接入方式可访问的资源,即URL列表,并在URL列表中定义一个或多个URL表项。每个URL表项对应一个企业网内的Web资源。

(2)     在SSL VPN策略组视图下引用URL列表。SSL VPN用户被授权某个策略组后,该策略组引用的URL列表指定的Web资源将同时授权给SSL VPN用户,SSL VPN用户可以访问这些Web资源。

表1-6 创建Web接入服务资源

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

创建URL列表,并进入URL列表视图

url-list name

缺省情况下,设备上不存在URL列表

配置URL列表标题

heading string

缺省情况下,URL列表的标题为“Web”

添加一个URL表项

url name url-value url [ uri-acl uri-acl-name ]

缺省情况下,设备上不存在URL表项

执行本配置时,如果url中没有指定协议类型,则默认为HTTP

退回SSL VPN访问实例视图

quit

-

进入SSL VPN策略组视图

policy-group group-name

-

配置策略组引用URL列表

resources url-list url-list-name

缺省情况下,策略组没有引用URL列表

 

2. 配置改写策略

通过Web接入方式访问服务器资源时,管理员可以配置改写策略对网页文件进行匹配,进而改写匹配的网页文件。通过改写网页文件,管理员可以对发现的网页问题进行修复,方便维护和管理。

配置改写策略后,SSL VPN网关通过old-content命令配置的string对网页文件内容进行匹配,匹配成功之后,采用new-content命令配置的改写之后的文件内容对其进行替换。只有配置的url与网关正在处理的网页文件的URL相同时,才会根据文件策略中的配置对该网页文件内容进行改写。配置改写策略

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

创建文件策略,并进入文件策略视图

file-policy policy-name

缺省情况下,不存在文件策略

配置文件策略应用的URL地址

url url

缺省情况下,不存在文件策略应用的URL地址

配置改写的文件类型

content-type { css | html | javascript | other }

缺省情况下,未配置文件改写类型,设备根据解析HTTP响应报文获得的文件类型对网页文件进行改写

创建改写规则,并进入改写规则视图

rewrite rule rule-name

缺省情况下,不存在改写规则

配置需要改写的文件内容

old-content string

缺省情况下,未配置需要改写的文件内容

配置改写之后的文件内容

new-content string

缺省情况下,未配置改写之后的文件内容

 

1.9  创建TCP接入服务资源

为了使用户能够通过TCP接入方式访问企业内网资源,SSL VPN网关上需要创建TCP接入服务资源,创建方法为:

(1)     在SSL VPN访问实例中定义TCP接入方式可访问的资源,即创建端口转发表项,并在端口转发表项中定义端口转发实例和对应资源:

a.     端口转发实例将企业网内的基于TCP的服务(如Telnet、SSH、POP3)映射为客户端上的本地地址和本地端口,以便客户端通过本地地址和本地端口访问企业网内的服务器。

b.     配置对应的资源后,用户可以在Web页面上点击指定的转发表项访问服务器资源。

(2)     创建端口转发列表,在端口转发列表中引用一条或多条端口转发表项。

(3)     在SSL VPN策略组视图下引用端口转发列表。SSL VPN用户被授权某个策略组后,该策略组引用的端口转发列表指定的TCP接入服务将同时授权给SSL VPN用户,SSL VPN用户可以访问这些TCP接入服务。

表1-7 创建TCP接入服务资源

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

创建端口转发表项,进入端口转发表项视图

port-forward-item item-name

缺省情况下,设备上不存在端口转发表项

添加端口转发实例

local-port local-port-number local-name local-name remote-server remote-server remote-port remote-port-number [ description text ]

缺省情况下,设备上不存在端口转发实例

退回SSL VPN访问实例视图

quit

-

创建端口转发列表,并进入端口转发列表视图

port-forward port-forward-name

缺省情况下,设备上不存在端口转发列表

配置端口转发列表引用端口转发表项

resources port-forward-item item-name

缺省情况下,端口转发列表未引用任何端口转发表项

退回SSL VPN访问实例视图

quit

-

进入SSL VPN策略组视图

policy-group group-name

-

配置策略组引用端口转发列表

resources port-forward port-forward-name

缺省情况下,策略组未引用端口转发列表

 

1.10  创建IP接入服务资源

为了使用户能够通过IP接入方式访问企业内网资源,SSL VPN网关上需要创建IP接入服务资源,创建方法为:

(1)     创建SSL VPN AC接口,为其配置IP地址,并指定SSL VPN访问实例引用的SSL VPN AC接口。

(2)     创建地址池,并在SSL VPN访问实例视图下引用地址池。客户端通过认证后,SSL VPN网关会从该访问实例引用的地址池中选择IP地址分配给客户端。

(3)     在SSL VPN策略组视图下配置下发给客户端的路由表项。AAA服务器将某个策略组授权给SSL VPN用户后,SSL VPN网关会将该策略组下配置的路由表项下发给客户端。下发的路由表项具有三种配置方法:

¡     直接配置路由表项:用于将一条路由下发给客户端。

¡     配置路由列表:用于将路由列表中的多条路由同时下发给客户端。

¡     强制将客户端的流量转发给SSL VPN网关(指定force-all参数):SSL VPN网关在客户端上添加优先级最高的缺省路由,路由的出接口为虚拟网卡,从而使得所有没有匹配到路由表项的流量都通过虚拟网卡发送给SSL VPN网关。SSL VPN网关还会实时监控SSL VPN客户端,不允许SSL VPN客户端删除此缺省路由,且不允许SSL VPN客户端添加优先级高于此路由的缺省路由。

(4)     管理员还可以在SSL VPN网关上配置保活报文的发送时间间隔、为客户端指定的内网DNS服务器地址和内网WINS服务器地址。

需要注意的是,为了使内部服务器的应答报文正确返回给SSL VPN客户端,在内部服务器上需要配置到达SSL VPN客户端虚拟网卡所在网段的静态路由。

表1-8 创建IP接入服务资源

操作

命令

说明

进入系统视图

system-view

-

创建SSL VPN AC接口,并进入SSL VPN AC接口视图

interface sslvpn-ac interface-number

缺省情况下,设备上不存在SSL VPN AC接口

配置接口的IP地址

ip address ip-address { mask | mask-length }

缺省情况下,未指定接口的IP地址

(可选)配置接口的期望带宽

bandwidth bandwidth-value

缺省情况下,接口的期望带宽为64kbps

(可选)配置当前接口的描述信息

description text

缺省情况下,接口的描述信息为“接口名 Interface”,例如:SSLVPN-AC1000 Interface

(可选)配置接口的MTU值

mtu size

缺省情况下,接口的MTU值为1500

(可选)恢复当前接口的缺省配置

default

-

开启当前接口

undo shutdown

缺省情况下,SSL VPN AC接口均处于开启状态

退回系统视图

quit

-

创建地址池

sslvpn ip address-pool pool-name start-ip-address end-ip-address

缺省情况下,设备上不存在地址池

进入SSL VPN访问实例视图

sslvpn context context-name

-

配置IP接入引用的SSL VPN AC接口

ip-tunnel interface sslvpn-ac interface-number

缺省情况下,IP接入未引用SSL VPN AC接口

创建路由列表,并进入路由列表视图

ip-route-list list-name

缺省情况下,设备上不存在路由列表

在路由列表中添加路由

include ip-address { mask | mask-length }

缺省情况下,路由列表中不存在路由

退回SSL VPN访问实例视图

quit

 

配置IP接入引用地址池

ip-tunnel address-pool pool-name mask { mask-length | mask }

缺省情况下,IP接入未引用地址池

(可选)配置保活报文的发送时间间隔

ip-tunnel keepalive seconds

缺省情况下,保活报文的发送时间间隔为30秒

(可选)配置为客户端指定的内网DNS服务器地址

ip-tunnel dns-server { primary | secondary } ip-address

缺省情况下,未配置为客户端指定的DNS服务器地址

(可选)配置为客户端指定的内网WINS服务器地址

ip-tunnel wins-server { primary | secondary } ip-address

缺省情况下,未配置为客户端指定的WINS服务器地址

进入SSL VPN策略组视图

policy-group group-name

-

配置下发给客户端的路由表项

ip-tunnel access-route { ip-address { mask-length | mask } | force-all | ip-route-list list-name }

缺省情况下,未指定下发给客户端的路由表项

 

1.11  为移动客户端指定EMO服务器

EMO服务器用来为移动客户端提供服务。执行本命令后,SSL VPN网关会将配置的EMO服务器信息下发给客户端,以便移动客户端通过EMO服务器获取可以访问的服务资源。

表1-9 为移动客户端指定EMO服务器

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

配置为客户端指定的EMO服务器

emo-server address { host-name | ipv4-address } port port-number

缺省情况下,未配置为客户端指定的EMO服务器

 

1.12  为移动客户端指定Message服务器

Message服务器用来为移动客户端提供服务。执行本命令后,SSL VPN网关会将配置的Message服务器信息下发给客户端,以便客户端访问Message服务器。

表1-10 为移动客户端指定Message服务器

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

配置为客户端指定的Message服务器

message-server address { host-name | ipv4-address } port port-number

缺省情况下,未配置为客户端指定的Message服务器

 

1.13  配置SSL VPN访问控制策略

SSL VPN访问控制策略基于高级ACL和URI ACL,用来过滤用户的网络资源请求。若用户的网络资源请求能与高级ACL或URI ACL中permit规则匹配成功,则访问请求才允许通过。建议用户使用URI ACL方式对SSL VPN的各种接入方式进行更精细的控制。

配置SSL VPN访问控制策略后,设备对SSL VPN用户的Web接入按照如下原则过滤:

(1)     优先匹配被授权URL列表下的资源,成功匹配后用户可以访问授权资源。

(2)     若资源列表匹配失败时,则进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。

(3)     若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配规则后用户的访问请求才允许通过。

(4)     若高级ACL检查失败,则授权失败,用户不允许访问资源。

配置SSL VPN访问控制策略后,设备对于PC版TCP客户端的过滤原则为:仅当成功匹配端口转发资源列表后用户可以访问授权资源,否则禁止所有客户端访问TCP接入资源;对于手机版TCP客户端的过滤原则为:

(1)     优先匹配端口转发资源列表,成功匹配后用户可以访问授权资源。

(2)     若端口转发资源列表匹配失败时,则进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。

(3)     若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配permit规则后用户的访问请求才允许通过。

(4)     若高级ACL检查失败,则授权失败,用户不允许访问资源。

配置SSL VPN访问控制策略后,设备对IP接入按照如下原则过滤:

(1)     进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。

(2)     若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配规则后用户的访问请求才允许通过。

(3)     若高级ACL检查失败,则授权失败,用户不允许访问资源。

SSL VPN访问控制策略支持的过滤条件包括:

·     Web接入方式:高级ACL支持根据接入请求报文的目的IP地址和目的端口号进行过滤;URI ACL支持根据接入请求报文的协议类型、地址、域名、端口号和URL进行过滤。

·     TCP接入方式:高级ACL支持根据接入请求报文的目的IP地址和目的端口号进行过滤;URI ACL支持根据接入请求报文的协议类型、地址、域名、端口号和URL进行过滤。

·     IP接入方式:高级ACL支持根据接入请求报文的目的IP地址和目的端口号、源IP地址和源端口号、协议类型、报文优先级、分片信息、TCP报文标识、ICMP报文的消息类型和消息码信息进行过滤;URI ACL支持根据接入请求报文的协议类型、地址、域名、端口号和URL进行过滤。

配置SSL VPN访问控制策略时,需要注意:

·     引用的ACL规则中不能存在VPN实例,否则该规则不能生效。

·     配置对IP接入进行URI ACL过滤时,指定的URI ACL规则中不能包含HTTP和HTTPS协议。

表1-11 配置SSL VPN访问控制策略

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

进入SSL VPN策略组视图

policy-group group-name

-

配置对Web接入进行过滤

filter web-access [ ipv6 ] acl advanced-acl-number

缺省情况下,SSL VPN网关仅允许SSL VPN客户端访问被授权URL列表下的资源

filter web-access uri-acl uri-acl-name

配置对TCP接入进行过滤

filter tcp-access [ ipv6 ] acl advanced-acl-number

缺省情况下,SSL VPN网关仅允许SSL VPN客户端访问端口转发列表下的资源

filter tcp-access uri-acl uri-acl-name

配置对IP接入进行过滤

filter ip-tunnel [ ipv6 ] acl advanced-acl-number

缺省情况下,SSL VPN网关禁止所有客户端访问IP接入资源

filter ip-tunnel uri-acl uri-acl-name

 

1.14  配置SSL VPN支持VPN多实例

1. 配置SSL VPN访问实例关联VPN实例

为了使用户能够访问VPN实例内的服务器资源,除了进行本配置外,还需要进行如下配置:

·     创建VPN实例。

·     SSL VPN网关设备连接企业网内部服务器的接口上绑定该VPN实例。

·     对于IP接入方式,还需要在SSL VPN访问实例引用的SSL VPN AC接口上绑定该VPN实例。

表1-12 配置SSL VPN访问实例关联VPN实例

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

配置SSL VPN访问实例关联的VPN实例

vpn-instance vpn-instance-name

缺省情况下,SSL VPN访问实例关联公网

 

2. 配置SSL VPN网关所属的VPN实例

为了使用户可以访问VPN实例内的SSL VPN网关,除了进行本配置外,还需要进行如下配置:

·     创建VPN实例。

·     SSL VPN网关设备连接用户的接口上绑定该VPN实例。

表1-13 配置SSL VPN网关所属的VPN实例

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN网关视图

sslvpn gateway gateway-name

-

配置SSL VPN网关所属的VPN实例

vpn-instance vpn-instance-name

缺省情况下,SSL VPN网关属于公网

 

1.15  配置HTTP重定向

缺省情况下,SSL VPN网关只允许用户以HTTPS方式登录访问,不允许用户以HTTP方式登录访问。配置HTTP重定向功能后,SSL VPN网关将监听指定的端口号,并把指定端口号的HTTP流量重定向到HTTPS服务监听的端口,向客户端发送重定向报文,让客户端重新以HTTPS方式登录。

表1-14 配置HTTP重定向

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN网关视图

sslvpn gateway gateway-name

-

开启HTTP流量的重定向功能

http-redirect [ port port-number ]

缺省情况下,未开启HTTP流量的重定向功能,SSL VPN网关不会处理HTTP流量

 

1.16  配置页面定制

管理员可以根据需要对SSL VPN页面进行定制。目前,支持的页面定制项包括:登录页面欢迎信息、页面标题、logo图标。

表1-15 配置页面定制

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

配置SSL VPN登录页面的欢迎信息

login-message { chinese chinese-message | english english-message }

缺省情况下,英文登录页面的欢迎信息为“Welcome to SSL VPN”,中文登录页面的欢迎信息为“欢迎进入SSL VPN”

配置SSL VPN页面的标题信息

title { chinese chinese-title | english english-title }

缺省情况下,SSL VPN页面的标题为“SSL VPN”

配置SSL VPN页面上显示的logo

logo { file file-name | none }

缺省情况下,SSL VPN页面上显示“H3C”logo图标

 

1.17  配置SSL VPN用户控制

通过配置SSL VPN用户控制,可以控制SSL VPN登录用户的上下线和在线数量。

表1-16 配置SSL VPN用户控制

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

强制在线用户下线

force-logout [ all | session session-id | user user-name ]

-

配置每个用户名的同时最大在线数

max-onlines number

缺省情况下,同一用户的同时最大在线数为32

开启达到最大在线数再登录时强制下线功能

force-logout max-onlines enable

缺省情况下,达到最大在线数再登录时强制下线功能处于关闭状态

配置每个会话的最大连接数

session-connections number

缺省情况下,每个会话的同时最大连接数为64

 

1.18  开启SSL VPN日志功能

开启SSL VPN日志功能后,用户上线下线以及用户访问资源信息时,SSL VPN网关会生成日志信息。生成的日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。

表1-17 开启SSL VPN日志功能

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

开启用户上下线日志生成功能

log user-login enable

缺省情况下,用户上下线日志生成功能处于关闭状态

开启用户资源访问日志生成功能

log resource-access enable [ filtering ]

缺失情况下,用户访问资源日志生成功能处于关闭状态

 

1.19  配置iMC短信认证服务

为了使用iMC短信认证,需要开启iMC短信认证服务功能,并配置iMC服务器的IP地址和端口号。

表1-18 配置和开启iMC短信认证服务

操作

命令

说明

进入系统视图

system-view

-

进入SSL VPN访问实例视图

sslvpn context context-name

-

配置iMC服务器的IP地址和端口号

sms-imc address ip-address port port-number

缺省情况下,未配置短信认证使用的iMC服务器的IP地址和端口号

开启当前的iMC短信认证服务

sms-imc enable

缺省情况下,当前SSL VPN访问实例下iMC短信认证服务处于关闭状态

 

1.20  SSL VPN显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示SSL VPN的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令清除SSL VPN AC接口的统计信息。

表1-19 SSL VPN显示和维护

操作

命令

显示SSL VPN访问实例的信息

display sslvpn context [ brief | name context-name ]

显示SSL VPN网关的信息

display sslvpn gateway [ brief | name gateway-name ]

显示指定策略组的信息

display sslvpn policy-group group-name [ context context-name ]

显示TCP端口转发的连接信息(独立运行模式)

display sslvpn port-forward connection [ context context-name ] [ slot slot-number ]

显示TCP端口转发的连接信息(IRF模式)

display sslvpn port-forward connection [ context context-name ] [ chassis chassis-number slot slot-number ]

显示SSL VPN会话信息

display sslvpn session [ context context-name ] [ user user-name | verbose ]

清除SSL VPN AC接口的统计信息

reset counters interface [ sslvpn-ac [ interface-number ] ]

 

1.21  SSL VPN典型配置举例

1.21.1  Web接入配置举例

1. 组网需求

Device A为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1、VPN 2。用户通过Device A能够安全地访问位于VPN 1内的Server A和VPN 2内的Server B。其中,Server A和Server B均为Web服务器,Sever A使用HTTP协议和80端口号,Sever B使用HTTPS协议和443端口号;Device A对用户进行本地认证和本地授权。

2. 组网图

图1-10 Web接入组网图

 

 

3. 配置步骤

说明

在开始下面的配置之前,假设已完成如下配置:

·     Device A上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。

·     Device A已获取到CA证书ca.cer和服务器证书server.pfx。

·     Device A与SSL VPN客户端、Server A、Server B之间路由可达。

 

# 配置PKI域sslvpn。

<DeviceA> system-view

[DeviceA] pki domain sslvpn

[DeviceA-pki-domain-sslvpn] public-key rsa general name sslvpn

[DeviceA-pki-domain-sslvpn] undo crl check enable

[DeviceA-pki-domain-sslvpn] quit

# 导入CA证书ca.cer和服务器证书server.pfx。

[DeviceA] pki import domain sslvpn der ca filename ca.cer

[DeviceA] pki import domain sslvpn p12 local filename server.pfx

# 配置SSL服务器端策略ssl。

[DeviceA] ssl server-policy ssl

[DeviceA-ssl-server-policy-ssl] pki-domain sslvpn

[DeviceA-ssl-server-policy-ssl] quit

# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为2000,并引用SSL服务器端策略ssl。

[DeviceA] sslvpn gateway gw

[DeviceA-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000

[DeviceA-sslvpn-gateway-gw] ssl server-policy ssl

# 开启SSL VPN网关gw。

[DeviceA-sslvpn-gateway-gw] service enable

[DeviceA-sslvpn-gateway-gw] quit

# 配置SSL VPN访问实例ctx1引用SSL VPN网关gw,指定域名为domain1,并配置SSL VPN访问实例关联的VPN实例为VPN1。

[DeviceA] sslvpn context ctx1

[DeviceA-sslvpn-context-ctx1] gateway gw domain domain1

[DeviceA-sslvpn-context-ctx1] vpn-instance VPN1

# 创建URL列表urllist。

[DeviceA-sslvpn-context-ctx1] url-list urllist

# 配置URL列表标题为web。

[DeviceA-sslvpn-context-ctx1-url-list-urllist] heading web

# 添加一个URL表项,链接名为serverA,对应的URL为20.2.2.2。

[DeviceA-sslvpn-context-ctx1-url-list-urllist] url serverA url-value http://20.2.2.2

[DeviceA-sslvpn-context-ctx1-url-list-urllist] quit

# SSL VPN访问实例ctx1下创建策略组pgroup,引用Web资源,并指定其为缺省策略组。

[DeviceA-sslvpn-context-ctx1] policy-group pgroup

[DeviceA-sslvpn-context-ctx1-policy-group-pgroup] resource url-list urllist

[DeviceA-sslvpn-context-ctx1-policy-group-pgroup] quit

[DeviceA-sslvpn-context-ctx1] default-policy-group pgroup

# 开启SSL VPN访问实例ctx1。

[DeviceA-sslvpn-context-ctx1] service enable

[DeviceA-sslvpn-context-ctx1] quit

# 配置SSL VPN访问实例ctx2引用SSL VPN网关gw,指定域名为domain2,并配置SSL VPN访问实例关联的VPN实例为VPN2。

[DeviceA] sslvpn context ctx2

[DeviceA-sslvpn-context-ctx2] gateway gw domain domain2

[DeviceA-sslvpn-context-ctx2] vpn-instance VPN2

# 创建URL列表urllist。

[DeviceA-sslvpn-context-ctx2] url-list urllist

# 配置URL列表标题为web。

[DeviceA-sslvpn-context-ctx2-url-list-urllist] heading web

# 添加一个URL表项,链接名为serverB,对应的URL为30.3.3.3。

[DeviceA-sslvpn-context-ctx2-url-list-urllist] url serverB url-value https://30.3.3.3

[DeviceA-sslvpn-context-ctx2-url-list-urllist] quit

# SSL VPN访问实例ctx2下创建策略组pgroup,引用Web资源,并指定其为缺省策略组。

[DeviceA-sslvpn-context-ctx2] policy-group pgroup

[DeviceA-sslvpn-context-ctx2-policy-group-pgroup] resource url-list urllist

[DeviceA-sslvpn-context-ctx2-policy-group-pgroup] quit

[DeviceA-sslvpn-context-ctx2] default-policy-group pgroup

# 开启SSL VPN访问实例ctx2。

[DeviceA-sslvpn-context-ctx2] service enable

[DeviceA-sslvpn-context-ctx2] quit

# 创建本地SSL VPN用户sslvpn,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为pgroup。

[DeviceA] local-user sslvpn class network

[DeviceA-luser-network-sslvpn] password simple 123456

[DeviceA-luser-network-sslvpn] service-type sslvpn

[DeviceA-luser-network-sslvpn] authorization-attribute user-role network-operator

[DeviceA-luser-network-sslvpn] authorization-attribute sslvpn-policy-group pgroup

[DeviceA-luser-network-sslvpn] quit

4. 验证配置

# 在Device A上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。

[DeviceA] display sslvpn gateway

Gateway name: gw

  Operation state: Up

  IP: 1.1.1.2  Port: 2000

  SSL server policy configured: ssl

  SSL server policy in use: ssl

  Front VPN instance: Not configured

# 在Device A上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx1和ctx2均处于Up状态。

[DeviceA] display sslvpn context

Context name: ctx1

  Operation state: Up

  AAA domain: Not specified

  Certificate authentication: Disabled

  Dynamic password: Disabled

  Code verification: Disabled

  Default policy group: pgroup

  Associated SSL VPN gateway: gw

    Domain name: domain1

  SSL client policy configured: ssl

  SSL client policy in use: ssl

  Maximum users allowed: 1048575

  VPN instance: VPN1

  Idle timeout: 30 min

 

Context name: ctx2

  Operation state: Up

  AAA domain: Not specified

  Certificate authentication: Disabled

  Dynamic password: Disabled

  Code verification: Disabled

  Default policy group: pgroup

  Associated SSL VPN gateway: gw

    Domain name: domain2

  SSL client policy configured: ssl

  SSL client policy in use: ssl

  Maximum users allowed: 1048575

  VPN instance: VPN2

  Idle timeout: 30 min

# 用户在PC浏览器上输入https://1.1.1.2:2000/,进入Domain List页面。

图1-11 Domain List页面

 

# 用户选择domain1进入登录页面,输入用户sslvpn和密码123456,点击<登录>按钮,可以成功登录。

图1-12 登录页面

 

# 用户登录成功后,在Device A上可以看到用户会话信息。

[DeviceA] display sslvpn session context ctx1

SSL VPN context: ctx1

Users: 1

Username  Conn  Idle Time  Created  User IP address

sslvpn    6     00:12:05   00:04:14 40.1.1.1

# 网关首页的“书签”栏显示用户可以访问的远端web资源。

图1-13 网关首页

 

# 点击serverA,可以进入Web服务器Server A的HTTP网站首页面,且在浏览器的地址栏中显示如下格式的URL:https://1.1.1.2:2000/_proxy2/http/80/20.2.2.2/。

# 用户退出登录,重启浏览器,重新输入https://1.1.1.2:2000/,选择domain2进入登录页面,输入用户名sslvpn和密码123456,可以登录成功。

# 用户登录成功后,在Device A上可以看到用户会话信息。

[DeviceA] display sslvpn session context ctx2

SSL VPN context: ctx2

Users: 1

Username  Conn  Idle Time  Created  User IP address

sslvpn    6     00:02:05   00:01:11 40.1.1.1

# 网关首页的“书签”栏显示用户可以访问的远端web资源。

图1-14 网关首页

 

# 点击serverB,可以进入Web服务器Server B的HTTPS网站首页面,且在浏览器的地址栏中显示如下格式的URL:https://1.1.1.2:2000/_proxy2/https/443/30.3.3.3/。

1.21.2  TCP接入配置举例

1. 组网需求

Device A为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1。用户通过Device A可以安全地访问VPN 1内的Telnet服务器Server。Device A采用本地认证和授权方式对用户进行认证和授权。

2. 组网图

图1-15 TCP接入配置组网图

 

3. 配置步骤

说明

在开始下面的配置之前,假设已完成如下配置:

·     Device A上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。

·     Device A已获取到CA证书ca.cer和服务器证书server.pfx。

·     Device A与SSL VPN客户端、Server之间路由可达。

 

# 配置PKI域sslvpn。

<DeviceA> system-view

[DeviceA] pki domain sslvpn

[DeviceA-pki-domain-sslvpn] public-key rsa general name sslvpn

[DeviceA-pki-domain-sslvpn] undo crl check  enable

[DeviceA-pki-domain-sslvpn] quit

# 导入CA证书ca.cer和服务器证书server.pfx。

[DeviceA] pki import domain sslvpn der ca filename ca.cer

[DeviceA] pki import domain sslvpn p12 local filename server.pfx

# 配置SSL服务器端策略ssl。

[DeviceA] ssl server-policy ssl

[DeviceA-ssl-server-policy-ssl] pki-domain sslvpn

[DeviceA-ssl-server-policy-ssl] quit

# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为2000,并引用SSL服务器端策略ssl。

[DeviceA] sslvpn gateway gw

[DeviceA-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000

[DeviceA-sslvpn-gateway-gw] ssl server-policy ssl

# 开启SSL VPN网关gw。

[DeviceA-sslvpn-gateway-gw] service enable

[DeviceA-sslvpn-gateway-gw] quit

# 配置SSL VPN访问实例ctx引用SSL VPN网关gw,并配置SSL VPN访问实例关联的VPN实例为VPN1。

[DeviceA] sslvpn context ctx

[DeviceA-sslvpn-context-ctx] gateway gw

[DeviceA-sslvpn-context-ctx] vpn-instance VPN1

# 创建端口转发表项pfitem1。

[DeviceA-sslvpn-context-ctx] port-forward-item pfitem1

# 添加端口转发实例,将20.2.2.2提供的Telnet服务映射到本地地址127.0.0.1、本地端口2323。

[DeviceA-sslvpn-context-ctx-port-forward-item- pfitem1] local-port 2323 local-name 127.0.0.1 remote-server 20.2.2.2 remote-port 23 description telnet

[DeviceA-sslvpn-context-ctx-port-forward-item- pfitem1] quit

# 创建端口转发列表plist,并引用端口转发表项pfitem1。

[DeviceA-sslvpn-context-ctx] port-forward plist

[DeviceA-sslvpn-context-ctx-port-forward-plist] resource port-forward-item pfitem1

[DeviceA-sslvpn-context-ctx-port-forward-plist] quit

# 创建SSL VPN策略组pgroup,并引用端口转发列表plist。

[DeviceA-sslvpn-context-ctx] policy-group pgroup

[DeviceA-sslvpn-context-ctx-policy-group-pgroup] resources port-forward plist

[DeviceA-sslvpn-context-ctx-policy-group-pgroup] quit

# 开启SSL VPN访问实例ctx。

[DeviceA-sslvpn-context-ctx] service enable

[DeviceA-sslvpn-context-ctx] quit

# 创建本地SSL VPN用户sslvpn,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为pgroup。

[DeviceA] local-user sslvpn class network

[DeviceA-luser-network-sslvpn] password simple 123456

[DeviceA-luser-network-sslvpn] service-type sslvpn

[DeviceA-luser-network-sslvpn] authorization-attribute user-role network-operator

[DeviceA-luser-network-sslvpn] authorization-attribute sslvpn-policy-group pgroup

[DeviceA-luser-network-sslvpn] quit

4. 验证配置

# 在Device A上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。

[DeviceA] display sslvpn gateway

Gateway name: gw

  Operation state: Up

  IP: 1.1.1.2  Port: 2000

  SSL server policy configured: ssl

  SSL server policy in use: ssl

  Front VPN instance: Not configured

# 在Device A上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx处于Up状态。

[DeviceA] display sslvpn context

Context name: ctx

  Operation state: Up

  AAA domain: Not specified

  Certificate authentication: Disabled

  Dynamic password: Disabled

  Code verification: Disabled

  Default policy group: Not configured

  Associated SSL VPN gateway: gw

  SSL client policy configured: ssl

  SSL client policy in use: ssl

  Maximum users allowed: 1048575

  VPN instance: VPN1

  Idle timeout: 30 min

# 用户在PC浏览器上输入https://1.1.1.2:2000/,进入登录页面后,输入用户名sslvpn和密码123456,用户可以成功登录。

图1-16 登录页面

 

# 用户登录成功后,网关首页的“TCP资源”栏显示用户可以访问的远端TCP资源。

图1-17 网关首页

 

# 单击对应的资源条目,下载TCP接入客户端软件并运行。

图1-18 TCP接入客户端软件

 

# 用户在PC上执行telnet 127.0.0.1 2323,可以远程连接到Server。

# 在Device A上可以看到用户会话信息。

[DeviceA] display sslvpn session context ctx

SSL VPN context: ctx

Users: 1

Username  Conn  Idle Time  Created  User IP address

sslvpn    6     00:12:05   00:04:14 40.1.1.1

# 在Device A上可以看到TCP端口转发的连接信息。

[DeviceA] display sslvpn port-forward connection

SSL VPN context  : ctx

  Client address : 40.1.1.1

  Client port    : 50788

  Server address : 20.2.2.2

  Server port    : 23

  State          : Connected

1.21.3  IP接入配置举例

1. 组网需求

Device A为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1。用户通过Device A可以通过IP接入方式安全地访问VPN 1内的Server。Device A通过RADIUS server采用远程认证和授权方式对用户进行认证和授权。

2. 组网图

图1-19 IP接入配置组网图

 

3. 配置步骤

说明

在开始下面的配置之前,假设已完成如下配置:

·     Device A上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。

·     Device A已获取到CA证书ca.cer和服务器证书server.pfx。

·     Device A与SSL VPN客户端、Server之间路由可达。

·     Server上存在到达网段10.1.1.0/24的路由。

·     RADIUS server已经部署完成,能够对用户进行认证和授权。

 

# 配置PKI域sslvpn。

<DeviceA> system-view

[DeviceA] pki domain sslvpn

[DeviceA-pki-domain-sslvpn] public-key rsa general name sslvpn

[DeviceA-pki-domain-sslvpn] undo crl check  enable

[DeviceA-pki-domain-sslvpn] quit

# 导入CA证书ca.cer和服务器证书server.pfx。

[DeviceA] pki import domain sslvpn der ca filename ca.cer

[DeviceA] pki import domain sslvpn p12 local filename server.pfx

# 配置SSL服务器端策略ssl。

[DeviceA] ssl server-policy ssl

[DeviceA-ssl-server-policy-ssl] pki-domain sslvpn

[DeviceA-ssl-server-policy-ssl] quit

# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为2000,并引用SSL服务器端策略ssl。

[DeviceA] sslvpn gateway gw

[DeviceA-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000

[DeviceA-sslvpn-gateway-gw] ssl server-policy ssl

# 开启SSL VPN网关gw。

[DeviceA-sslvpn-gateway-gw] service enable

[DeviceA-sslvpn-gateway-gw] quit

# 创建地址池ippool,指定IP地址范围为10.1.1.1~10.1.1.10。

[DeviceA] sslvpn ip address-pool ippool 10.1.1.1 10.1.1.10

# 创建SSL VPN AC接口1,配置该接口绑定VPN实例VPN1,并配置接口的IP地址为10.1.1.100/24。

[DeviceA] interface sslvpn-ac 1

[DeviceA-SSLVPN-AC1] ip binding vpn-instance VPN1

[DeviceA-SSLVPN-AC1] ip address 10.1.1.100 24

[DeviceA-SSLVPN-AC1] quit

# 配置SSL VPN访问实例ctx引用SSL VPN网关gw,并配置SSL VPN访问实例关联的VPN实例为VPN1。

[DeviceA] sslvpn context ctx

[DeviceA-sslvpn-context-ctx] gateway gw

[DeviceA-sslvpn-context-ctx] vpn-instance VPN1

# 配置SSL VPN访问实例使用ISP域domain1进行AAA认证。

[DeviceA-sslvpn-context-ctx] aaa domain domain1

# 创建路由列表rtlist,并添加路由表项20.2.2.0/24。

[DeviceA-sslvpn-context-ctx] ip-route-list rtlist

[DeviceA-sslvpn-context-ctx-route-list-rtlist] include 20.2.2.0 255.255.255.0

[DeviceA-sslvpn-context-ctx-route-list-rtlist] quit

# 创建名称为uriacl的URI ACL,并创建对应的URI ACL过滤规则。

[DeviceA-sslvpn-context-ctx] uri-acl uriacl

[DeviceA-sslvpn-context-ctx-uri-acl-uriacl] rule 1 permit uri icmp://20.2.2.0

[DeviceA-sslvpn-context-ctx-uri-acl-uriacl] quit

# 配置SSL VPN访问实例ctx引用SSL VPN AC接口1

[DeviceA-sslvpn-context-ctx] ip-tunnel interface sslvpn-ac 1

# 配置SSL VPN访问实例ctx,并引用路由列表rtlist和地址池ippool,同时配置对IP接入进行URI ACL过滤。

[DeviceA-sslvpn-context-ctx] ip-tunnel address-pool ippool mask 255.255.255.0

[DeviceA-sslvpn-context-ctx] policy-group pgroup

[DeviceA-sslvpn-context-ctx-policy-group-pgroup] ip-tunnel access-route ip-route-list rtlist

[DeviceA-sslvpn-context-ctx-policy-group-pgroup] filter ip-tunnel uri-acl uriacl

[DeviceA-sslvpn-context-ctx-policy-group-pgroup] quit

# 开启SSL VPN访问实例ctx。

[DeviceA-sslvpn-context-ctx] service enable

[DeviceA-sslvpn-context-ctx] quit

# 配置Radius方案rscheme,指定认证和授权服务器地址均为3.3.3.2、认证和授权的共享密钥均为123456、发送给RADIUS服务器的用户名格式为不携带ISP域名。

[DeviceA] radius scheme rscheme

[DeviceA-radius-rscheme] primary authentication 3.3.3.2

[DeviceA-radius-rscheme] primary accounting 3.3.3.2

[DeviceA-radius-rscheme] accounting-on enable

[DeviceA-radius-rscheme] key authentication simple 123456

[DeviceA-radius-rscheme] key accounting simple 123456

[DeviceA-radius-rscheme] user-name-format without-domain

[DeviceA-radius-rscheme] quit

# 配置用户组group1,授权给该用户组的策略组为pgroup。

[DeviceA] user-group group1

[DeviceA-ugroup-group1] authorization-attribute sslvpn-policy-group pgroup

[DeviceA-ugroup-group1] quit

# 配置ISP域domain1,指定用户授权属性为用户组group1,认证、授权和计费使用的RADIUS方案为rscheme。

[DeviceA] domain domain1

[DeviceA-isp-domain1] authorization-attribute user-group group1

[DeviceA-isp-domain1] authentication sslvpn radius-scheme rscheme

[DeviceA-isp-domain1] authorization sslvpn radius-scheme rscheme

[DeviceA-isp-domain1] accounting sslvpn radius-scheme rscheme

[DeviceA-isp-domain1] quit

4. 验证配置

# 在Device A上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。

[DeviceA] display sslvpn gateway

Gateway name: gw

  Operation state: Up

  IP: 1.1.1.2  Port: 2000

  SSL server policy configured: ssl

  SSL server policy in use: ssl

  Front VPN instance: Not configured

# 在Device A上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx处于Up状态。

[DeviceA] display sslvpn context

Context name: ctx

  Operation state: Up

  AAA domain: domain1

  Certificate authentication: Disabled

  Dynamic password: Disabled

  Code verification: Disabled

  Default policy group: Not configured

  Associated SSL VPN gateway: gw

  SSL client policy configured: ssl

  SSL client policy in use: ssl

  Maximum users allowed: 1048575

  VPN instance: VPN1

  Idle timeout: 30 min

# 用户在PC上启动IP接入客户端软件,输入访问地址1.1.1.2、端口号2000、用户名sslvpn、密码123456,登录成功。

# 在Device A上可以看到用户会话信息。

[DeviceA] display sslvpn session context ctx

SSL VPN context: ctx

Users: 1

Username  Conn  Idle Time  Created  User IP address

sslvpn    6     00:02:05   00:03:14 40.1.1.1

# 在PC上查看IPv4路由表,其中40.1.1.1/24为本地网卡地址,10.1.1.1/24为SSL VPN网关设备分配给用户的地址,20.2.2.0/24为到达内部服务器Server的路由。

>route -4 print

IPv4 Route Table

===========================================================================

Active Routes:

Network Destination        Netmask          Gateway       Interface  Metric

         10.1.1.0    255.255.255.0         On-link      10.1.1.1        276

         10.1.1.1  255.255.255.255         On-link      10.1.1.1        276

       10.1.1.255  255.255.255.255         On-link      10.1.1.1        276

         20.2.2.0    255.255.255.0         On-link      10.1.1.1        276

       20.2.2.255  255.255.255.255         On-link      10.1.1.1        276

         40.1.1.0    255.255.255.0         On-link      40.1.1.1        276

         40.1.1.1  255.255.255.255         On-link      40.1.1.1        276

       40.1.1.255  255.255.255.255         On-link      40.1.1.1        276

===========================================================================

# 在PC上可以Ping通服务器地址20.2.2.2。

>ping 20.2.2.2

Pinging 20.2.2.2 with 32 bytes of data:

Reply from 20.2.2.2: bytes=32 time=197ms TTL=254

Reply from 20.2.2.2: bytes=32 time=1ms TTL=254

Reply from 20.2.2.2: bytes=32 time=1ms TTL=254

Reply from 20.2.2.2: bytes=32 time=186ms TTL=254

 

Ping statistics for 20.2.2.2:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 1ms, Maximum = 197ms, Average = 96ms

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!