SSL访问控制

1、引入

字面上看,SSL VPN由两部分组成,分别是SSL和VPN。SSL为Secure Sockets Layer,安全套接字层,是一个安全协议,为基于TCP的应用层协议提供安全连接(如HTTP和HTTPS的关系)。VPN即Virtual Private Network,虚拟专用网络,一般用于在公共网络上建立专用网络,进行加密通讯。VPN一般通过对数据包的加密和数据包目的地址的转换实现远程访问。

SSL VPN是以SSL为基础的VPN技术,通过建立SSL连接来实现访问转发。它充分利用了SSL协议提供的基于证书的身份认证、数据加密和完整性验证机制,为员工访问企业内网提供了一种安全的验证机制。相比于其他常用的VPN,如GRE VPN、L2TP VPN和IPSec VPN等,有着使用方便、数据安全、访问资源易控制等优势,被广泛应用于企业的远程接入。

2、SSL VPN工作机制

SSL VPN服务通过SSL VPN网关来提供。SSL VPN网关位于远端接入用户和企业内部网络之间,负责在二者之间转发报文。管理员需要在SSL VPN网关上创建与企业网内服务器对应的资源。

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

 

图1.SSL VPN网络模型

SSL VPN的工作机制为:

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

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

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

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

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

SSL VPN可以提供三种资源接入方式,分别为Web接入方式、TCP接入方式和IP接入方式。本文主要围绕IP接入方式进行展开验证。

3、IP接入方式介绍

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

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

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

如图2所示,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接口将其发送给客户端。

 

图2.IP接入方式的工作过程

4、IP接入方式配置实现

4.1 网关设备配置

实验设备:F1060,版本:CMW7.1-R9323P13

#

interface SSLVPN-AC11

 ip address 111.1.1.1 255.255.255.0

#

security-zone name Management

 import interface GigabitEthernet2/0/0

 import interface SSLVPN-AC11

#

sslvpn ip address-pool admit 111.1.1.100 111.1.1.200

#

pki domain guotiejun

 public-key rsa general name guotiejun

 undo crl check enable

pki import domain guotiejun pem ca filename 2003_server.cer

pki import domain guotiejun p12 local filename 2003_local.pfx

Please input the password:(密码1)

#

ssl server-policy guotiejun

 pki-domain guotiejun

#

sslvpn gateway guotiejun

 ip address 172.2.215.104 port 18157

 ssl server-policy guotiejun

 service enable

#

sslvpn context guotiejun

 gateway guotiejun

 ip-tunnel interface SSLVPN-AC11

 ip-tunnel address-pool admit mask 255.255.255.0

 ip-route-list guotiejun

  include 100.1.12.0 255.255.255.0

 policy-group guotiejun

  filter ip-tunnel acl 3333

  ip-tunnel access-route ip-route-list guotiejun

 default-policy-group guotiejun

 service enable

#

user-group admit

 authorization-attribute sslvpn-policy-group guotiejun

#

local-user guotiejun class network

 password simple guotiejun

 service-type sslvpn

 group admit

 authorization-attribute user-role network-operator

4.2 定制客户端

定制客户端时配置默认网关。

 

配置认证类型为local,身份校验模式为密码认证。

4.3 安装并验证基础功能

定制完成之后在PC上进行安装。

首先查看没有连接VPN时的路由信息。

点击查询网关信息,验证基础配置正确性。

查询成功,输入登录信息(guotiejun/guotiejun)进行登录。

在“控制面板→网络和Internet→网络连接”进行查看,可以看到网络连接中已经新创建了一个虚拟网卡。

查看网卡地址信息,已经从address-pool获取到了111.1.1.100的地址。

查看路由表项,多了指向虚拟网卡的同网段路由和网关下发的资源路由。

5、配置SSL VPN用户绑定IP地址

5.1 功能简介

客户端使用IP接入方式访问SSL VPN网关时,网关需要为客户端分配IP地址。通过配置本功能,可以保证同一个用户多次访问该网关时能使用固定范围的IP地址。本功能提供以下两种方式为SSL VPN用户绑定IP地址:

(1) 指定固定的地址范围:为用户绑定分配的IP地址列表,当网关从SSL VPN访问实例引用地址池中为客户端分配IP地址时,优先分配绑定的IP地址;

(2) 指定可分配的地址数目:网关也可以为客户端自动分配空闲的IP地址,即网关会从SSL VPN访问实例引用地址池中获取指定个数的空闲IP地址,为用户绑定。

5.2 配置限制和指导

当SSL VPN策略组中引用了地址池时,配置SSL VPN用户绑定的IP地址必须是此地址池中的IP地址。

当SSL VPN策略组中未引用地址池时,配置SSL VPN用户绑定的IP地址必须是此SSL VPN访问实例引用的地址池中的IP地址。

未关联VPN实例或在同一VPN实例中,不同SSL VPN用户不能绑定相同的IP地址。

5.3 配置步骤

(1) 进入SSL VPN访问实例视图。

sslvpn context guotiejun

(2) 创建SSL VPN用户,并进入SSL VPN用户视图。

user guotiejun

(3) 配置SSL VPN用户绑定的IP地址。

ip-tunnel bind address 111.1.1.111

(4) 再次进行登录,可以看到地址被限制为绑定的IP地址111.1.1.111。

6、为IP接入配置SSL VPN策略组

6.1 功能简介

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

(1) 直接配置路由表项:用于将一条路由下发给客户端;

(2) 配置路由列表:用于将路由列表中的多条路由同时下发给客户端;

(3) 强制将客户端的流量转发给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进行过滤。

6.2 配置限制

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

6.3 验证配置

在前面的配置中,我们有两个地方可以对访问资源进行控制,分别是下发的路由列表ip-route-list和控制资源访问策略policy-group中的ACL列表。上面我们使用的配置如下:

sslvpn context guotiejun

ip-route-list guotiejun

  include 100.1.12.0 255.255.255.0

 policy-group guotiejun

  filter ip-tunnel acl 3333

  ip-tunnel access-route ip-route-list guotiejun

此时测试,发现我们是可以访问到对应资源的。

接下来我们修改一下ACL规则,变更配置如下:

#

acl advanced 3402

 rule 0 deny ip source 111.1.1.0 0.0.0.255

#

 policy-group guotiejun

  filter ip-tunnel acl 3402

  ip-tunnel access-route ip-route-list guotiejun

可以看到资源已经不能访问。

再结合修改路由列表ip-route-list看一下,变更配置如下:

#

acl advanced 3402

 rule 0 deny ip destination 100.1.12.0 0.0.0.255

 rule 5 permit ip

#

sslvpn context guotiejun

ip-route-list guotiejun

  include 100.1.12.0 255.255.255.0

  include 200.1.12.0 255.255.255.0

 policy-group guotiejun

  filter ip-tunnel acl 3402

再来看一下效果,说明是通过ACL对访问资源权限做了控制。

我们再修改一下路由列表ip-route-list看一下。

#

 ip-route-list guotiejun

  include 100.1.12.0 255.255.255.0

可以看到此时访问不到,查看路由表项,去往200.1.12.0网段的路由表项已经不见了,说明路由表项是下发资源的,并且修改之后会实时同步到客户端,还可以通过ACL进行限制访问,保证只有通过ACL检查的报文才可以访问IP资源。

再看一下配置强制将客户端的流量转发给SSL VPN网关,命令如下:

 

#

 policy-group guotiejun

  filter ip-tunnel acl 3402

  ip-tunnel access-route force-all

查看客户端的路由表,发现路由的优先级被修改了。

发现之前的默认路由优先级被修改为了110,新下发的默认路由优先级为21。尝试一下修改路由优先级看能不能成功。

route change 0.0.0.0 mask 0.0.0.0 172.2.216.254 metric 7

发现默认路由优先级确实被修改了,但是和修改的优先级是不一样的。并且iNode没有再次修改路由优先级。尝试在设备上重新操作一遍配置,查看路由是否重新下发。

发现设备上又多了一条优先级为21的路由,说明当前的实现方式是下发一条指向SSL VPN网管的优先级为21的默认路由,并且没有检测机制,容易被最终用户修改。

7、经验总结

SSL VPN默认的端口为443,可用端口为<443, 1025-65535>,如果需要映射则端口需要映射为443,否则如果客户端配置时不知道端口号,会造成连接失败。

在配置PKI域时,一般需要禁用Certificate revocation list (CRL) function(证书撤销列表),undo crl check enable。在导入证书时,需要注意证书格式,如果不能使用时,尝试切换证书格式。V7防火墙设备默认自带证书,但dir里看不到。设备中没有手工导入证书的情况下,通过调用设备自身默认的证书仍可以实现sslvpn认证成功。由于设备中存在默认证书,可不用手工导入证书,如果导入证书有问题反而有可能导致认证失败!

如果正常通信后拨号不成功,提示“查询SSL VPN网关参数失败”,检查配置没有问题,重新导入证书、使能SSL服务器端策略,最终拨号成功;如果拨号成功之后无法访问内网。可以检查域间策略配置,将资源涉及到的所有域全部放通,可以解决资源访问异常的问题。由于防火墙设备的特殊性,一定要确保域间策略正确!

缺省情况下,策略组下未引用地址池,若引用的地址池不存在或无可用地址,分配失败,用户无法通过IP接入。若策略组未引用地址池,则SSL VPN网关将使用SSL VPN访问实例中引用的地址池为客户端分配IP地址。缺省情况下,SSL VPN网关禁止所有客户端访问IP接入资源,如果引用的ACL不存在,则SSL VPN网关拒绝所有IP接入方式的访问。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值