本文转自: https://blog.51cto.com/yiding/1680043

结合自己在实际配置中遇到的问题,或不清楚的地方做了补充和说明。

很多公司通过ASA防火墙实现VPN用户远程访问公司内网,但默认情况下需要为每个用户分配一个VPN账号。
而企业内部人员都有自己的域账号,如果能使用域账号访问VPN,这样会大大改善用户体验。
以下我们通过LDAP实现ASA与AD域的集中认证。
LDAP(Lightweight Directory Access Protocol),轻量级目录访问协议。它是目录访问协议一个标准,基于X.500 标准且可以根据需要定制。
LDAP 目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表等等。在企业范围内实现LDAP 可以让几乎所有应用程序从LDAP 目录中获取信息。
下面结合一个网络拓扑来看下是如何实现的
公司内部域sr.com,192.168.1.0/24
ASA5520集防火墙、VPN网关为一体,外部用户需要远程访问
需求:远程用户可以使用域用户访问VPN

实现过程:
Step1:在ASA上添加LDAP认证类型的aaa-server
aaa-server sr.com protocol ldap //指定防火墙与AD中使用的协议
max-failed-attempts 2
aaa-server sr.com (inside) host 192.168.1.80 //指定AAA服务器地址
ldap-base-dn cn=users,dc=sr,dc=com //指定LDAP在域中搜索位置(本人注:域、OU组织结构根据自己的实际情况进行修改对应,下同;我在这里就迷惑了,多次配置测试后才明白过来,域中一个默认Users分组,属于cn,不属于ou)
ldap-scope subtree //在AD中查询的范围
ldap-login-password 123.com //指定管理员密码(此处的123.com为管理员密码)
ldap-login-dn cn=ldadmin,cn=users,dc=sr,dc=com //管理账户对象在AD中LDAP路径(注意该账户密码为永不过期)
server-type microsoft //指定服务器的类型

Step2 : 进行AAA测试: //测试账户是否成功
ciscoasa# test aaa-server authentication sr.com username ldadmin password 123.com
Server IP Address or name: 192.168.1.80
INFO: Attempting Authentication test to IP address <192.168.1.80> (timeout: 12 seconds)
INFO: Authentication Successful(可能还会报其它的错误,请检查AD服务器的防火墙策略有没有放行,上面提到了组织结构与AD域中的是否一致,还有验证用户是否在允许的范围内)

Step3 : 在tunnel中启用验证信息(原文中没有该项,自己测试了好久才想起来,不指定验证信息源怎么会从LDAP进行身份验证呢)
tunnel-group DefaultRAGroup general-attributes
authentication-server-group sr.com LOCAL

Step4 : 在域控的AD中添加帐号并测试登录.
测试正常。
实现集中身份验证还有其它一些方案,如Radius服务器,radius是一种专门的认证协议,且是工业标准,支持多样的认证方式(除pap,chap,还支持EAP(扩展认证协议))。感兴趣的可以研究下!

参考资料:https://max.book118.com/html/2018/1212/6041125035001235.shtm