You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未配置binddn和bindpw的nslcd为何能无认证访问OpenLDAP

问题原因

OpenLDAP 默认允许匿名用户读取目录树基础属性,你配置的 olcAccess 规则优先级或范围有误是核心原因:

  • OpenLDAP 访问规则是从上到下匹配,命中第一条符合条件的规则就直接生效。如果你的 olcAccess 配置里没有显式限制匿名用户权限,或者把匿名可读的规则放在了权限限制规则前面,就会允许匿名用户拉取用户uid、密码哈希等认证必要属性,nslcd 不需要绑定账号即可完成身份校验流程。
  • 如果你开启了 LDAPv2 兼容配置(olcAllows: bind_v2),旧版本协议的匿名绑定逻辑更宽松,也会出现无需显式配置 binddn 即可访问的情况。

遗漏的配置项

服务端调整配置

  1. 修正 olcAccess 规则,显式限制匿名权限,示例配置如下:
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by dn="cn=admin,dc=example,dc=com" write by anonymous auth by * none
olcAccess: {1}to * by dn="cn=admin,dc=example,dc=com" write by users read by * none

上述规则第一条限定匿名用户仅能执行认证绑定操作,不能读取其他属性;第二条要求所有目录内容必须完成身份认证后才能读取。
2. 显式关闭匿名绑定:

dn: cn=config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon
-
add: olcRequires
olcRequires: authc

客户端补全配置

在 /etc/nslcd.conf 中添加绑定账号信息:

binddn cn=admin,dc=example,dc=com
bindpw 你的绑定账号密码

配置完成后重启 nslcd 服务,未配置绑定账号的客户端就会被OpenLDAP拒绝访问,无法拉取用户信息完成认证。

内容的提问来源于stack exchange,提问作者Ch Sai Manoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:54:03