如下图组网,用户alice和bob需要通过防火墙提供的SSL VPN网关接口来访问内网的服务器资源,防火墙使用第三方LDAP服务器进行用户认证,且授权用户alice只能访问server1,用户bob只能访问server2。
关于LDAP服务器的组织架构和基本原理,需要事先了解好DN、DC、OU和CN等相关概念,否则会对配置过程产生困难。LDAP服务器目前通常使用微软的Active Directory,参考资料:
1,https://blog.csdn.net/jfyy/article/details/86070119 Active Directory的基本概念
2,https://blog.csdn.net/qq_38684504/article/details/88125773域服务的建立与测试
一,配置LDAP服务器
1,登录Windows Server,打开【Active Directory用户和计算机】界面,可以查看到系统对应的目录结构信息,比如这里的根目录DN为DC=h3c,DC=com,即h3c.com。
如果目录中已经存在所需的OU,可以直接按照下面方式新建用户即可。
3,在对应的OU下右键新建【用户】(即CN),分别新建名称为alice和bob两个用户或者使用其他名称。
这里请将【用户下次登录时须更改密码】去勾选,将【密码永不过期】勾选。
按照同样的方式再新建名称为bob的用户。
4,在用户的LDAP授权过程中,设备会通过查询操作得到用户的授权信息,该授权信息由LDAP服务器通过若干LDAP属性下发给设备。若设备从LDAP服务器查询得到某LDAP属性,则该属性只有在被设备的AAA模块解析之后才能实际生效。如果某LDAP服务器下发给用户的属性不能被AAA模块解析,则该属性将被忽略。因此,需要通过配置LDAP属性映射表来指定要获取哪些LDAP属性,以及LDAP服务器下发的这些属性将被AAA模块解析为什么类型的AAA属性,具体映射为哪种类型的AAA属性由实际应用需求决定。每一个LDAP属性映射表项定义了一个LDAP属性与一个AAA属性的对应关系。将一个LDAP属性表在指定的LDAP方案视图中引用后,该映射关系将在LDAP授权过程中生效。
通常情况下,我们将授权特定安全组(即memberof属性)的用户显示特定资源,将LDAP上对应的用户所在的安全组与设备上到用户组(user-group)进行映射,用户组下绑定对应SSL VPN资源,从而为接入用户达到授权的目的。SSL VPN结合LDAP授权流程图如下:
在对应的目录下右键新建【组】(即Memberof),分别新建名称为hangzhou或者beijing的两个安全组。
右键点击用户alice 的属性,点击【隶属于】模块,将用户alice与安全组hangzhou关联;同样的,将用户bob与安全组beijing关联。
【注】将AD的查看【详细信息】的功能打开,点击对应的用户属性,点击【属性编辑器】后可以查看其具体的属性信息。
比如可以查看到用户alice对应的DN(即distinguishname)为:CN=alice,OU=sslvpn,DC=h3c,DC=com。
这样就在LDAP服务器上创建好了对应的用户及其隶属信息,接下来可以在防火墙设备做相关的配置了。
二,配置LDAP服务器
1,
创建LDAP属性映射表,使用用户的memberof属性,即LDAP服务器上为用户所隶属的的【组】。前缀和分隔符参数表示按照一定的格式提取LDAP
属性字符串中的内容映射为AAA属性。其中,前缀表示LDAP属性字符串中的某内容前缀(例如cn=),分隔符表示LDAP属性字符串中的内容分隔符
(例如逗号)。经过上述操作,可以将CN=beijing,OU=sslvpn,DC=h3c,DC=com中的beijing这一关键字顺利提取出来。
新建LDAP方案,引用属性映射表,输入正确且可达的LDAP服务器地址,配置好管理员DN和密码,以及用户查询的起始节点。LDAP客户端以LDAP管理员DN和管理员DN密码为参数向LDAP服务器发送管理员绑定请求报文获得查询权限,服务器管理员(Administrator账户)作为LDAP管理员账户用于设备和LDAP服务器绑定,如果客户Administrator账户由于保密性原因无法提供,也可以使用其他具体查询功能的账户,比如本配置案例中就以用户alice举例,至于DN如何获取可参考上文。用户查询的起始节点通常使用根目录,但是在生产环境中,LDAP服务器上的目录结构可能具有很深的层二,配置LDAP服务器次,如果从根目录进行用户DN的查找,耗费的时间将会较长,因此可以使用一些子目录,但是必须保证SSL VPN用户在此子目录内。
2,新建一个ISP域,选择接入方式为SSL VPN。
设置SSL VPN 认证和授权使用上述创建的名称为ldap的方案,由于LDAP不支持计费,所以这里计费勾选为不计费。
3,创建并使能SSL VPN网关。
4,创建SSL VPN IP接入接口即AC口,这里使用IP地址20.1.1.1,并加入好对应的安全域,放通与内网接口的安全策略。
5,创建客户端地址池,地址范围从20.1.1.2到20.1.1.100。
6,新建SSL VPN访问实例,引用创建的SSL VPN网关,这里将ISP认证域设置为名称为ldap的认证域。
7,使能IP业务,引用创建好的IP接入接口和客户端地址池,并创建好内网对应的资源。这里rt1为192.168.1.0/24允许用户alice访问,rt2为192.168.2.0/24允许用户bob访问。
8,创建资源组pg1引用子网资源rt1,资源组pg2引用子网资源rt2。
9,防火墙本地新建名称为hangzhou和beijiang的两个用户组,分别管理SSL VPN策略组pg1和pg2。这里用户组名称一定要与LDAP服务器上的安全组名称要保持一致,否则无法进行授权。
10,使用inode拨号,可以看到用户alice和bob分别获取到不同的路由。
使用此cmd命令打印PC上IPv4路由:C:\Users\Administrator>route print -4
至此,防火墙SSL VPN结合LDAP认证和授权已顺利完成。
【命令行主要配置如下(安全策略路由等请自行核对下)】
#
interface GigabitEthernet1/0/1
ip address 172.31.0.22 255.255.255.0
#
ldap server ldap
login-dn cn=alice,ou=sslvpn,dc=h3c,dc=com
search-base-dn dc=h3c,dc=com
ip 172.31.0.96
login-password cipher $c$3$NaZlbPm7E/JJ2AvhhuI0nKgvB8FHtUvcdaa5dmo=
#
ldap attribute-map map
map ldap-attribute memberof prefix cn= delimiter , aaa-attribute user-group
#
ldap scheme ldap
authentication-server ldap
authorization-server ldap
attribute-map map
#
domain ldap
authentication sslvpn ldap-scheme ldap
authorization sslvpn ldap-scheme ldap
accounting sslvpn none
#
user-group beijing
authorization-attribute sslvpn-policy-group pg2
#
user-group hangzhou
authorization-attribute sslvpn-policy-group pg1
#
interface SSLVPN-AC0
ip address 20.1.1.1 255.255.255.0
#
security-zone name Untrust
import interface GigabitEthernet1/0/1
import interface SSLVPN-AC0
#
sslvpn ip address-pool ldap 20.1.1.2 20.1.1.100
#
sslvpn gateway ldap
ip address 0.0.0.0 port 4433
service enable
#
sslvpn context ldap
gateway ldap
ip-tunnel interface SSLVPN-AC0
ip-tunnel address-pool ldap mask 255.255.255.0
ip-route-list rt1
include 192.168.1.0 255.255.255.0
ip-route-list rt2
include 192.168.2.0 255.255.255.0
policy-group pg1
ip-tunnel access-route ip-route-list rt1
policy-group pg2
ip-tunnel access-route ip-route-list rt2
default-policy-group pg1
aaa domain ldap
service enable
#
1,由于LDAP服务器通常使用UTF-8编码格式,但是设备Web界面编码使用GB2312,所以在Web界面配置LDAP方案时,请不要使用中文DN。如需中
文,请用CRT或者Xshell等工具,将编码设置为UTF-8格式,再输入中文。
2,当防火墙设备手工配置dns server或dhcp获取到dns server时,可能会认证失败。建议删除设备上的dns server相关配置。原因是LDAP 服务器会下发URL,目的是要求到URL指定的LDAP服务器上继续查询用户,配置DNS server后如果解析不了URL,就会认证失败。现在去掉DNS server配置相当于让openldap直接走DNS server 不可达逃生流程,中止了查询操作。
3,建议在配置LDAP认证之前,先测试下SSL VPN本地认证是否正常。
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作