如何禁用 LDAP 上的匿名访问

如何禁用 LDAP 上的匿名访问

我需要保护我的 LDAP 服务器,但不太确定最好的方法。我正在运行 Debian“Lenny”,并使用 OpenLDAP (slapd)。

我注意到如果我运行:

ldapsearch -x -W -b 'dc=example,dc=com' -H 'ldap://127.0.0.1:389/' 'objectclass=*'

当系统提示输入密码时,只需按 ENTER 键,我就会得到一个目录条目列表。如果我将其开放到互联网上,则匿名访问是不可接受的,但我找不到禁用匿名访问的方法。

我尝试修改/etc/ldap/slapd.conf如下内容:

进入 *
    由 dn="cn=admin,dc=example,dc=com" 编写
    作者:*无

...但这没有起到作用。

在此之后,我将通过 TLS 运行它,但在仍然允许匿名访问的情况下执行该步骤是毫无意义的。

有任何想法吗?

答案1

要完全禁用匿名绑定,请将以下行添加到 slapd.conf:

disallow bind_anon

并重新启动 slapd 服务。

答案2

如果接受的答案对您不起作用(在 Ubuntu 上对我来说不起作用),请尝试以下操作。

创建 ldiff 文件:

nano /usr/share/slapd/ldap_disable_bind_anon.ldif

粘贴此内容:

dn: cn=config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon

dn: cn=config
changetype: modify
add: olcRequires
olcRequires: authc

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcRequires
olcRequires: authc

然后运行:

ldapadd -Y EXTERNAL -H ldapi:/// -f /usr/share/slapd/ldap_disable_bind_anon.ldif

答案3

由于您计划很快使用 SSL/TLS,您可能需要考虑使用客户端证书验证进一步加强您的安全。带有-v -A选项的 Stunnel 会很好用。

相关内容