目录服务为什么要禁匿名绑定
LDAP 目录里通常存着组织结构、账号名、邮箱与电话。若允许匿名绑定,攻击者无需任何凭据就能批量拉取这些信息,用来做钓鱼名单、猜账号或内部结构画像。关闭匿名绑定是目录服务加固里收益最直接的一项。
基本信息
| 适用平台 | OpenLDAP(Linux)与 Active Directory(Windows) |
|---|---|
| 端口 | 389(明文)、636(LDAPS) |
| OpenLDAP 关键配置 | olcDisallows: bind_anon |
| AD 侧相关项 | 匿名枚举由 LSA 的 RestrictAnonymous 等设置控制 |
典型使用场景
- 目录服务上架前的基线核对:确认匿名查询确实被拒绝
- 信息泄露排查:发现内部通讯录被外部枚举后,回溯目录查询权限
- 合规对标:目录信息属于敏感数据,访问需授权
- 迁移验证:从 OpenLDAP 迁到 AD 或反向迁移后,逐项确认访问策略一致
OpenLDAP 核查
OpenLDAP 核查
# 查看监听与版本
ss -tlnp | grep -E ':389|:636'
# 用匿名方式尝试查询,正常应被拒绝
ldapsearch -x -H ldap://127.0.0.1 -b '' -s base 2>&1 | head -5
# 查看是否禁用了匿名绑定
ldapsearch -Y EXTERNAL -H ldapi:/// -b 'cn=config' '(olcDatabase=*)' olcDisallows 2>/dev/null | head -10AD 侧等价控制
AD 侧等价控制
# 匿名枚举相关设置(域控上的 LSA 策略)
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name RestrictAnonymous, RestrictAnonymousSAM -ErrorAction SilentlyContinue
# 结合口令与认证策略分组中的匿名限制条目一起评估
Get-ADDomain | Select-Object DistinguishedName, Name检查项读法
| 检查项 | 正常表现 | 异常表现 |
|---|---|---|
| 匿名绑定 | 被拒绝并返回错误 | 返回目录内容,说明匿名可读 |
| ldapsearch 匿名查询 | 无结果或报错 | 列出用户与邮箱,属信息泄露 |
| LDAPS 636 | 已启用并可正常握手 | 仅 389 明文,内网跨段场景风险高 |
| 查询来源限制 | 仅允许应用网段访问 | 任意来源可连 389,暴露面过大 |
关闭匿名绑定不等于传输安全:389 上的口令与查询内容仍是明文,跨网段或不可信网络应使用 LDAPS 或 StartTLS。
关闭前先确认有无依赖匿名查询的应用(老监控、邮件系统、自助门户):直接关闭可能造成业务静默失败,建议灰度验证。
关闭后要复测:用匿名查询再试一次并留档结果,把「已禁用」变成有证据的结论,而不是仅凭配置文件的修改记录。