10-SSL VPN配置
本章节下载: 10-SSL VPN配置 (529.81 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协议较为常用。
用户先采用Web接入方式登录SSL VPN网关,又在Web页面上下载并运行IP接入客户端。此时用户通过两种接入方式访问SSL VPN网关,SSL VPN网关上会为该用户生成一个SSL VPN会话。之后如果用户从浏览器退出或者从IP接入客户端退出,则会因为SSL VPN会话断开而将无法继续访问对应的Web接入服务资源和IP接入服务资源。
SSL VPN相关配置均在SSL VPN网关设备上进行。SSL VPN配置任务如下:
(1) 配置SSL VPN网关
(2) 配置SSL VPN访问实例
(3) 配置SSL VPN用户认证
(4) 创建URI ACL
(5) 配置接入服务
¡ 配置IP接入服务
(6) (可选)配置SSL VPN缺省策略组
(7) (可选)配置HTTP重定向
(8) (可选)定制SSL VPN页面信息
(9) (可选)配置SSL VPN用户控制
(10) (可选)开启SSL VPN日志功能
进行SSL VPN配置前,需要在SSL VPN网关上完成以下操作:
· 配置PKI,为SSL VPN网关获取数字证书,配置方法请参见“安全配置指导”中的“PKI”。
· 配置SSL服务器端策略,配置方法请参见“安全配置指导”中的“SSL”。
· 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。
SSL VPN网关使用缺省地址时,端口号不能与设备的HTTPS管理地址的端口号相同。
(4) 指定SSL VPN网关引用SSL服务器端策略。
ssl server-policy policy-name
缺省情况下,SSL VPN网关引用自签名证书的SSL服务器端策略。
如果引用的SSL服务器策略有变化,需要重新开启SSL VPN网关才能生效。
(5) 开启当前的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网关
(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客户端进行基于数字证书的身份验证。
(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
缺省情况下,未配置短信验证使用的iMC服务器的IP地址和端口号。
b. 开启当前的iMC短信验证服务。
sms-imc enable
缺省情况下,iMC短信验证服务处于关闭状态。
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接入服务配置任务如下:
(1) 配置URL列表
(3) (可选)配置改写策略
URL列表用于定义Web接入方式可访问的资源。每个URL表项对应一个企业网内的Web资源。
(1) 进入系统视图。
system-view
(2) 进入SSL VPN访问实例视图。
sslvpn context context-name
(3) 创建URL列表,并进入URL列表视图。
url-list name
(4) (可选)配置URL列表标题。
heading string
缺省情况下,URL列表的标题为“Web”。
在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
缺省情况下,未配置改写之后的文件内容。
为了使用户能够通过TCP接入方式访问企业内网资源,SSL VPN网关上需要创建TCP接入服务资源。
TCP接入服务配置任务如下:
(1) 配置端口转发列表
端口转发表项用于定义端口转发实例和对应资源:
· 端口转发实例将企业网内的基于TCP的服务(如Telnet、SSH、POP3)映射为客户端上的本地地址和本地端口,以便客户端通过本地地址和本地端口访问企业网内的服务器。
(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) 退回SSL VPN访问实例视图。
quit
(6) 创建端口转发列表,并进入端口转发列表视图。
port-forward port-forward-name
(7) 配置端口转发列表引用端口转发表项。
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接入用户的地址池
(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) 退回SSL VPN访问实例视图。
quit
(7) 配置IP接入引用地址池。
ip-tunnel address-pool pool-name mask { mask-length | mask }
缺省情况下,IP接入未引用地址池。
(8) (可选)配置保活报文的发送时间间隔。
ip-tunnel keepalive seconds
缺省情况下,保活报文的发送时间间隔为30秒。
(9) (可选)配置为客户端指定的内网DNS服务器地址。
ip-tunnel dns-server { primary | secondary } ip-address
缺省情况下,未配置为客户端指定的DNS服务器地址。
(10) (可选)配置为客户端指定的内网WINS服务器地址。
ip-tunnel wins-server { primary | secondary } ip-address
缺省情况下,未配置为客户端指定的WINS服务器地址。
在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检查失败,则授权失败,用户不允许访问资源。
高级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接入方式的访问。
为移动客户端配置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网关只允许用户以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页面进行定制。目前,支持的页面定制项包括:登录页面欢迎信息、页面标题、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登录用户的上下线和在线数量。
(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接入连接关闭的日志生成功能处于关闭状态。
在完成上述配置后,在任意视图下执行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 ] |
显示通过IP接入的SSL VPN用户的报文统计信息 |
display sslvpn ip-tunnel statistics [ context context-name ] [ user user-name ] |
显示指定策略组的信息 |
display sslvpn policy-group group-name [ context context-name ] |
显示TCP端口转发的连接信息 |
(独立运行模式) display sslvpn port-forward connection [ context context-name ] (IRF模式) display sslvpn port-forward connection [ context context-name ] [ slot slot-number ] |
显示SSL VPN会话信息 |
display sslvpn session [ context context-name ] [ user user-name | verbose ] |
清除SSL VPN AC接口的统计信息 |
reset counters interface [ sslvpn-ac [ interface-number ] ] |
清除通过IP接入的SSL VPN用户的报文统计信息 |
reset sslvpn ip-tunnel statistics [ context context-name [ session session-id ] ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!