04-SSL VPN配置
本章节下载: 04-SSL VPN配置 (950.75 KB)
SSL VPN以SSL(Secure Sockets Layer,安全套接字层)为基础提供远程的安全连接服务。用户可通过互联网,使用内嵌SSL协议的浏览器与远端的Web服务器建立安全的连接,访问内部资源。企业或机构可通过SSL VPN来为移动用户或者外部客户提供访问内部资源的服务并保证安全性。
SSL VPN服务通过SSL VPN网关来提供。SSL VPN网关位于远端接入用户和企业内部网络之间,负责在二者之间转发报文。管理员需要在SSL VPN网关上创建与企业网内服务器对应的资源。
SSL VPN网关与远端接入用户建立SSL连接,并对接入用户进行身份认证。远端接入用户的访问请求只有通过SSL VPN网关的安全检查和认证后,才会被SSL VPN网关转发到企业网络内部,从而实现对企业内部资源的保护。
如图1-1所示,SSL VPN的工作机制为:
(1) 远程接入用户与SSL VPN网关建立HTTPS连接,通过SSL提供的基于证书的身份验证功能,SSL VPN网关和远程接入用户可以验证彼此的身份。
(2) 远程接入用户输入用户名、密码等身份信息,SSL VPN网关对用户的身份进行认证,并对用户可以访问的资源进行授权。
(3) 用户获取到可以访问的资源,通过SSL连接将访问请求发送给SSL VPN网关。
(4) SSL VPN网关将资源访问请求转发给企业网内的服务器。
(5) 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页面进行的。
Web接入方式下,管理员需要在SSL VPN网关上创建URL列表,URL表项为企业网内部服务器的IP地址(或域名)。
Web方式接入过程如下:
(1) 用户使用浏览器,通过HTTPS协议登录SSL VPN网关。
(2) SSL VPN网关对用户进行认证,并对允许用户访问的URL资源进行授权,授权的URL资源以URL链接的形式展示在网关的Web页面上。
(3) 用户在SSL VPN网关的Web页面上访问经过授权的URL资源。
(4) SSL VPN网关解析接收到的Web请求,并使用HTTP或HTTPS协议向Web服务器发送Web请求。
(5) SSL VPN网关接收到Web服务器的应答报文后,通过SSL连接将其转发给用户浏览器。
图1-4 Web接入方式示意图
目前,通过Web接入方式可以访问的资源只有Web服务器。
TCP接入方式是指用户对企业内部服务器开放端口的安全访问。通过TCP接入方式,用户可以访问任意基于TCP的服务,包括远程访问服务(如Telnet)、桌面共享服务、电子邮件服务、Notes服务以及其他使用固定端口的TCP服务。
用户利用TCP接入方式访问内网服务器时,需要在SSL VPN客户端(用户使用的终端设备)上安装专用的TCP接入客户端软件,由该软件实现使用SSL连接传送应用层数据。
TCP接入方式下,管理员需要在SSL VPN网关上创建端口转发规则,将企业网内部服务器的IP地址(或域名)和端口号映射为SSL VPN客户端的本地IP地址(或主机名)和本地端口号。
TCP方式接入过程如下:
(1) 用户使用浏览器,通过HTTPS协议登录SSL VPN网关。
(2) SSL VPN网关对用户进行认证,并对允许用户访问的TCP接入服务(即端口转发规则)进行授权。
(3) 用户在SSL VPN网关的Web页面上下载TCP接入客户端软件
(4) 用户在SSL VPN客户端上启动TCP接入客户端软件,可以看到授权访问的TCP接入服务。TCP接入客户端软件在SSL VPN客户端上打开授权的端口转发规则中指定的本地端口号。
(5) 用户访问本地IP地址(或主机名)和本地端口号时,TCP接入客户端软件将访问请求通过SSL连接发送给SSL VPN网关。
(6) SSL VPN网关解析接收到的请求,并根据本地配置的端口转发规则,将该请求转发给对应的内部服务器。
(7) 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客户端上安装一个虚拟网卡。
IP接入方式下,管理员在SSL VPN网关上创建SSL VPN AC接口,并配置下发给SSL VPN客户端的路由表项。
如图1-7所示,IP方式接入过程如下:
(1) 用户在客户端上安装IP接入客户端软件后,启动该软件并登录。
(2) SSL VPN网关对其进行认证和授权。认证、授权通过后,SSL VPN网关为客户端的虚拟网卡分配IP地址,并将授权用户访问的IP接入资源(即路由表项)发送给客户端。
(3) 客户端为虚拟网卡设置IP地址,并添加路由表项,路由的出接口为虚拟网卡。
(4) 用户在客户端上访问企业内网服务器时,访问请求报文匹配添加的路由表项,该报文将进行SSL封装,并通过虚拟网卡发送给SSL VPN网关的SSL VPN AC接口。
(5) SSL VPN网关对SSL报文进行解封装,并将IP报文转发给内网服务器。
(6) 内网服务器将应答报文发送给SSL VPN网关。
(7) 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实例的详细介绍,请参见“VPN实例配置指导”中的“VPN实例”。
图1-10 SSL VPN支持VPN多实例示意图
设备缺省支持同时登录的用户数与设备型号有关,请以设备实际情况为准。
型号 |
缺省支持同时登录用户数 |
F5010/F5020/F5020-GM/F5030/F5030-6GW/F5040/F5060/F5080/F5000-V30/F5000-C/F5000-S/F5000-M/F5000-A |
15 |
F5000-AI-20/F5000-AI-40 |
15 |
F1000-AI-20/F1000-AI-30/F1000-AI-50 |
15 |
F1005/F1010/F1020/F1020-GM/F1030/F1030-GM/F1050/F1060/F1070/F1070-GM/F1070-GM-L/F1080/F1000-V70 |
15 |
F1003-L/F1005-L/F1010-L |
15 |
F1000-AK108/AK109/AK110/AK115/AK120/AK125/AK130/AK135/AK140/AK145/AK150/AK155/AK160/AK165/AK170/AK175/AK180/AK185/AK710/AK711 |
15 |
F1000-AK1110/AK1120/AK1130/AK1140/AK1212/AK1222/AK1232/AK1312/AK1322/AK1332 |
15 |
F1000-GM-AK370/F1000-GM-AK380 |
200 |
LSU3FWCEA0/LSUM1FWCEAB0/LSX1FWCEA1 |
15 |
LSXM1FWDF1/LSUM1FWDEC0/IM-NGFWX-IV/LSQM1FWDSC0/LSWM1FWD0/LSPM6FWD/LSQM2FWDSC0 |
15 |
安装License可以增加同时在线的用户数。关于License的详细介绍请参见“基础配置指导”中的“License管理”。
用户先采用Web接入方式登录SSL VPN网关,又在Web页面上下载并运行IP接入客户端。此时用户通过两种接入方式访问SSL VPN网关,SSL VPN网关上会为该用户生成一个SSL VPN会话。之后如果用户从浏览器退出或者从IP接入客户端退出,则会因为SSL VPN会话断开而将无法继续访问对应的Web接入服务资源和IP接入服务资源。
配置SSL VPN访问控制策略时,过滤规则引用的ACL规则中不能存在VPN实例,否则该规则不能生效。
SSL VPN相关配置均在SSL VPN网关设备上进行。SSL VPN配置任务如下:
(1) 配置SSL VPN网关
(2) 配置SSL VPN访问实例
(3) 配置SSL VPN用户认证
(4) 创建URI ACL
(5) 配置接入服务
¡ 配置IP接入服务
(6) (可选)配置SSL VPN缺省策略组
(7) (可选)配置SSL VPN支持VPN多实例
(8) (可选)配置HTTP重定向
(9) (可选)配置SSL VPN页面
(10) (可选)定制SSL VPN页面信息
(11) (可选)配置SSL VPN用户控制
(12) (可选)开启SSL VPN日志功能
进行SSL VPN配置前,需要在SSL VPN网关上完成以下操作:
· 配置PKI,为SSL VPN网关获取数字证书,配置方法请参见“安全配置指导”中的“PKI”。
· 配置SSL服务器端策略,配置方法请参见“安全配置指导”中的“SSL”。
SSL VPN网关使用缺省地址时,端口号不能与设备的HTTPS管理地址的端口号相同。
如果引用的SSL服务器策略有变化,需要重新开启SSL VPN网关才能生效。
SSL VPN网关的IP地址和端口号与HTTPS管理地址和端口号不能完全相同,如果完全相同,则用户访问此地址和端口时,只能访问SSL VPN网关页面,而不能访问设备的管理页面。
SSL VPN网关的IPv4地址和IPv6地址不能同时生效,若同时配置了IPv4地址和IPv6地址,则最后一次配置的IP地址生效。
(1) 进入系统视图。
system-view
(2) 创建SSL VPN网关,并进入SSL VPN网关视图。
sslvpn gateway gateway-name
(3) 配置SSL VPN网关的IPv4地址和端口号。
ip address ip-address [ port port-number ]
缺省情况下,SSL VPN网关的IP地址为0.0.0.0,端口号为443。
执行本配置时,如果没有指定端口号,则缺省端口号为443。
(4) 配置SSL VPN网关的IPv6地址和端口号。
ipv6 address ipv6-address [ port port-number ]
缺省情况下,未配置SSL VPN网关的IPv6地址和端口号。
执行本配置时,如果没有指定端口号,则缺省端口号为443。
(5) 指定SSL VPN网关引用SSL服务器端策略。
ssl server-policy policy-name
缺省情况下,SSL VPN网关引用自签名证书的SSL服务器端策略。
(6) 开启当前的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访问实例最多可以引用10个SSL VPN网关
· SSL VPN访问实例中设置SSL VPN网关和虚拟主机时,当虚拟主机名包含下划线时(一般要求域名不能包含下划线,如果SSL VPN用于Web接入,虚拟主机名将作为了域名的一部分),此时IE浏览器无法保存Cookie,发送请求报文时不会携带Cookie,导致SSL VPN登录失败。
(1) 进入系统视图。
system-view
(2) 创建SSL VPN访问实例,并进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 配置SSL VPN访问实例引用SSL VPN网关。
gateway gateway-name [ domain domain-name | virtual-host virtual-host-name ]
缺省情况下,SSL VPN访问实例没有引用SSL VPN网关。
(4) 配置SSL VPN访问实例使用指定的ISP域进行AAA认证。
aaa domain domain-name
缺省情况下,SSL VPN访问实例使用缺省的ISP域进行认证。
SSL VPN用户的用户名中不能携带所属ISP域信息。执行本配置后,SSL VPN用户将采用指定ISP域内的认证、授权、计费方案对SSL VPN用户进行认证、授权和计费。
(5) 开启当前的SSL VPN访问实例。
service enable
缺省情况下,SSL VPN访问实例处于关闭状态。
(6) (可选)配置SSL VPN访问实例的最大会话数。
max-users max-number
缺省情况下,SSL VPN访问实例的最大会话数为1048575。
(7) (可选)配置SSL VPN会话保持空闲状态的最长时间。
timeout idle minutes
缺省情况下,SSL VPN会话保持空闲状态的最长时间为30分钟。
(8) (可选)配置SSL VPN会话保持空闲状态的流量阈值。
idle-cut traffic-threshold kilobytes
缺省情况下,未配置SSL VPN会话保持空闲状态的流量阈值。
(9) 配置SSL VPN访问实例引用SSL客户端策略。
ssl client-policy policy-name
缺省情况下,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。
执行本配置后,SSL VPN网关使用指定的SSL客户端策略与HTTPS类型的Web服务器建立连接。
用户名/密码认证功能和证书认证功能都开启的情况下,可以通过authentication use命令来控制SSL VPN用户认证的认证模式。若认证模式选用any-one,则用户只需要通过其中一种认证即可登录SSL VPN访问实例;若认证模式选用all,则用户必须通过这两种认证(即用户名/密码和证书的组合认证)方可登录SSL VPN访问实例。
用户名/密码认证、证书认证功能、验证码验证功能和iMC短信验证这几种验证方式可以同时开启,也可以只开启其中的一个或多个。若同时开启多个功能,则多个功能同时生效,用户需要同时通过多个验证才能访问企业内网资源。
对于SSL VPN证书认证功能,仅在Web接入和IP接入方式下,支持SSL服务器端强制要求对SSL客户端进行基于数字证书的身份验证;在TCP接入和移动客户端接入方式下,不支持SSL服务器端强制要求对SSL客户端进行基于数字证书的身份验证。
SSL VPN证书认证采用TCP接入方式时,移动客户端不支持强认证,只支持弱认证,只有Web接入和IP接入支持强证书认证。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 开启用户名/密码认证功能。
password-authentication enable
缺省情况下,用户名/密码认证功能处于开启状态。
(4) (可选)开启证书认证功能。
certificate-authentication enable
缺省情况下,证书认证功能处于关闭状态。
(5) 配置SSL VPN用户登录访问实例的认证模式。
authentication use { all | any-one }
缺省情况下,SSL VPN用户登录访问实例的认证模式为all。
(6) (可选)开启验证码验证功能。
verify-code enable
缺省情况下,验证码验证功能处于关闭状态。
(7) (可选)配置iMC短信验证服务。
a. 配置iMC服务器的IP地址和端口号。
sms-imc address ip-address port port-number [ vpn-instance vpn-instance-name ]
缺省情况下,未配置短信验证使用的iMC服务器的IP地址和端口号。
b. 开启当前的iMC短信验证服务。
sms-imc enable
缺省情况下,iMC短信验证服务处于关闭状态。
(8) (可选)配置OA认证服务。
a. 配置OA认证服务器的IPv4地址和端口号。
oa address ip-address port port-number [ vpn-instance vpn-instance-name ]
缺省情况下,未配置OA认证服务器的IPv4地址和端口号。
b. 开启当前的OA认证服务。
oa enable
缺省情况下,OA认证服务处于关闭状态。
URI形式的ACL用于对SSL VPN的各种接入方式进行更精细的控制。对URL进行匹配,符合要求的URL请求可以访问对应的资源。在SSL VPN访问实例视图下可以创建多个URI ACL,并且每个URI ACL下又可以配置多条URI ACL规则。若一个URI ACL中配置了多条URI ACL规则,则按照规则编号由小到大进行匹配。
URI ACL规则支持根据报文的协议类型、地址、域名、端口号和URL进行过滤,目前设备支持过滤的协议类型包括:HTTP、HTTPS、TCP、UDP、ICMP、IP。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建URI ACL,并进入URI ACL视图。
uri-acl uri-acl-name
(4) 创建URI ACL规则。
rule [ rule-id ] { deny | permit } uri uri-pattern-string
为了使用户能够通过Web接入方式访问企业内网资源,SSL VPN网关上需要创建Web接入服务资源。
Web接入方式可能会出现页面兼容性问题,需要进行适配,建议使用IP接入方式。
Web接入服务配置任务如下:
(1) 配置URL列表
(3) (可选)配置改写策略
(4) (可选)配置快捷方式
URL列表用于定义Web接入方式可访问的资源。每个URL表项对应一个企业网内的Web资源。当用户通过网关访问Web资源时,网关会对URL进行映射,以保证用户的正常访问。目前支持的映射方式有三种:常规映射、域名映射、端口映射。
以SSL VPN网关名gw(域名为https://www.gateway.com:4430,对应的IP地址为1.1.1.1),内网资源服务器URL=http://www.server.com:8080为例:
· 当不配置URL映射方式时(默认为常规映射),客户端访问内网资源服务器的URL显示为:https://www.gateway.com:4430/_proxy2/http/8080/www.server.com。
· 当配置域名映射,映射的域名为www.domain.com时,www.domain.com与内网资源http://www.server.com:8080为一一映射关系。客户端访问内网资源服务器的URL显示为:https://www.domain.com:4430。
· 当配置端口映射,又分为配置虚拟主机名和不配置虚拟主机名两种情况。
¡ 不配置虚拟主机名,引用SSL VPN网关gw2时,客户端访问内网资源服务器的URL显示为:https://2.2.2.2:4430(网关gw2的IP地址为2.2.2.2,端口号是4430)。
¡ 配置虚拟主机名,虚拟主机名为vhosta,vhosta与内网资源http://www.server.com:8080为一一映射关系。引用SSL VPN网关gw时,客户端访问内网资源服务器的URL显示为:https://vhosta:4430。
· 目前仅支持对HTML、CSS和JS类型的文件进行映射。
· 若在使用常规映射的过程中,出现URL映射遗漏和映射错误等问题,请使用域名映射或端口映射。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建URL表项,并进入URL表项视图。
url-item name
(4) 配置资源的URL。
url url
缺省情况下,未配置资源的URL。
如果URL中未指定协议类型,则默认为HTTP。
(5) (可选)引用过滤URL资源的URI ACL。
resource uri-acl uri-acl-name
缺省情况下,未引用过滤URL资源的URI ACL。
(6) (可选)配置URL资源的映射方式。
url-mapping { domain-mapping domain-name | port-mapping gateway gateway-name [ virtual-host virtual-host-name ] } [ rewrite-enable ]
缺省情况下,URL资源的映射方式为常规映射。
(7) 退回SSL VPN访问实例视图。
quit
(8) 创建URL列表,并进入URL列表视图。
url-list name
(9) (可选)配置URL列表标题。
heading string
缺省情况下,URL列表的标题为“Web”。
(10) 配置URL列表引用的URL表项。
resources url-item name
缺省情况下,URL列表未引用URL表项。
在SSL VPN策略组视图下引用URL列表。SSL VPN用户被授权某个策略组后,该策略组引用的URL列表指定的Web资源将同时授权给SSL VPN用户,SSL VPN用户可以访问这些Web资源。
SSL VPN网关可以通过高级ACL和URI ACL规则对SSL VPN用户的Web接入进行过滤,防止非法用户接入内部网络。配置SSL VPN访问控制策略后,设备对SSL VPN用户的Web接入按照如下原则过滤:
(1) 优先匹配被授权URL列表下的资源,成功匹配后用户可以访问授权资源。
(2) 若资源列表匹配失败时,则进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。
(3) 若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配规则后用户的访问请求才允许通过。
(4) 若高级ACL检查失败,则授权失败,用户不允许访问资源。
高级ACL支持根据接入请求报文的目的IP地址和目的端口号进行过滤;URI ACL支持根据接入请求报文的协议类型、地址、域名、端口号和URL进行过滤。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建SSL VPN策略组,并进入SSL VPN策略组视图。
policy-group group-name
(4) 配置策略组引用URL列表。
resources url-list url-list-name
缺省情况下,策略组没有引用任何URL列表。
(5) (可选)配置对Web接入进行过滤。
¡ 通过高级ACL方式进行过滤。
filter web-access [ ipv6 ] acl advanced-acl-number
¡ 通过URI ACL方式进行过滤。
filter web-access uri-acl uri-acl-name
缺省情况下,SSL VPN网关仅允许SSL VPN客户端访问被授权URL列表下的资源。
如果引用的ACL不存在,则SSL VPN网关拒绝所有SSL VPN客户端访问Web资源。
通过Web接入方式访问服务器资源时,管理员可以配置改写策略对网页文件进行匹配,进而改写匹配的网页文件。通过改写网页文件,管理员可以对发现的网页问题进行修复,方便维护和管理。
配置改写策略后,SSL VPN网关通过old-content命令配置的string对网页文件内容进行匹配,匹配成功之后,采用new-content命令配置的改写之后的文件内容对其进行替换。只有配置的url与网关正在处理的网页文件的URL相同时,才会根据文件策略中的配置对该网页文件内容进行改写。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建文件策略,并进入文件策略视图。
file-policy policy-name
(4) 配置文件策略应用的URL地址。
url url
(5) 配置改写的文件类型。
content-type { css | html | javascript | other }
缺省情况下,未配置文件改写类型,设备根据解析HTTP响应报文获得的文件类型对网页文件进行改写。
(6) 创建改写规则,并进入改写规则视图。
rewrite-rule rule-name
(7) 配置需要改写的文件内容。
old-content string
缺省情况下,未配置需要改写的文件内容。
(8) 配置改写之后的文件内容。
new-content string
缺省情况下,未配置改写之后的文件内容。
当用户需要快速访问企业内网资源时,可以配置快捷方式,以便在SSL VPN网关的Web页面上增加访问内网资源的快捷方式,用户单击配置的快捷方式名称就能够访问对应的内网资源。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建快捷方式,并进入快捷方式视图。
shortcut shortcut-name
(4) (可选)配置快捷方式的描述信息。
description text
缺省情况下,设备上不存在配置描述信息。
(5) 配置快捷方式对应的资源。
execution script
缺省情况下,不存在快捷方式对应的资源。
(6) 退回SSL VPN访问实例视图。
quit
(7) 创建快捷方式列表,并进入快捷方式列表视图。
shortcut-list list-name
(8) 配置快捷方式列表引用快捷方式。
resources shortcut shortcut-name
缺省情况下,快捷方式列表未引用快捷方式。
(9) 退回SSL VPN访问实例视图。
quit
(10) 进入SSL VPN策略组视图。
policy-group group-name
(11) 配置策略组引用快捷方式列表。
resources shortcut-list list-name
缺省情况下,策略组未引用任何快捷方式列表。
为了使用户能够通过TCP接入方式访问企业内网资源,SSL VPN网关上需要创建TCP接入服务资源。
TCP接入服务配置任务如下:
(1) 配置端口转发列表
端口转发表项用于定义端口转发实例和对应资源:
· 端口转发实例将企业网内的基于TCP的服务(如Telnet、SSH、POP3)映射为客户端上的本地地址和本地端口,以便客户端通过本地地址和本地端口访问企业网内的服务器。
· 配置对应的资源后,用户可以在Web页面上点击指定的转发表项访问服务器资源。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建端口转发表项,进入端口转发表项视图。
port-forward-item item-name
(4) 添加一个端口转发实例。
local-port local-port-number local-name local-name remote-server remote-server remote-port remote-port-number [ description text ]
(5) (可选)配置端口转发表项对应的资源。
execution script
(6) 退回SSL VPN访问实例视图。
quit
(7) 创建端口转发列表,并进入端口转发列表视图。
port-forward port-forward-name
(8) 配置端口转发列表引用端口转发表项。
resources port-forward-item item-name
缺省情况下,端口转发列表未引用任何端口转发表项
在SSL VPN策略组视图下引用端口转发列表。SSL VPN用户被授权某个策略组后,该策略组引用的端口转发列表指定的TCP接入服务将同时授权给SSL VPN用户,SSL VPN用户可以访问这些TCP接入服务。
SSL VPN网关可以通过高级ACL和URI ACL规则对SSL VPN用户的TCP接入进行过滤,防止非法用户接入内部网络。
配置SSL VPN访问控制策略后,设备对于PC版TCP客户端的过滤原则为:仅当成功匹配端口转发资源列表后用户可以访问授权资源,否则禁止所有客户端访问TCP接入资源;对于手机版TCP客户端的过滤原则为:
(1) 优先匹配端口转发资源列表,成功匹配后用户可以访问授权资源。
(2) 若端口转发资源列表匹配失败时,则进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。
(3) 若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配permit规则后用户的访问请求才允许通过。
(4) 若高级ACL检查失败,则授权失败,用户不允许访问资源。
高级ACL支持根据接入请求报文的目的IP地址和目的端口号进行过滤;URI ACL支持根据接入请求报文的协议类型、地址、域名、端口号和URL进行过滤。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建SSL VPN策略组,并进入SSL VPN策略组视图。
policy-group group-name
(4) 配置策略组引用端口转发列表。
resources port-forward port-forward-name
缺省情况下,策略组没有引用任何端口转发列表。
(5) (可选)配置对TCP接入进行过滤。
¡ 通过高级ACL方式进行过滤。
filter tcp-access [ ipv6 ] acl advanced-acl-number
¡ 通过URI ACL方式进行过滤。
filter tcp-access uri-acl uri-acl-name
缺省情况下,SSL VPN网关仅允许SSL VPN客户端访问端口转发列表下的资源。
如果引用的ACL不存在,则SSL VPN网关拒绝所有SSL VPN客户端访问TCP接入服务。
为了使内部服务器的应答报文正确返回给SSL VPN客户端,在内部服务器上需要配置到达SSL VPN客户端虚拟网卡所在网段的静态路由。
IP接入服务配置任务如下:
(2) 配置分配给IP接入用户的地址池
(5) (可选)配置SSL VPN用户绑定IP地址
(1) 进入系统视图。
system-view
(2) 创建SSL VPN AC接口,并进入SSL VPN AC接口视图。
interface sslvpn-ac interface-number
(3) 配置接口的IP地址。
ip address ip-address { mask | mask-length }
缺省情况下,没有指定接口的IP地址。
(4) (可选)配置接口的期望带宽。
bandwidth bandwidth-value
缺省情况下,接口的期望带宽为64kbps。
期望带宽供业务模块使用,不会对接口实际带宽造成影响。
(5) (可选)配置当前接口的描述信息。
description text
缺省情况下,接口的描述信息为“接口名 Interface”,例如:SSLVPN-AC1000 Interface。
(6) (可选)配置接口的MTU值。
mtu size
缺省情况下,接口的MTU值为1500。
(7) 开启当前接口。
undo shutdown
缺省情况下,SSL VPN AC接口均处于开启状态。
接口下的某些配置恢复到缺省情况后,会对设备上当前运行的业务产生影响。建议您在执行本配置前,完全了解其对网络产生的影响。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN AC接口视图。
interface sslvpn-ac interface-number
(3) 恢复当前接口的缺省配置。
default
您可以在执行default命令后通过display this命令确认执行效果。对于未能成功恢复缺省的配置,建议您查阅相关功能的命令手册,手工执行恢复该配置缺省情况的命令。如果操作仍然不能成功,您可以通过设备的提示信息定位原因。
SSL VPN网关将从配置的IP地址池中为客户端软件的虚拟网卡分配IP地址。
(1) 进入系统视图。
system-view
(2) 创建地址池。
sslvpn ip address-pool pool-name start-ip-address end-ip-address
为SSL VPN访问实例引用地址池,在客户端通过验证后,SSL VPN网关会从该访问实例引用的地址池中选择IP地址分配给客户端。
在SSL VPN访问实例下还可以配置路由列表,为客户端分配路由表项。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 配置IP接入引用的SSL VPN AC接口。
ip-tunnel interface sslvpn-ac interface-number
缺省情况下,IP接入未引用SSL VPN AC接口。
(4) 创建路由列表,并进入路由列表视图。
ip-route-list list-name
(5) 在路由列表中添加路由。
include ip-address { mask | mask-length }
(6) (可选)在路由列表中添加例外路由。
exclude ip-address { mask | mask-length }
(7) 退回SSL VPN访问实例视图。
quit
(8) 配置IP接入引用地址池。
ip-tunnel address-pool pool-name mask { mask-length | mask }
缺省情况下,IP接入未引用地址池。
(9) (可选)配置保活报文的发送时间间隔。
ip-tunnel keepalive seconds
缺省情况下,保活报文的发送时间间隔为30秒。
(10) (可选)配置为客户端指定的内网DNS服务器地址。
ip-tunnel dns-server { primary | secondary } ip-address
缺省情况下,未配置为客户端指定的DNS服务器地址。
(11) (可选)配置为客户端指定的内网WINS服务器地址。
ip-tunnel wins-server { primary | secondary } ip-address
缺省情况下,未配置为客户端指定的WINS服务器地址。
(12) (可选)开启通过Web方式成功登录SSL VPN网关后自动启动IP客户端功能。
web-access ip-client auto-activate
缺省情况下,通过Web方式成功登录SSL VPN网关后自动启动IP客户端功能处于关闭状态。
(13) (可选)开启通过IP方式成功登录SSL VPN网关后自动推送资源列表功能。
ip-tunnel web-resource auto-push
缺省情况下,通过IP方式成功登录SSL VPN网关后自动推送资源列表功能处于关闭状态。
在SSL VPN策略组视图下需要配置下发给客户端的路由表项。AAA服务器将某个策略组授权给SSL VPN用户后,SSL VPN网关会将该策略组下配置的路由表项下发给客户端。下发的路由表项具有三种配置方法:
· 直接配置路由表项:用于将一条路由下发给客户端。
· 配置路由列表:用于将路由列表中的多条路由同时下发给客户端。
· 强制将客户端的流量转发给SSL VPN网关(指定force-all参数):SSL VPN网关在客户端上添加优先级最高的缺省路由,路由的出接口为虚拟网卡,从而使得所有没有匹配到路由表项的流量都通过虚拟网卡发送给SSL VPN网关。SSL VPN网关还会实时监控SSL VPN客户端,不允许SSL VPN客户端删除此缺省路由,且不允许SSL VPN客户端添加优先级高于此路由的缺省路由。
SSL VPN网关可以通过高级ACL和URI ACL规则对SSL VPN用户的IP接入进行过滤,防止非法用户接入内部网络。配置SSL VPN访问控制策略后,设备对IP接入按照如下原则过滤:
(1) 进行URI ACL的规则检查,成功匹配URI ACL中permit规则后用户的访问请求才允许通过。
(2) 若URI ACL匹配失败时,再进行高级ACL的检查,成功匹配规则后用户的访问请求才允许通过。
(3) 若高级ACL检查失败,则授权失败,用户不允许访问资源。
若URI ACL和高级ACL均未引用,则SSL VPN网关默认允许所有IP接入方式的访问。
高级ACL支持根据接入请求报文的目的IP地址和目的端口号、源IP地址和源端口号、协议类型、报文优先级、分片信息、TCP报文标识、ICMP报文的消息类型和消息码信息进行过滤;URI ACL支持根据接入请求报文的协议类型、地址、域名、端口号和URL进行过滤。
配置对IP接入进行URI ACL过滤时,指定的URI ACL规则中不能包含HTTP和HTTPS协议。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建SSL VPN策略组,并进入SSL VPN策略组视图。
policy-group group-name
(4) 配置下发给客户端的路由表项。
ip-tunnel access-route { ip-address { mask-length | mask } | force-all | ip-route-list list-name }
缺省情况下,未指定下发给客户端的路由表项。
(5) (可选)配置对IP接入进行过滤。
¡ 通过高级ACL方式进行过滤。
filter ip-tunnel [ ipv6 ] acl advanced-acl-number
¡ 通过URI ACL方式进行过滤。
filter ip-tunnel uri-acl uri-acl-name
缺省情况下,SSL VPN网关禁止所有客户端访问IP接入资源。
如果引用的ACL不存在,则SSL VPN网关拒绝所有IP接入方式的访问。
(6) (可选)配置策略组引用的地址池。
ip-tunnel address-pool pool-name mask { mask-length | mask }
缺省情况下,策略组下未引用地址池。
若引用的地址池不存在或无可用地址,分配失败,用户无法通过IP接入。若策略组未引用地址池,则SSL VPN网关将使用SSL VPN访问实例中引用的地址池为客户端分配IP地址。
客户端使用IP接入方式访问SSL VPN网关时,网关需要为客户端分配IP地址。通过配置本功能,可以保证同一个用户多次访问该网关时能使用固定范围的IP地址。本功能提供以下两种方式为SSL VPN用户绑定IP地址:
· 指定固定的地址范围:为用户绑定分配的IP地址列表,当网关从SSL VPN访问实例引用地址池中为客户端分配IP地址时,优先分配绑定的IP地址。
· 指定可分配的地址数目:网关也可以为客户端自动分配空闲的IP地址,即网关会从SSL VPN访问实例引用地址池中获取指定个数的空闲IP地址,为用户绑定。
当SSL VPN策略组中引用了地址池时,配置SSL VPN用户绑定的IP地址必须是此地址池中的IP地址。
当SSL VPN策略组中未引用地址池时,配置SSL VPN用户绑定的IP地址必须是此SSL VPN访问实例引用的地址池中的IP地址。
未关联VPN实例或在同一VPN实例中,不同SSL VPN用户不能绑定相同的IP地址。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建SSL VPN用户,并进入SSL VPN用户视图。
user username
(4) 配置SSL VPN用户绑定的IP地址。
ip-tunnel bind address { ip-address-list | auto-allocate number }
缺省情况下,SSL VPN用户未绑定IP地址
为移动客户端配置SSL VPN接入服务配置任务如下:
(1) 为移动客户端指定EMO服务器
(2) (可选)为移动客户端指定Message服务器
EMO服务器用来为移动客户端提供服务。执行本命令后,SSL VPN网关会将配置的EMO服务器信息下发给客户端,以便移动客户端通过EMO服务器获取可以访问的服务资源。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 配置为客户端指定的EMO服务器。
emo-server address { host-name | ipv4-address } port port-number
缺省情况下,未配置为客户端指定的EMO服务器。
Message服务器用来为移动客户端提供服务。执行本命令后,SSL VPN网关会将配置的Message服务器信息下发给客户端,以便客户端访问Message服务器。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 配置为客户端指定的Message服务器。
message-server address { host-name | ipv4-address } port port-number
缺省情况下,未配置为客户端指定的Message服务器。
远端接入用户访问SSL VPN访问实例时,如果AAA服务器没有为该用户授权策略组,则SSL VPN网关为用户下发缺省SSL VPN策略组,定义该用户可访问的资源。如果没有配置缺省SSL VPN策略组,则SSL VPN网关拒绝用户的接入请求。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建策略组,并进入SSL VPN策略组视图。
policy-group group-name
(4) 为策略组指定资源。
¡ 为SSL VPN策略组配置指定Web接入资源。
resources url-list url-list-name
缺省情况下,策略组没有引用任何URL列表。
¡ 为SSL VPN策略组配置指定TCP接入资源。
resources port-forward port-forward-name
缺省情况下,策略组没有引用任何端口转发列表。
¡ 为SSL VPN策略组配置指定IP接入资源。
ip-tunnel access-route { ip-address { mask-length | mask } | force-all | ip-route-list list-name }
缺省情况下,未指定下发给客户端的路由表项。
(5) (可选)配置对Web接入进行过滤。
¡ 通过高级ACL方式进行过滤。
filter web-access [ ipv6 ] acl advanced-acl-number
¡ 通过URI ACL方式进行过滤。
filter web-access uri-acl uri-acl-name
缺省情况下,SSL VPN网关仅允许SSL VPN客户端访问被授权URL列表下的资源。
如果引用的ACL不存在,则SSL VPN网关拒绝所有SSL VPN客户端访问Web资源。
(6) (可选)配置对TCP接入进行过滤。
¡ 通过高级ACL方式进行过滤。
filter tcp-access [ ipv6 ] acl advanced-acl-number
¡ 通过URI ACL方式进行过滤。
filter tcp-access uri-acl uri-acl-name
缺省情况下,SSL VPN网关仅允许SSL VPN客户端访问端口转发列表下的资源。
如果引用的ACL不存在,则SSL VPN网关拒绝所有SSL VPN客户端访问TCP接入服务。
(7) (可选)配置对IP接入进行过滤。
¡ 通过高级ACL方式进行过滤。
filter ip-tunnel [ ipv6 ] acl advanced-acl-number
¡ 通过URI ACL方式进行过滤。
filter ip-tunnel uri-acl uri-acl-name
缺省情况下,SSL VPN网关禁止所有客户端访问IP接入资源。
如果引用的ACL不存在,则SSL VPN网关拒绝所有IP接入方式的访问。
(8) 退回SSL VPN访问实例视图。
quit
(9) 指定某个策略组为缺省策略组。
default-policy-group group-name
缺省情况下,没有指定缺省策略组。
将不同的SSL VPN访问实例关联不同的VPN实例,可以隔离不同访问实例内的服务器资源,避免非法用户访问特定资源的同时,还可以实现服务器资源的地址重叠。
配置此功能前,请先进行如下配置:
· 创建VPN实例。
· SSL VPN网关设备连接企业网内部服务器的接口上绑定该VPN实例。
· 对于IP接入方式,还需要在SSL VPN访问实例引用的SSL VPN AC接口上绑定该VPN实例。
有关VPN实例的详细配置,请参见“VPN实例配置指导”中的“VPN实例”。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 配置SSL VPN访问实例关联的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,SSL VPN访问实例关联公网。
指定SSL VPN网关所属的VPN实例后,只有属于同一个VPN的用户才可以访问SSL VPN网关,从而避免内部服务器资源泄漏到公网和其他VPN中。
配置此功能前,请先进行如下配置:
· 创建VPN实例。
· SSL VPN网关设备连接用户的接口上绑定该VPN实例。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN网关视图。
sslvpn gateway gateway-name
(3) 配置SSL VPN网关所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,SSL VPN网关属于公网。
缺省情况下,SSL VPN网关只允许用户以HTTPS方式登录访问,不允许用户以HTTP方式登录访问。配置HTTP重定向功能后,SSL VPN网关将监听指定的端口号,并把指定端口号的HTTP流量重定向到HTTPS服务监听的端口,向客户端发送重定向报文,让客户端重新以HTTPS方式登录。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN网关视图。
sslvpn gateway gateway-name
(3) 开启HTTP流量的重定向功能。
http-redirect [ port port-number ]
缺省情况下,未开启HTTP流量的重定向功能,SSL VPN网关不会处理HTTP流量。
若在SSL VPN访问实例视图下设置了自定义页面模板,则SSL VPN访问实例视图下定制的页面信息不再生效。
管理员可以根据需要对SSL VPN页面进行定制。目前,支持的页面定制项包括:登录页面欢迎信息、页面标题、logo图标。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 配置SSL VPN登录页面的欢迎信息。
login-message { chinese chinese-message | english english-message }
缺省情况下,英文登录页面的欢迎信息为“Welcome to SSL VPN”,中文登录页面的欢迎信息为“欢迎进入SSL VPN”。
(4) 配置SSL VPN页面的标题信息。
title { chinese chinese-title | english english-title }
缺省情况下,SSL VPN页面的标题为“SSL VPN”。
(5) 配置SSL VPN页面上显示的logo。
logo { file file-name | none }
缺省情况下,SSL VPN页面上显示“H3C”logo图标。
SSL VPN页面模板起到限定SSL VPN网关登录页面和资源页面风格的作用。设备支持在系统视图与SSL VPN访问实例视图下分别设置SSL VPN页面模板,两种模板的作用域不同:
· 对于在系统视图下设置的SSL VPN页面模板,其作用域为所有SSL VPN访问实例。
· 对于在SSL VPN访问实例视图下设置的SSL VPN页面模板,其作用域为该SSL VPN访问实例。
在Web管理页面,上传自定义页面模板至设备的文件系统中。
若在系统视图与SSL VPN访问实例视图下同时设置了页面模板,SSL VPN访问实例视图下设置的页面模板生效。
(1) 进入系统视图。
system-view
(2) 设置SSL VPN全局页面模板。
sslvpn webpage-customize template-name
缺省情况下,SSL VPN全局页面模板为系统缺省模板。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 设置SSL VPN页面模板。
webpage-customize template-name
缺省情况下,未设置SSL VPN页面模板。
通过配置SSL VPN用户控制,可以控制SSL VPN登录用户的上下线和在线数量。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 强制在线用户下线。
force-logout [ all | session session-id | user user-name ]
(4) 配置每个用户名的同时最大在线数。
max-onlines number
缺省情况下,同一用户的同时最大在线数为32。
(5) 开启达到最大在线数再登录时强制下线功能。
force-logout max-onlines enable
缺省情况下,达到最大在线数再登录时强制下线功能处于关闭状态。
(6) 配置每个会话的最大连接数。
session-connections number
缺省情况下,每个会话的同时最大连接数为64。
开启SSL VPN日志记录功能后,用户上线和下线时,SSL VPN网关会记录日志信息。生成的日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。(有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。)
(1) 进入系统视图。
system-view
(2) 开启SSL VPN全局日志生成功能。
sslvpn log enable
缺省情况下,SSL VPN全局日志生成功能处于关闭状态。
(3) 进入SSL VPN访问实例视图。
sslvpn context context-name
(4) 开启用户上下线日志生成功能。
log user-login enable
缺省情况下,用户上下线日志生成功能处于关闭状态。
(5) 开启用户资源访问日志生成功能。
log resource-access enable [ brief | filtering ] *
缺失情况下,用户访问资源日志生成功能处于关闭状态。
(6) 开启IP接入连接关闭的日志生成功能。
ip-tunnel log connection-close
缺省情况下,IP接入连接关闭的日志生成功能处于关闭状态。
(7) 开启IP接入客户端虚拟网卡IP地址分配和释放的日志生成功能。
ip-tunnel log address-alloc-release
缺省情况下,IP接入客户端虚拟网卡IP地址分配和释放的日志生成功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示SSL VPN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除SSL VPN AC接口的统计信息。
表1-1 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 ] [ 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页面模板信息 |
display sslvpn webpage-customize template |
清除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网关设备,连接公网用户和企业私有网络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-11 Web接入组网图
在开始下面的配置之前,假设已完成如下配置:
· Device上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。
· Device已获取到CA证书ca.cer和服务器证书server.pfx,若SSL VPN网关不引用SSL服务端策略,则使用设备缺省证书。
(1) 配置路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置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
(3) 配置SSL服务器端策略
# 配置SSL服务器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置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
(5) 配置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表项urlitem,并配置资源的URL。
[Device-sslvpn-context-ctx1] url-item urlitem
[Device-sslvpn-context-ctx1-url-item-urlitem] url http://20.2.2.2
[Device-sslvpn-context-ctx1-url-item-urlitem] quit
# 创建URL列表urllist。
[Device-sslvpn-context-ctx1] url-list urllist
# 配置URL列表标题为web。
[Device-sslvpn-context-ctx1-url-list-urllist] heading web
# 配置URL列表引用的URL表项。
[Device-sslvpn-context-ctx1-url-list-urllist] resources url-item urlitem
[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表项urlitem,并配置资源的URL。
[Device-sslvpn-context-ctx1] url-item urlitem
[Device-sslvpn-context-ctx1-url-item-urlitem] url https://30.3.3.3
[Device-sslvpn-context-ctx1-url-item-urlitem] quit
# 创建URL列表urllist。
[Device-sslvpn-context-ctx2] url-list urllist
# 配置URL列表标题为web。
[Device-sslvpn-context-ctx2-url-list-urllist] heading web
# 配置URL列表引用的URL表项。
[Device-sslvpn-context-ctx1-url-list-urllist] resources url-item urlitem
[Device-sslvpn-context-ctx1-url-list-urllist] quit
# SSL VPN访问实例ctx2下创建策略组pgroup,引用Web资源,并指定其为缺省策略组。
[Device-sslvpn-context-ctx2] policy-group pgroup
[Device-sslvpn-context-ctx2-policy-group-pgroup] resources 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
(6) 配置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
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
Password authentication:Enabled
Authentication use: All
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-12 Domain List页面
# 用户选择domain1进入登录页面,输入用户sslvpn和密码123456,点击<登录>按钮,可以成功登录。
图1-13 登录页面
# 用户登录成功后,在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-14 网关首页
# 点击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-15 网关首页
# 点击serverB,可以进入Web服务器Server B的HTTPS网站页面,且在浏览器的地址栏中显示如下格式的URL:https://1.1.1.2:2000/_proxy2/https/443/30.3.3.3/。
Device为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1。用户通过Device可以安全地访问VPN 1内的Telnet服务器Server。Device采用本地认证和授权方式对用户进行认证和授权。
图1-16 TCP接入配置组网图
在开始下面的配置之前,假设已完成如下配置:
· Device上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。
· Device已获取到CA证书ca.cer和服务器证书server.pfx,若SSL VPN网关不引用SSL 服务端策略,则使用设备缺省证书。
· SSL VPN用户主机上需要安装Java运行环境。
(1) 配置路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置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
(3) 配置SSL服务器端策略
# 配置SSL服务器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置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
(5) 配置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] resources 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
(6) 配置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
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-17 登录页面
# 用户登录成功后,在网页的应用程序栏中选择“启动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上可以看到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-18 IP接入配置组网图
在开始下面的配置之前,假设已完成如下配置:
· Device已获取到CA证书ca.cer和服务器证书server.pfx,若SSL VPN网关不引用SSL 服务端策略,则使用设备缺省证书。
· Server上存在到达网段10.1.1.0/24的路由。
(1) 配置接口IP地址、路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置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
(3) 配置SSL服务器端策略
# 配置SSL服务器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置SSL VPN网关
# 配置SSL VPN网关gw的IP地址为1.1.1.2,端口号为4430,并引用SSL服务器端策略ssl。
<Device> system-view
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 4430
[Device-sslvpn-gateway-gw] ssl server-policy ssl
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(5) 创建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
(6) 创建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
(7) 配置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
(8) 配置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
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页面,如下图所示。
图1-19 Domain List页面
# 选择domainip进入登录页面,输入用户sslvpnuser和密码123456。
图1-20 登录页面
# 单击<登录>按钮,可以成功登录SSL VPN网关。在网页的应用程序栏中选择“启动IP客户端应用程序”。
# 单击<启动>按钮,下载IP接入客户端软件Svpnclient并安装,安装完成后,启动iNode客户端,输入如下图所示的参数。
图1-21 iNode客户端
# 单击<连接>按钮,成功登录SSL VPN客户端,如下图所示。
图1-22 成功登录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-23 RADIUS认证、授权配置组网图
在开始下面的配置之前,假设已完成如下配置:
· Device上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。
· Device已获取到CA证书ca.cer和服务器证书server.pfx,若SSL VPN网关不引用SSL 服务端策略,则使用设备缺省证书。
· Server上存在到达网段10.1.1.0/24的路由。
· RADIUS server已经部署完成,能够对用户进行认证和授权。
(1) 配置路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置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
(3) 配置SSL服务器端策略
# 配置SSL服务器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置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
(5) 创建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
(6) 创建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
(7) 配置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引用地址池ippool。
[Device-sslvpn-context-ctx] ip-tunnel address-pool ippool mask 255.255.255.0
# 创建SSL VPN策略组pgroup,引用路由列表rtlist,并同时配置对IP接入进行URI ACL过滤。
[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
(8) 配置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
(9) 配置用户组
# 配置用户组group1,授权给该用户组的策略组为pgroup。
[Device] user-group group1
[Device-ugroup-group1] authorization-attribute sslvpn-policy-group pgroup
[Device-ugroup-group1] quit
(10) 配置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
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上可以看到用户会话信息。
[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
Device为SSL VPN网关设备,连接公网用户和企业私有网络VPN 1。用户通过Device可以通过IP接入方式安全地访问VPN 1内的Server。Device通过LDAP server采用远程认证和授权方式对用户进行认证和授权。
图1-24 LDAP认证、授权配置组网图
· 本文以Microsoft Windows Server 2008 R2的Active Directory为例,说明该例中LDAP服务器的基本配置。
· 在LDAP服务器上设置管理员admin的密码为admin!123456。
· 在LDAP服务器上添加用户名为sslvpn的用户,密码为ldap!123456,所属组织单位为sslvpn_usergroup,隶属于用户组users。
· Device已获取到CA证书ca.cer和服务器证书server.pfx,若SSL VPN网关不引用SSL 服务端策略,则使用设备缺省证书。
(1) 新建组织单位sslvpn_usergroup
a. 在LDAP服务器上,选择[开始/管理工具]中的[Active Directory用户和计算机],打开Active Directory用户和计算机界面;
b. 在Active Directory用户和计算机界面的左侧导航树中,右键单击ldap.com,选择[新建/组织单位],打开[新建对象-组织单位]对话框;
c. 在对话框中输入组织单位名称sslvpn_usergroup,并单击<确定>按钮。
图1-25 新建组织单位sslvpn_usergroup
(2) 新建用户sslvpn所属组织单位为sslvpn_usergroup
a. 在Active Directory用户和计算机界面的左侧导航树中,右键单击sslvpn_usergroup,选择[新建/用户],打开[新建对象-用户]对话框;
b. 在对话框中输入姓名和用户登录名为sslvpn,并单击<下一步>按钮。
图1-26 新建用户sslvpn
c. 在弹出的对话框的“密码”区域框内输入用户密码ldap!123456,并单击<下一步>按钮。用户账户的其它属性(密码的更改方式、密码的生存方式、是否禁用账户)请根据实际情况选择配置,图中仅为示例。
图1-27 设置用户密码
d. 单击<完成>按钮,创建新用户sslvpn。
(3) 将用户sslvpn加入Users组。
在Active Directory用户和计算机界面的左侧导航树中,单击sslvpn_usergroup,在右侧信息框中右键单击用户sslvpn,选择“属性”项;
在弹出的[sslvpn属性]对话框中选择“隶属于”页签,并单击<添加(D)...>按钮。
图1-28 修改用户属性
在弹出的[选择组]对话框中的可编辑区域框中输入对象名称“Users”,单击<确定>,完成用户sslvpn添加到Users组。
图1-29 添加用户sslvpn到用户组Users
在开始下面的配置之前,假设已完成如下配置:
· Device上已创建VPN实例,设备各接口都已绑定对应的VPN实例且接口的地址都已配置完毕。
· Device已获取到CA证书ca.cer和服务器证书server.pfx,若SSL VPN网关不引用SSL 服务端策略,则使用设备缺省证书。
· Server上存在到达网段10.1.1.0/24的路由。
· LDAP server已经部署完成,能够对用户进行认证和授权。
(1) 配置路由、安全域及域间策略保证网络可达,具体配置步骤略
(2) 配置PKI域,设置证书申请所需的相关参数
[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
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(3) 配置SSL服务器端策略,引用PKI域
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置SSL VPN网关,为用户提供访问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
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(5) 创建SSL VPN客户端地址池,用于为IP接入客户端分配IP地址
# 创建地址池ippool,指定IP地址范围为10.1.1.1~10.1.1.10。
[Device] sslvpn ip address-pool ippool 10.1.1.1 10.1.1.10
(6) 配置LDAP,用于认证SSL VPN用户
[Device] ldap server ldap1
[Device-ldap-server-ldap1] ip 3.3.3.2
[Device-ldap-server-ldap1] login-dn cn=admin,cn=users,dc=ldap,dc=com
[Device-ldap-server-ldap1] login-password simple admin!123456
[Device-ldap-server-ldap1] search-base-dn dc=ldap,dc=com
[Device-ldap-server-ldap1] quit
[Device] ldap attribute-map test
[Device-ldap-attr-map-test] map ldap-attribute memberof prefix cn= delimiter , aaa-attribute user-group
[Device-ldap-attr-map-test] quit
[Device] ldap scheme shml
[Device-ldap-shml] authentication-server ldap1
[Device-ldap-shml] authorization-server ldap1
[Device-ldap-shml] attribute-map test
[Device-ldap-shml] quit
(7) 配置ISP域,通过ISP域对SSL VPN用户进行认证
# 创建ISP域bbb,为SSL VPN用户配置AAA认证方法为LDAP认证、LDAP授权、不计费。
[Device] domain bbb
[Device-isp-bbb] authentication sslvpn ldap-scheme shml
[Device-isp-bbb] authorization sslvpn ldap-scheme shml
[Device-isp-bbb] accounting sslvpn none
[Device-isp-bbb] quit
(8) 配置SSL VPN访问实例,为用户提供不同的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
[Device-sslvpn-context-ctx] aaa domain bbb
[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
[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
[Device-sslvpn-context-ctx] ip-tunnel interface sslvpn-ac 1
[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
[Device-sslvpn-context-ctx] service enable
[Device-sslvpn-context-ctx] quit
(9) 配置本地用户组,基于用户组对用户进行授权
# 创建本地用户组users,指定授权SSL VPN策略组为pgroup。
[Device] user-group users
[Device-ugroup-users] authorization-attribute sslvpn-policy-group pgroup
[Device-ugroup-users] 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
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上可以看到用户会话信息。
[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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!