15-SSL VPN配置
本章节下载: 15-SSL VPN配置 (976.97 KB)
目 录
设备各款型对于本节所描述的特性支持情况有所不同,详细差异信息如下:
型号 |
特性 |
描述 |
ICG2000D |
SSL VPN |
不支持 |
ICG 3000S |
支持 |
|
ICG3000F/3000F-DP |
支持 |
|
ICG 5000G/5000T |
支持 |
|
ICG 6000 |
支持 |
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所示,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示意图
SSL VPN的典型组网方式主要有两种:网关模式和单臂模式。
在网关模式中,SSL VPN网关直接作为网关设备连接用户和内网服务器,所有流量将通过SSL VPN网关进行转发。网关模式可以提供对内网的完全保护,但是由于SSL VPN网关处在内网与外网通信的关键路径上,其性能对内外网之间的数据传输有很大的影响。
图1-2 网关模式
在单臂模式中,SSL VPN网关不作为网关设备。用户访问内网服务器时,流量将先由网关设备转发到SSL VPN网关,经SSL VPN网关处理后再转发到网关设备,由网关设备转发到内网服务器。在单臂模式中,SSL VPN网关不处在网络通信的关键路径上,其性能不会影响内外网的通信。但是这种组网使得SSL VPN网关不能全面地保护企业内部的网络资源。
图1-3 单臂模式
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服务器。
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服务器来获取可以访问的内网资源。
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接入方式的工作过程
SSL VPN用户认证是SSL VPN网关对SSL VPN用户身份的认证,用户身份认证通过后,才能访问对应的内网服务器资源。用户认证包括:用户名/密码认证、证书认证、用户名/密码和证书的组合认证。有关用户的详细介绍,请参见“安全配置指导”中的“AAA”。
用户名/密码认证只通过认证SSL VPN用户的用户名和密码从而认证用户身份。该认证的过程如下:
(1) SSL VPN用户在登录界面输入用户名和密码,用户设备会将用户名和密码发送给SSL VPN网关;
(2) SSL VPN网关将用户名和密码提交给AAA模块进行认证、授权和计费。
证书认证只通过认证SSL VPN用户证书从而认证用户身份。该认证的过程如下:
(1) SSL VPN用户选择自己的SSL VPN用户证书,用户设备会将该证书发送给SSL VPN网关;
(2) SSL VPN网关用CA证书检查SSL VPN用户证书是否可信:如果可信,则继续进行下一步;如果不可信,则不能建立SSL连接;
(3) SSL VPN网关从SSL VPN用户证书中的CN字段提取用户名,并将该用户名提交给AAA模块进行授权和计费。
· 虽然证书认证不需要用户手工输入用户名,但在本地设备中必须存在该用户。
· SSL VPN用户证书中的CN字段必须和该SSL VPN用户的用户名一致。
图1-8 证书认证过程
用户名/密码和证书组合认证是指SSL VPN网关对SSL VPN用户的证书以及用户名/密码进行双重认证。该认证的过程如下:
(1) SSL VPN用户选择自己的SSL VPN用户证书,用户设备会将该证书发送给SSL VPN网关;
(2) SSL VPN网关用CA证书检查SSL VPN用户证书是否可信:如果可信,则继续进行下一步;如果不可信,则不能建立SSL连接;
(3) SSL VPN网关从SSL VPN用户证书中提取用户名与输入的用户名进行比较:
¡ 若一致,则网关将用户名和密码提交给AAA模块进行认证、授权和计费;
¡ 若不一致,则认证不通过。
SSL VPN采用基于用户的权限管理方法,可以根据用户的身份,限制用户可以访问的资源。
如图1-9所示,SSL VPN对资源的管理方式为:同一台SSL VPN网关上可以创建多个SSL VPN访问实例(SSL VPN context)。每个SSL VPN访问实例包含多个策略组。策略组中定义了Web资源、TCP接入服务资源、IP接入服务资源等。
图1-9 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-10所示,在SSL VPN网关设备上,管理员可以将不同的SSL VPN访问实例关联不同的VPN实例,以便隔离不同访问实例内的服务器资源,避免非法用户访问特定资源的同时,还可以实现服务器资源的地址重叠。
管理员还可以指定SSL VPN网关所属的VPN实例。只有属于同一个VPN的用户可以访问SSL VPN网关,从而避免内部服务器资源泄漏到公网和其他VPN中。
VPN实例的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。
图1-10 SSL VPN支持VPN多实例示意图
用户先采用Web接入方式登录SSL VPN网关,又在Web页面上下载并运行IP接入客户端。此时用户通过两种接入方式访问SSL VPN网关,SSL VPN网关上会为该用户生成一个SSL VPN会话。之后如果用户从浏览器退出或者从IP接入客户端退出,则会因为SSL VPN会话断开而将无法继续访问对应的Web接入服务资源和IP接入服务资源。
SSL VPN相关配置均在SSL VPN网关设备上进行。进行SSL VPN配置前,需要在SSL VPN网关上完成以下操作:
· 配置PKI,为SSL VPN网关获取数字证书,配置方法请参见“安全配置指导”中的“PKI”。
· 配置SSL服务器端策略,配置方法请参见“安全配置指导”中的“SSL”。
表1-1 SSL VPN配置任务简介
配置任务 |
说明 |
详细配置 |
|
|
配置SSL VPN网关 |
必选 |
|
||
配置SSL VPN访问实例 |
必选 |
|
||
配置策略组 |
必选 |
|
||
配置SSL VPN用户认证 |
可选 |
|
||
创建URI ACL |
可选 |
|
||
创建Web接入服务资源 |
对于Web接入方式,为必选 |
|
||
创建TCP接入服务资源 |
对于TCP接入方式,为必选 |
|
||
创建IP接入服务资源 |
对于IP接入方式,为必选 |
|
||
为移动客户端配置SSL VPN接入服务 |
为移动客户端指定EMO服务器 |
对于移动客户端接入,为必选 |
||
为移动客户端指定Message服务器 |
可选 |
|||
配置SSL VPN访问控制策略 |
可选 |
|
||
配置SSL VPN支持VPN多实例 |
可选 |
|
||
配置HTTP重定向 |
可选 |
|
||
配置页面定制 |
可选 |
|
||
配置SSL VPN用户控制 |
可选 |
|
||
开启SSL VPN日志功能 |
可选 |
|
||
配置iMC短信验证服务 |
可选 |
|
||
配置快捷方式 |
可选 |
|
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/IPv6地址和端口号 |
配置SSL VPN网关的IPv4地址和端口号:ip address ip-address [ port port-number ] 配置SSL VPN网关的IPv6地址和端口号: ipv6 address ipv6-address [ port port-number ] |
二者选其一 缺省情况下,SSL VPN网关的IPv4地址为0.0.0.0,端口号为443;未配置SSL VPN网关的IPv6地址和端口号 执行本配置时,如果没有指定端口号,则缺省端口号为443 |
配置SSL VPN网关引用SSL服务器端策略 |
ssl server-policy policy-name |
缺省情况下,SSL VPN网关引用自签名证书对应的SSL服务器端策略 |
开启当前的SSL VPN网关 |
service enable |
缺省情况下,当前的SSL VPN网关处于关闭状态 |
用户配置的SSL VPN网关的IPv4/IPv6地址和端口号请不要与设备的管理IPv4/IPv6地址和端口号相同。
SSL策略的详细介绍,请参见“安全配置指导”中的“SSL”。
配置过程中,建议先配置SSL服务器策略,再配置SSL VPN网关的IPv4/IPv6地址和引用SSL服务器策略,最后配置service enable开启SSL VPN网关。如果SSL服务器策略有变化,需要先配置undo service enable关闭SSL VPN网关,再配置service enable开启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 |
(可选)开启验证码验证功能 |
verify-code enable |
缺省情况下,验证码验证功能处于关闭状态 |
(可选)开启动态口令验证功能 |
dynamic-password enable |
缺省情况下,动态口令验证功能处于关闭状态 |
(可选)配置SSL VPN会话保持空闲状态的最长时间 |
timeout idle minutes |
缺省情况下,SSL VPN会话保持空闲状态的最长时间为30分钟 |
(可选)配置SSL VPN会话保持空闲状态的流量阈值 |
idle-cut traffic-threshold kilobytes |
缺省情况下,未配置SSL VPN会话保持空闲状态的流量阈值 |
(可选)配置SSL VPN访问实例引用SSL客户端策略 |
ssl client-policy policy-name |
非FIPS模式下: 缺省情况下,引用缺省的SSL客户端策略,该策略支持的加密套件为dhe_rsa_aes_128_cbc_sha、dhe_rsa_aes_256_cbc_sha、rsa_3des_ede_cbc_sha、rsa_aes_128_cbc_sha、rsa_aes_256_cbc_sha FIPS模式下: 缺省情况下,引用缺省的SSL客户端策略,该策略支持的加密套件为rsa_aes_128_cbc_sha、rsa_aes_256_cbc_sha 执行本配置后,SSL VPN网关使用指定的SSL客户端策略与HTTPS类型的Web服务器建立连接 |
策略组包含一系列规则,这些规则为用户定义了可访问的资源。
一个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 |
缺省情况下,未指定缺省策略组 |
用户名/密码认证功能和证书认证功能都开启的情况下,可以通过authentication use命令来控制SSL VPN用户认证的认证模式。若认证模式选用any-one,则用户只需要通过其中一种认证即可登录SSL VPN访问实例;若认证模式选用all,则用户必须通过这两种认证(即用户名/密码和证书的组合认证)方可登录SSL VPN访问实例。
表1-5 配置SSL VPN用户认证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN访问实例视图 |
sslvpn context context-name |
- |
开启用户名/密码认证功能 |
password-authentication enable |
缺省情况下,用户名/密码认证功能处于开启状态 |
开启证书认证功能 |
certificate-authentication enable |
缺省情况下,证书认证功能处于关闭状态 |
配置SSL VPN用户登录访问实例的认证模式 |
authentication use { all | any-one } |
缺省情况下,SSL VPN用户登录访问实例的认证模式为all |
URI形式的ACL用于对SSL VPN的各种接入方式进行更精细的控制。对URL进行匹配,符合要求的URL请求可以访问对应的资源。在SSL VPN访问实例视图下可以创建多个URI ACL,并且每个URI ACL下又可以配置多条URI ACL规则。若一个URI ACL中配置了多条URI ACL规则,则按照规则编号由小到大进行匹配。
表1-6 创建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规则 |
为了使用户能够通过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-7 创建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列表 |
通过Web接入方式访问服务器资源时,管理员可以配置改写策略对网页文件进行匹配,进而改写匹配的网页文件。通过改写网页文件,管理员可以对发现的网页问题进行修复,方便维护和管理。
配置改写策略后,SSL VPN网关通过old-content命令配置的string对网页文件内容进行匹配,匹配成功之后,采用new-content命令配置的改写之后的文件内容对其进行替换。只有配置的url与网关正在处理的网页文件的URL相同时,才会根据文件策略中的配置对该网页文件内容进行改写。
表1-8 配置改写策略
操作 |
命令 |
说明 |
进入系统视图 |
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 |
缺省情况下,未配置改写之后的文件内容 |
为了使用户能够通过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-9 创建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 ] |
缺省情况下,设备上不存在端口转发实例 |
(可选)配置端口转发表项对应的资源 |
execution script |
缺省情况下,不存在端口转发表项对应的资源 |
退回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 |
缺省情况下,策略组未引用端口转发列表 |
为了使用户能够通过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-10 创建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 } |
缺省情况下,路由列表中不存在任何路由 |
(可选)在路由列表中添加例外路由 |
exclude 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 } |
缺省情况下,未指定下发给客户端的路由表项 |
EMO服务器用来为移动客户端提供服务。执行本命令后,SSL VPN网关会将配置的EMO服务器信息下发给客户端,以便移动客户端通过EMO服务器获取可以访问的服务资源。
表1-11 为移动客户端指定EMO服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN访问实例视图 |
sslvpn context context-name |
- |
配置为客户端指定的EMO服务器 |
emo-server address { host-name | ipv4-address } port port-number |
缺省情况下,未配置为客户端指定的EMO服务器 |
Message服务器用来为移动客户端提供服务。执行本命令后,SSL VPN网关会将配置的Message服务器信息下发给客户端,以便客户端访问Message服务器。
表1-12 为移动客户端指定Message服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN访问实例视图 |
sslvpn context context-name |
- |
配置为客户端指定的Message服务器 |
message-server address { host-name | ipv4-address } port port-number |
缺省情况下,未配置为客户端指定的Message服务器 |
SSL VPN访问控制策略基于高级ACL和URI ACL,用来过滤用户的网络资源请求。若用户的网络资源请求能与高级ACL或URI ACL中permit规则匹配成功,则访问请求才允许通过。
配置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客户端,过滤原则为:
(5) 优先匹配端口转发资源列表,成功匹配后用户可以访问授权资源。
(6) 若端口转发资源列表匹配失败时,则进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。
(7) 若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配permit规则后用户的访问请求才允许通过。
(8) 若高级ACL检查失败,则授权失败,用户不允许访问资源。
配置SSL VPN访问控制策略后,设备对IP接入按照如下原则过滤:
(9) 进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。
(10) 若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配规则后用户的访问请求才允许通过。
(11) 若高级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实例,否则不能对SSL VPN用户的Web接入、TCP接入和IP接入进行过滤。
· 建议用户使用URI ACL方式对SSL VPN的各种接入方式进行更精细的控制。
表1-13 配置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 |
为了使用户能够访问VPN实例内的服务器资源,除了进行本配置外,还需要进行如下配置:
· 创建VPN实例。
· SSL VPN网关设备连接企业网内部服务器的接口上绑定该VPN实例。
· 对于IP接入方式,还需要在SSL VPN访问实例引用的SSL VPN AC接口上绑定该VPN实例。
表1-14 配置SSL VPN访问实例关联VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN访问实例视图 |
sslvpn context context-name |
- |
配置SSL VPN访问实例关联的VPN实例 |
vpn-instance vpn-instance-name |
缺省情况下,SSL VPN访问实例关联公网 |
为了使用户可以访问VPN实例内的SSL VPN网关,除了进行本配置外,还需要进行如下配置:
· 创建VPN实例。
· SSL VPN网关设备连接用户的接口上绑定该VPN实例。
表1-15 配置SSL VPN网关所属的VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN网关视图 |
sslvpn gateway gateway-name |
- |
配置SSL VPN网关所属的VPN实例 |
vpn-instance vpn-instance-name |
缺省情况下,SSL VPN网关属于公网 |
缺省情况下,SSL VPN网关只允许用户以HTTPS方式登录访问,不允许用户以HTTP方式登录访问。配置HTTP重定向功能后,SSL VPN网关将监听指定的端口号,并把指定端口号的HTTP流量重定向到HTTPS服务监听的端口,向客户端发送重定向报文,让客户端重新以HTTPS方式登录。
表1-16 配置HTTP重定向
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN网关视图 |
sslvpn gateway gateway-name |
- |
开启HTTP流量的重定向功能 |
http-redirect [ port port-number ] |
缺省情况下,未开启HTTP流量的重定向功能,SSL VPN网关不会处理HTTP流量 |
管理员可以根据需要对SSL VPN页面进行定制。目前,支持的页面定制项包括:登录页面欢迎信息、页面标题、logo图标。
表1-17 配置页面定制
操作 |
命令 |
说明 |
进入系统视图 |
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图标 |
通过配置SSL VPN用户控制,可以控制SSL VPN登陆用户的上下线和在线数量。
表1-18 配置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 |
开启SSL VPN日志功能后,用户上线下线以及用户访问资源信息时,SSL VPN网关会生成日志信息。生成的日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。
表1-19 开启SSL VPN日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启SSL VPN全局日志生成功能 |
sslvpn log enable |
缺省情况下,SSL VPN全局日志生成功能处于关闭状态 |
进入SSL VPN访问实例视图 |
sslvpn context context-name |
- |
开启用户上下线日志生成功能 |
log user-login enable |
缺省情况下,用户上下线日志生成功能处于关闭状态 |
开启用户资源访问日志生成功能 |
log resource-access enable [ brief | filtering ] * |
缺失情况下,用户访问资源日志生成功能处于关闭状态 |
开启IP接入连接关闭的日志生成功能 |
ip-tunnel log connection-close |
缺省情况下,IP接入连接关闭的日志生成功能处于关闭状态 |
为了使用iMC短信验证,需要开启iMC短信验证服务功能,并配置iMC服务器的IP地址和端口号。
表1-20 配置和开启iMC短信验证服务
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN访问实例视图 |
sslvpn context context-name |
- |
配置iMC服务器的IP地址和端口号 |
sms-imc address ip-address port port-number [ vpn-instance vpn-instance-name ] |
缺省情况下,未配置短信验证使用的iMC服务器的IP地址和端口号 |
开启当前的iMC短信验证服务 |
sms-imc enable |
缺省情况下,当前SSL VPN访问实例下iMC短信验证服务处于关闭状态 |
当用户需要快速访问企业内网资源时,可以配置快捷方式,以便在用户的Web页面上增加访问内网资源的快捷方式,用户单击配置的快捷方式名称就能够访问对应的内网资源。
表1-21 配置快捷方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SSL VPN访问实例视图 |
sslvpn context context-name |
- |
创建快捷方式,并进入快捷方式视图 |
shortcut shortcut-name |
缺省情况下,设备上不存在快捷方式 |
(可选)配置快捷方式的描述信息 |
description text |
缺省情况下,设备上不存在配置描述信息 |
配置快捷方式对应的资源 |
execution script |
缺省情况下,不存在快捷方式对应的资源 |
退回SSL VPN访问实例视图 |
quit |
- |
创建快捷方式列表,并进入快捷方式列表视图 |
shortcut-list list-name |
缺省情况下,设备上不存在快捷方式列表 |
配置快捷方式列表引用快捷方式 |
resources shortcut shortcut-name |
缺省情况下,快捷方式列表未引用任何快捷方式 |
退回SSL VPN访问实例视图 |
quit |
- |
进入SSL VPN策略组视图 |
policy-group group-name |
- |
配置策略组引用快捷方式列表 |
resources shortcut-list list-name |
缺省情况下,策略组未引用任何快捷方式列表 |
在完成上述配置后,在任意视图下执行display命令可以显示SSL VPN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除SSL VPN AC接口的统计信息。
表1-22 SSL VPN显示和维护
操作 |
命令 |
显示SSL VPN AC接口的相关信息 |
display interface sslvpn-ac [ interface-number ] [ brief [ description | down ] ] |
显示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 ] |
显示TCP端口转发的连接信息(集中式设备-IRF模式) |
display sslvpn port-forward connection [ context context-name ] [ slot slot-number ] |
显示SSL VPN会话信息 |
display sslvpn session [ context context-name ] [ user user-name | verbose ] |
显示通过IP接入的SSL VPN用户的报文统计信息 |
display sslvpn ip-tunnel statistics [ context context-name ] [ user user-name ] |
清除SSL VPN AC接口的统计信息 |
reset counters interface [ sslvpn-ac [ interface-number ] ] |
清除IP方式接入的SSL VPN用户报文统计信息 |
reset sslvpn ip-tunnel statistics [ context context-name [ session session-id ] ] |
Device为SSL VPN网关设备,连接公网用户和企业私有网络。SSL VPN用户通过Device能够安全地访问位于企业私有网络内的Server A和Server B。其中,Server A和Server B均为Web服务器,Sever A使用HTTP协议和80端口号,Sever B使用HTTPS协议和443端口号。具体需求如下:
· Device对SSL VPN用户进行本地认证和本地授权;
· User1仅能访问Server A;
· User2仅能访问Server B。
图1-11 Web接入组网图(缺省证书)
· 请确保SSL VPN用户和SSL VPN网关设备Device间的路由可达。
· 请确保SSL VPN网关设备Device与Server A、Server B间的路由可达。
(1) 配置SSL VPN网关
# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为4430。
<Device> system-view
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 4430
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(2) 配置SSL VPN访问实例
# 配置SSL VPN访问实例ctxweb1,引用SSL VPN网关gw,指定域名为domainweb1。
[Device] sslvpn context ctxweb1
[Device-sslvpn-context-ctxweb1] gateway gw domain domainweb1
# 创建URL列表urllist。
[Device-sslvpn-context-ctxweb1] url-list urllist
# 配置URL列表标题为web。
[Device-sslvpn-context-ctxweb1-url-list-urllist] heading web
# 创建一个URL表项,链接名为serverA,对应的URL为http://20.2.2.2。
[Device-sslvpn-context-ctxweb1-url-list-urllist] url serverA url-value http://20.2.2.2
[Device-sslvpn-context-ctxweb1-url-list-urllist] quit
# SSL VPN访问实例ctx1下创建策略组resourcegrp1,引用URL列表urllist。
[Device-sslvpn-context-ctxweb1] policy-group resourcegrp1
[Device-sslvpn-context-ctxweb1-policy-group-resourcegrp1] resources url-list urllist
[Device-sslvpn-context-ctxweb1-policy-group-resourcegrp1] quit
# 开启SSL VPN访问实例ctxweb1。
[Device-sslvpn-context-ctxweb1] service enable
[Device-sslvpn-context-ctxweb1] quit
# 配置SSL VPN访问实例ctxweb2,引用SSL VPN网关gw,指定域名为domainweb2。
[Device] sslvpn context ctxweb2
[Device-sslvpn-context-ctxweb2] gateway gw domain domainweb2
# 创建URL列表urllist。
[Device-sslvpn-context-ctxweb2] url-list urllist
# 配置URL列表标题为web。
[Device-sslvpn-context-ctxweb2-url-list-urllist] heading web
# 创建一个URL表项,链接名为serverA,对应的URL为https://30.3.3.3。
[Device-sslvpn-context-ctxweb2-url-list-urllist] url serverB url-value https://30.3.3.3
[Device-sslvpn-context-ctxweb2-url-list-urllist] quit
# SSL VPN访问实例ctx1下创建策略组resourcegrp2,引用URL列表urllist。
[Device-sslvpn-context-ctxweb2] policy-group resourcegrp2
[Device-sslvpn-context-ctxweb2-policy-group-resourcegrp2] resources url-list urllist
[Device-sslvpn-context-ctxweb2-policy-group-resourcegrp2] quit
# 开启SSL VPN访问实例ctxweb2。
[Device-sslvpn-context-ctxweb2] service enable
[Device-sslvpn-context-ctxweb2] quit
(3) 配置SSL VPN用户
# 创建SSL VPN用户sslvpnuser1,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为resourcegrp1。
[Device] local-user sslvpnuser1 class network
[Device-luser-network-sslvpnuser1] password simple 123456
[Device-luser-network-sslvpnuser1] service-type sslvpn
[Device-luser-network-sslvpnuser1] authorization-attribute user-role network-operator
[Device-luser-network-sslvpnuser1] authorization-attribute sslvpn-policy-group resourcegrp1
[Device-luser-network-sslvpnuser1] quit
# 创建SSL VPN用户sslvpnuser2,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为resourcegrp2。
[Device] local-user sslvpnuser2 class network
[Device-luser-network-sslvpnuser2] password simple 123456
[Device-luser-network-sslvpnuser2] service-type sslvpn
[Device-luser-network-sslvpnuser2] authorization-attribute user-role network-operator
[Device-luser-network-sslvpnuser2] authorization-attribute sslvpn-policy-group resourcegrp2
[Device-luser-network-sslvpnuser2] quit
# 在Device上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 4430
Front VPN instance: Not configured
# 在Device上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctxweb1和ctxweb2均处于Up状态。
[Device] display sslvpn context
Context name: ctxweb1
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication: Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
Domain name: domainweb1
Maximum users allowed: 1048575
VPN instance: Not configured
Idle timeout: 30 min
Context name: ctxweb2
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication: Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
Domain name: domainweb2
Maximum users allowed: 1048575
VPN instance: Not configured
Idle timeout: 30 min
# SSL VPN用户sslvpnuser1在PC浏览器上输入https://1.1.1.2:4430/,进入Domain List页面,如下图所示。
因为SSL VPN网关设备使用缺省证书(自签名),因此在访问SSL VPN网关的时候浏览器会提示非安全连接。
图1-12 Domain List页面
# 选择domainweb1进入登录页面,输入用户sslvpnuser1和密码123456。
图1-13 登录页面
# 单击<登录>按钮,可以成功登录SSL VPN网关。网关首页的“书签”栏显示用户可以访问的Web资源serverA,如下图所示。
图1-14 网关首页
# 单击链接“serverA”,即可访问企业私网服务器Server A,显示信息略。
# SSL VPN用户sslvpnuser2在PC浏览器上输入https://1.1.1.2:4430/,进入Domain List页面,如下图所示。
图1-15 Domain List页面
# 选择domainweb2进入登录页面,输入用户sslvpnuser2和密码123456。
图1-16 登录页面
# 单击<登录>按钮,可以成功登录SSL VPN网关。网关首页的“书签”栏显示用户可以访问的Web资源serverB,如下图所示。
图1-17 网关首页
# 单击链接“serverB”,即可访问企业私网服务器Server B,显示信息略。
# 用户登录成功后,在Device上可以看到用户会话信息。
[Device] display sslvpn session
Total users: 2
SSL VPN context: ctxweb1
Users: 1
Username Connections Idle time Created User IP
sslvpnuser1 6 0/00:00:23 0/00:00:23 40.1.1.1
SSL VPN context: ctxweb2
Users: 1
Username Connections Idle time Created User IP
sslvpnuser2 6 0/00:00:03 0/00:00:03 50.1.1.1
Device为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1、VPN 2。用户通过Device能够安全地访问位于VPN 1内的Server A和VPN 2内的Server B。其中,Server A和Server B均为Web服务器,Sever A使用HTTP协议和80端口号,Sever B使用HTTPS协议和443端口号;Device对用户进行本地认证和本地授权。
图1-18 Web接入组网图(非缺省证书)
在开始下面的配置之前,假设已完成如下配置:
· Device上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。
· Device已获取到CA证书ca.cer和服务器证书server.pfx。
· Device与SSL VPN客户端、Server A、Server B之间路由可达。
(1) 配置PKI域
# 配置PKI域sslvpn。
<Device> system-view
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
# 导入CA证书ca.cer和服务器证书server.pfx。
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(2) 配置SSL服务器端策略
# 配置SSL服务器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(3) 配置SSL VPN网关
# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为2000,并引用SSL服务器端策略ssl。
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000
[Device-sslvpn-gateway-gw] ssl server-policy ssl
# 开启SSL VPN网关gw。
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(4) 配置SSL VPN访问实例
# 配置SSL VPN访问实例ctx1引用SSL VPN网关gw,指定域名为domain1,并配置SSL VPN访问实例关联的VPN实例为VPN1。
[Device] sslvpn context ctx1
[Device-sslvpn-context-ctx1] gateway gw domain domain1
[Device-sslvpn-context-ctx1] vpn-instance VPN1
# 创建URL列表urllist。
[Device-sslvpn-context-ctx1] url-list urllist
# 配置URL列表标题为web。
[Device-sslvpn-context-ctx1-url-list-urllist] heading web
# 添加一个URL表项,链接名为serverA,对应的URL为http://20.2.2.2。
[Device-sslvpn-context-ctx1-url-list-urllist] url serverA url-value http://20.2.2.2
[Device-sslvpn-context-ctx1-url-list-urllist] quit
# SSL VPN访问实例ctx1下创建策略组pgroup,引用Web资源,并指定其为缺省策略组。
[Device-sslvpn-context-ctx1] policy-group pgroup
[Device-sslvpn-context-ctx1-policy-group-pgroup] resources url-list urllist
[Device-sslvpn-context-ctx1-policy-group-pgroup] quit
[Device-sslvpn-context-ctx1] default-policy-group pgroup
# 开启SSL VPN访问实例ctx1。
[Device-sslvpn-context-ctx1] service enable
[Device-sslvpn-context-ctx1] quit
# 配置SSL VPN访问实例ctx2引用SSL VPN网关gw,指定域名为domain2,并配置SSL VPN访问实例关联的VPN实例为VPN2。
[Device] sslvpn context ctx2
[Device-sslvpn-context-ctx2] gateway gw domain domain2
[Device-sslvpn-context-ctx2] vpn-instance VPN2
# 创建URL列表urllist。
[Device-sslvpn-context-ctx2] url-list urllist
# 配置URL列表标题为web。
[Device-sslvpn-context-ctx2-url-list-urllist] heading web
# 添加一个URL表项,链接名为serverB,对应的URL为30.3.3.3。
[Device-sslvpn-context-ctx2-url-list-urllist] url serverB url-value https://30.3.3.3
[Device-sslvpn-context-ctx2-url-list-urllist] quit
# SSL VPN访问实例ctx2下创建策略组pgroup,引用Web资源,并指定其为缺省策略组。
[Device-sslvpn-context-ctx2] policy-group pgroup
[Device-sslvpn-context-ctx2-policy-group-pgroup] resource url-list urllist
[Device-sslvpn-context-ctx2-policy-group-pgroup] quit
[Device-sslvpn-context-ctx2] default-policy-group pgroup
# 开启SSL VPN访问实例ctx2。
[Device-sslvpn-context-ctx2] service enable
[Device-sslvpn-context-ctx2] quit
(5) 配置SSL VPN用户
# 创建本地SSL VPN用户sslvpn,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为pgroup。
[Device] local-user sslvpn class network
[Device-luser-network-sslvpn] password simple 123456
[Device-luser-network-sslvpn] service-type sslvpn
[Device-luser-network-sslvpn] authorization-attribute user-role network-operator
[Device-luser-network-sslvpn] authorization-attribute sslvpn-policy-group pgroup
[Device-luser-network-sslvpn] quit
# 在Device上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。
[Device] 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上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx1和ctx2均处于Up状态。
[Device] display sslvpn context
Context name: ctx1
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Dynamic password: Disabled
Verify code validation: Disabled
Default policy group: pgroup
Associated SSL VPN gateway:gw
Domain name: domain1
Maximum users allowed: 1048575
VPN instance: VPN1
Idle timeout: 30 min
Context name: ctx2
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: pgroup
Associated SSL VPN gateway: gw
Domain name: domain2
Maximum users allowed: 1048575
VPN instance: VPN2
Idle timeout: 30 min
# 用户在PC浏览器上输入https://1.1.1.2:2000/,进入Domain List页面。
图1-19 Domain List页面
# 用户选择domain1进入登录页面,输入用户名sslvpn和密码123456,点击<登录>按钮,可以成功登录。
图1-20 登录页面
# 用户登录成功后,在Device上可以看到用户会话信息。
[Device] display sslvpn session context ctx1
SSL VPN context: ctx1
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:12:05 0/00:04:14 40.1.1.1
# 网关首页的“书签”栏显示用户可以访问的远端web资源。
图1-21 网关首页
# 点击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上可以看到用户会话信息。
[Device] display sslvpn session context ctx2
SSL VPN context: ctx2
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:02:05 0/00:01:11 40.1.1.1
# 网关首页的“书签”栏显示用户可以访问的远端web资源。
图1-22 网关首页
# 点击serverB,可以进入Web服务器Server B的HTTPS网站首页面,且在浏览器的地址栏中显示如下格式的URL:https://1.1.1.2:2000/_proxy2/https/443/30.3.3.3/。
Device为SSL VPN网关设备,连接公网用户和企业私有网络。用户通过Device可以安全地访问私有网络内的Telnet服务器Server。Device采用本地认证和授权方式对用户进行认证和授权。
图1-23 TCP接入配置组网图(缺省证书)
· 请确保SSL VPN用户和SSL VPN网关设备Device间的路由可达。
· 请确保SSL VPN网关设备Device与Server间的路由可达。
· SSL VPN用户主机上需要安装Java运行环境。
(1) 配置SSL VPN网关
# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为4430。
<Device> system-view
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 4430
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(2) 配置SSL VPN访问实例
# 配置SSL VPN访问实例ctxtcp,引用SSL VPN网关gw,指定域名为domaintcp。
[Device] sslvpn context ctxtcp
[Device-sslvpn-context-ctxtcp] gateway gw domain domaintcp
# 创建端口转发表项pfitem。
[Device-sslvpn-context-ctxtcp] port-forward-item pfitem
# 添加端口转发实例,将20.2.2.2提供的Telnet服务映射到本地地址127.0.0.23、本地端口2323。
[Device-sslvpn-context-ctxtcp-port-forward-item-pfitem] local-port 2323 local-name 127.0.0.23 remote-server 20.2.2.2 remote-port 23
[Device-sslvpn-context-ctxtcp-port-forward-item-pfitem] quit
# 配置端口转发列表pflist,并引用端口转发表项pfitem。
[Device-sslvpn-context-ctxtcp] port-forward pflist
[Device-sslvpn-context-ctxtcp-port-forward-pflist] resources port-forward-item pfitem
[Device-sslvpn-context-ctxtcp-port-forward-pflist] quit
# 创建SSL VPN策略组resourcegrp,并引用端口转发列表pflist。
[Device-sslvpn-context-ctxtcp] policy-group resourcegrp
[Device-sslvpn-context-ctxtcp-policy-group-resourcegrp] resources port-forward pflist
[Device-sslvpn-context-ctxtcp-policy-group-resourcegrp] quit
# 开启SSL VPN访问实例ctxtcp。
[Device-sslvpn-context-ctxtcp] service enable
[Device-sslvpn-context-ctxtcp] quit
(3) 配置SSL VPN用户
# 创建本地SSL VPN用户sslvpnuser,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为resourcegrp。
[Device] local-user sslvpnuser class network
[Device-luser-network-sslvpnuser] password simple 123456
[Device-luser-network-sslvpnuser] service-type sslvpn
[Device-luser-network-sslvpnuser] authorization-attribute sslvpn-policy-group resourcegrp
[Device-luser-network-sslvpnuser] authorization-attribute user-role network-operator
[Device-luser-network-sslvpnuser] quit
# 在Device上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 4430
Front VPN instance: Not configured
# 在Device上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx处于Up状态。
[Device] display sslvpn context
Context name: ctxtcp
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication: Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
Domain name: domaintcp
Maximum users allowed: 1048575
VPN instance: Not configured
Idle timeout: 30 min
# SSL VPN用户sslvpnuser在PC浏览器上输入https://1.1.1.2:4430/,进入Domain List页面,如下图所示。
因为SSL VPN网关设备使用缺省证书(自签名),因此在访问SSL VPN网关的时候浏览器会提示非安全连接。
图1-24 Domain List页面
# 选择domaintcp进入登录页面,输入用户sslvpnuser和密码123456。
图1-25 登录页面
# 单击<登录>按钮,可以成功登录SSL VPN网关。在网页的应用程序栏中选择“启动TCP客户端应用程序”。
# 单击<启动>按钮,下载TCP接入客户端软件并运行。
不能通过双击的方式打开对应的TCP应用程序。
# 用户在PC上执行telnet 127.0.0.23 2323,可以远程连接到Server,显示信息略。
# 在Device上可以看到用户会话信息。
[Device] display sslvpn session
Total users: 1
SSL VPN context: ctxtcp
Users: 1
Username Connections Idle time Created User IP
sslvpnuser 5 0/00:00:51 0/00:17:26 40.1.1.1
# 在Device上可以看到TCP端口转发的连接信息。
[Device] display sslvpn port-forward connection
SSL VPN context: ctxtcp
Client address: 40.1.1.1
Client port : 50335
Server address: 20.2.2.2
Server port : 23
State : Connected
Device为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1。用户通过Device可以安全地访问VPN 1内的Telnet服务器Server。Device采用本地认证和授权方式对用户进行认证和授权。
图1-26 TCP接入配置组网图(非缺省证书)
在开始下面的配置之前,假设已完成如下配置:
· Device上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。
· Device已获取到CA证书ca.cer和服务器证书server.pfx。
· Device与SSL VPN客户端、Server之间路由可达。
· SSL VPN用户主机上需要安装Java运行环境。
(1) 配置PKI域
# 配置PKI域sslvpn。
<Device> system-view
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
# 导入CA证书ca.cer和服务器证书server.pfx。
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(2) 配置SSL服务器端策略
# 配置SSL服务器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(3) 配置SSL VPN网关
# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为2000,并引用SSL服务器端策略ssl。
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000
[Device-sslvpn-gateway-gw] ssl server-policy ssl
# 开启SSL VPN网关gw。
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(4) 配置SSL VPN访问实例
# 配置SSL VPN访问实例ctx引用SSL VPN网关gw,并配置SSL VPN访问实例关联的VPN实例为VPN1。
[Device] sslvpn context ctx
[Device-sslvpn-context-ctx] gateway gw
[Device-sslvpn-context-ctx] vpn-instance VPN1
# 创建端口转发表项pfitem1。
[Device-sslvpn-context-ctx] port-forward-item pfitem1
# 添加端口转发实例,将20.2.2.2提供的Telnet服务映射到本地地址127.0.0.1、本地端口2323。
[Device-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
[Device-sslvpn-context-ctx-port-forward-item- pfitem1] quit
# 创建端口转发列表plist,并引用端口转发表项pfitem1。
[Device-sslvpn-context-ctx] port-forward plist
[Device-sslvpn-context-ctx-port-forward-plist] resource port-forward-item pfitem1
[Device-sslvpn-context-ctx-port-forward-plist] quit
# 创建SSL VPN策略组pgroup,并引用端口转发列表plist。
[Device-sslvpn-context-ctx] policy-group pgroup
[Device-sslvpn-context-ctx-policy-group-pgroup] resources port-forward plist
[Device-sslvpn-context-ctx-policy-group-pgroup] quit
# 开启SSL VPN访问实例ctx。
[Device-sslvpn-context-ctx] service enable
[Device-sslvpn-context-ctx] quit
(5) 配置SSL VPN用户
# 创建本地SSL VPN用户sslvpn,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为pgroup。
[Device] local-user sslvpn class network
[Device-luser-network-sslvpn] password simple 123456
[Device-luser-network-sslvpn] service-type sslvpn
[Device-luser-network-sslvpn] authorization-attribute user-role network-operator
[Device-luser-network-sslvpn] authorization-attribute sslvpn-policy-group pgroup
[Device-luser-network-sslvpn] quit
# 在Device上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。
[Device] 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上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx处于Up状态。
[Device] display sslvpn context
Context name: ctx
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
Maximum users allowed: 1048575
VPN instance: VPN1
Idle timeout: 30 min
# 用户在PC浏览器上输入https://1.1.1.2:2000/,进入登录页面后,输入用户名sslvpn和密码123456,用户可以成功登录。
图1-27 登录页面
# 用户登录成功后,在网页的应用程序栏中选择“启动TCP客户端应用程序”。
# 单击<启动>按钮,下载TCP接入客户端软件并运行。
不能通过双击的方式打开对应的TCP应用程序。
# 用户在PC上执行telnet 127.0.0.1 2323,可以远程连接到Server,显示信息略。
# 在Device上可以看到用户会话信息。
[Device] display sslvpn session context ctx
SSL VPN context: ctx
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:12:05 0/00:04:14 40.1.1.1
# 在Device A上可以看到TCP端口转发的连接信息。
[Device] 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
Device为SSL VPN网关设备,连接公网用户和企业私有网络。用户通过Device可以通过IP
接入方式安全地访问私有网络内的Server。Device采用本地认证和授权方式对用户进行认证和授权。
图1-28 IP接入配置组网图(缺省证书)
· 请确保SSL VPN用户和SSL VPN网关设备Device间的路由可达。
· 请确保SSL VPN网关设备Device与Server间的路由可达。
· Server上存在到达网段10.1.1.0/24的路由。
(1) 配置SSL VPN网关
# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为4430。
<Device> system-view
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 4430
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(2) 创建SSL VPN客户端地址池
# 创建为SSL VPN客户端分配地址的地址池sslvpnpool,地址范围为10.1.1.1~10.1.1.10。
[Device] sslvpn ip address-pool sslvpnpool 10.1.1.1 10.1.1.10
(3) 创建SSL VPN AC接口
# 创建SSL VPN AC接口1,配置该接口的IP地址为10.1.1.100/24。
[Device] interface sslvpn-ac 1
[Device-SSLVPN-AC1] ip address 10.1.1.100 24
[Device-SSLVPN-AC1] quit
(4) 配置SSL VPN访问实例
# 配置SSL VPN访问实例ctxip,引用SSL VPN网关gw,指定域名为domainip。
[Device] sslvpn context ctxip
[Device-sslvpn-context-ctxip] gateway gw domain domainip
# 配置IP接入引用的SSL VPN AC接口1.
[Device-sslvpn-context-ctxip] ip-tunnel interface sslvpn-ac 1
# 创建路由表rtlist,并添加路由表项20.2.2.0/24。
[Device-sslvpn-context-ctxip] ip-route-list rtlist
[Device-sslvpn-context-ctxip-route-list-rtlist] include 20.2.2.0 24
[Device-sslvpn-context-ctxip-route-list-rtlist] quit
# 引用SSL VPN客户端地址池sslvpnpool。
[Device-sslvpn-context-ctxip] ip-tunnel address-pool sslvpnpool mask 24
# 创建SSL VPN策略组resourcegrp,引用路由列表rtlist,并同时配置对IP接入进行ACL过滤。
[Device-sslvpn-context-ctxip] policy-group resourcegrp
[Device-sslvpn-context-ctxip-policy-group-resourcegrp] ip-tunnel access-route ip-route-list rtlist
[Device-sslvpn-context-ctxip-policy-group-resourcegrp] filter ip-tunnel acl 3000
[Device-sslvpn-context-ctxip-policy-group-resourcegrp] quit
# 开启SSL VPN访问实例ctxip。
[Device-sslvpn-context-ctxip] service enable
[Device-sslvpn-context-ctxip] quit
# 创建ACL 3000,规则为允许源IP为10.1.1.0/24的报文访问目标IP网段20.2.2.0/24。
[Device] acl advanced 3000
[Device-acl-ipv4-adv-3000] rule permit ip source 10.1.1.0 0.0.0.255 destination 20.2.2.0 0.0.0.255
[Device-acl-ipv4-adv-3000] quit
(5) 配置SSL VPN用户
# 创建本地SSL VPN用户sslvpnuser,密码为123456,用户角色为network-operator,授权用户的SSL VPN策略组为resourcegrp。
[Device] local-user sslvpnuser class network
[Device-luser-network-sslvpnuser] password simple 123456
[Device-luser-network-sslvpnuser] service-type sslvpn
[Device-luser-network-sslvpnuser] authorization-attribute sslvpn-policy-group resourcegrp
[Device-luser-network-sslvpnuser] authorization-attribute user-role network-operator
[Device-luser-network-sslvpnuser] quit
# 在Device上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 4430
Front VPN instance: Not configured
# 在Device上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx处于Up状态。
[Device] display sslvpn context
Context name: ctxip
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication: Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
Domain name: domainip
Maximum users allowed: 1048575
VPN instance: Not configured
Idle timeout: 30 min
# SSL VPN用户sslvpnuser在PC浏览器上输入https://1.1.1.2:4430/,进入Domain List页面,如下图所示。
因为SSL VPN网关设备使用缺省证书(自签名),因此在访问SSL VPN网关的时候浏览器会提示非安全连接。
图1-29 Domain List页面
# 选择domainip进入登录页面,输入用户sslvpnuser和密码123456。
图1-30 登录页面
# 单击<登录>按钮,可以成功登录SSL VPN网关。在网页的应用程序栏中选择“启动IP客户端应用程序”。
# 单击<启动>按钮,下载IP接入客户端软件Svpnclient并安装,安装完成后,启动iNode客户端,输入如下图所示的参数。
图1-31 iNode客户端
# 单击<连接>按钮,成功登录SSL VPN客户端,如下图所示。
图1-32 成功登录SSL VPN网关
# SSL VPN用户sslvpnuser可以Ping通服务器地址20.2.2.2。
C:\>ping 20.2.2.2
Pinging 20.2.2.2 with 32 bytes of data:
Reply from 20.2.2.2: bytes=32 time=31ms TTL=254
Reply from 20.2.2.2: bytes=32 time=18ms TTL=254
Reply from 20.2.2.2: bytes=32 time=15ms TTL=254
Reply from 20.2.2.2: bytes=32 time=16ms 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 = 15ms, Maximum = 31ms, Average = 20ms
# 在Device上可以看到SSL VPN用户sslvpnuser的会话信息。
[Device] display sslvpn session user sslvpnuser
User : sslvpnuser
Context : ctxip
Policy group : resourcegrp
Idle timeout : 30 min
Created at : 16:38:48 UTC Wed 07/26/2017
Lastest : 16:47:41 UTC Wed 07/26/2017
User IPv4 address : 172.16.1.16
Alloced IP : 10.1.1.1
Session ID : 14
Web browser/OS : Windows
Device为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1。用户通过Device可以通过IP接入方式安全地访问VPN 1内的Server。Device通过RADIUS server采用远程认证和授权方式对用户进行认证和授权。
图1-33 IP接入配置组网图(非缺省证书)
在开始下面的配置之前,假设已完成如下配置:
· Device上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。
· Device已获取到CA证书ca.cer和服务器证书server.pfx。
· Device与SSL VPN客户端、Server之间路由可达。
· Server上存在到达网段10.1.1.0/24的路由。
· RADIUS server已经部署完成,能够对用户进行认证和授权。
(1) 配置PKI域
# 配置PKI域sslvpn。
<Device> system-view
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
# 导入CA证书ca.cer和服务器证书server.pfx。
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(2) 配置SSL服务器端策略
# 配置SSL服务器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(3) 配置SSL VPN网关
# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为2000,并引用SSL服务器端策略ssl。
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000
[Device-sslvpn-gateway-gw] ssl server-policy ssl
# 开启SSL VPN网关gw。
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(4) 创建SSL VPN客户端地址池
# 创建地址池ippool,指定IP地址范围为10.1.1.1~10.1.1.10。
[Device] sslvpn ip address-pool ippool 10.1.1.1 10.1.1.10
(5) 创建SSL VPN AC接口
# 创建SSL VPN AC接口1,配置该接口绑定VPN实例VPN1,并配置接口的IP地址为10.1.1.100/24。
[Device] interface sslvpn-ac 1
[Device-SSLVPN-AC1] ip binding vpn-instance VPN1
[Device-SSLVPN-AC1] ip address 10.1.1.100 24
[Device-SSLVPN-AC1] quit
(6) 配置SSL VPN访问实例
# 配置SSL VPN访问实例ctx引用SSL VPN网关gw,并配置SSL VPN访问实例关联的VPN实例为VPN1。
[Device] sslvpn context ctx
[Device-sslvpn-context-ctx] gateway gw
[Device-sslvpn-context-ctx] vpn-instance VPN1
# 配置SSL VPN访问实例使用ISP域domain1进行AAA认证。
[Device-sslvpn-context-ctx] aaa domain domain1
# 创建路由列表rtlist,并添加路由表项20.2.2.0/24。
[Device-sslvpn-context-ctx] ip-route-list rtlist
[Device-sslvpn-context-ctx-route-list-rtlist] include 20.2.2.0 255.255.255.0
[Device-sslvpn-context-ctx-route-list-rtlist] quit
# 创建名称为uriacl的URI ACL,并创建对应的URI ACL过滤规则。
[Device-sslvpn-context-ctx] uri-acl uriacl
[Device-sslvpn-context-ctx-uri-acl-uriacl] rule 1 permit uri icmp://20.2.2.0
[Device-sslvpn-context-ctx-uri-acl-uriacl] quit
# 配置SSL VPN访问实例ctx引用SSL VPN AC接口1
[Device-sslvpn-context-ctx] ip-tunnel interface sslvpn-ac 1
# 配置SSL VPN访问实例ctx,并引用路由列表rtlist和地址池ippool,同时配置对IP接入进行URI ACL过滤。
[Device-sslvpn-context-ctx] ip-tunnel address-pool ippool mask 255.255.255.0
[Device-sslvpn-context-ctx] policy-group pgroup
[Device-sslvpn-context-ctx-policy-group-pgroup] ip-tunnel access-route ip-route-list rtlist
[Device-sslvpn-context-ctx-policy-group-pgroup] filter ip-tunnel uri-acl uriacl
[Device-sslvpn-context-ctx-policy-group-pgroup] quit
# 开启SSL VPN访问实例ctx。
[Device-sslvpn-context-ctx] service enable
[Device-sslvpn-context-ctx] quit
(7) 配置RADIUS
# 配置Radius方案rscheme,指定认证和授权服务器地址均为3.3.3.2、认证和授权的共享密钥均为123456、发送给RADIUS服务器的用户名格式为不携带ISP域名。
[Device] radius scheme rscheme
[Device-radius-rscheme] primary authentication 3.3.3.2
[Device-radius-rscheme] primary accounting 3.3.3.2
[Device-radius-rscheme] accounting-on enable
[Device-radius-rscheme] key authentication simple 123456
[Device-radius-rscheme] key accounting simple 123456
[Device-radius-rscheme] user-name-format without-domain
[Device-radius-rscheme] quit
(8) 配置用户组
# 配置用户组group1,授权给该用户组的策略组为pgroup。
[Device] user-group group1
[Device-ugroup-group1] authorization-attribute sslvpn-policy-group pgroup
[Device-ugroup-group1] quit
(9) 配置ISP域
# 配置ISP域domain1,指定用户授权属性为用户组group1,认证、授权和计费使用的RADIUS方案为rscheme。
[Device] domain domain1
[Device-isp-domain1] authorization-attribute user-group group1
[Device-isp-domain1] authentication sslvpn radius-scheme rscheme
[Device-isp-domain1] authorization sslvpn radius-scheme rscheme
[Device-isp-domain1] accounting sslvpn radius-scheme rscheme
[Device-isp-domain1] quit
# 在Device上查看SSL VPN网关状态,可见SSL VPN网关gw处于Up状态。
[Device] 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上查看SSL VPN访问实例状态,可见SSL VPN访问实例ctx处于Up状态。
[Device] display sslvpn context
Context name: ctx
Operation state: Up
AAA domain: domain1
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
Maximum users allowed: 1048575
VPN instance: VPN1
Idle timeout: 30 min
# 用户在PC上启动IP接入客户端软件,输入访问地址1.1.1.2、端口号2000、用户名sslvpn、密码123456,登录成功。
# 在Device上可以看到用户会话信息。
[Device] display sslvpn session context ctx
SSL VPN context: ctx
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:02:05 0/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。
C:\>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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!