我需要保护我的 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 会很好用。