首次设置OpenLDAP时,需要注意哪些事项?

我正在阅读文档并设置OpenLDAP来处理整个networking中的身份validation,电子邮件,Web服务,用户帐户以及其他任何可以抛出的信息。 这不是什么超级大事,但是我希望它能够感受到生活,因为我正在我的家庭实验室里做这件事。

有什么好记的东西或者什么东西来确保我在设置OpenLDAP时始终记得? 我应该确保我总是通过SSL旅行吗? 我应该使用Kerbeos吗? 请记住任何事情。

部分列表没有特定的顺序:

  • 使用cn=config (参见man slapd-config )。
  • 在您的核心设置主 – 主复制。
  • 始终使用某种encryption进行身份validation。
  • LDAPS(端口636)已被弃用,以支持LDAP的STARTTLS。
  • 如果您不喜欢input密码,SASL-GSSAPI和SASL-EXTERNAL非常有用。
  • 禁用您不支持的SASL机制。
  • 不必使用根DN。
  • 注意你的ACL(例如,用户不应该有对uidNumbergidNumber写权限)。
  • ldapseach -x -H $URI是一个匿名search。 ( ldapwhoami -x -H $URI )。
  • 有限的本地副本可以比nscd好得多(通过ldapi:///自我访问)。
  • Overlay memberof对于组员来说非常方便。

可能很重要:
了解文档 。 这不是你所需要的一切,但它确实有帮助。

SSL库

Debian(以及Ubuntu)打包了针对gnuTLS而不是OpenSSL编译的OpenLDAP。 这对玩游戏很好,但是gnuTLS在我们的networking上显着地变慢了。 我总是重build针对OpenSSL编译的Ubuntu软件包。

其他发行版可能会相同或不同。

Kerberos的

Kerberos在我的环境(〜200个Linux工作站,〜40个mac,nfs服务器,imap,smtp,web服务器)中似乎不是很有用。 我们的客户端应用程序都不支持Kerberos身份validation(Firefox,Thunderbird)。 它只能用于NFS的主机级别,并用作身份validation的PAM模块。 我认为SSL在保持密码秘密方面可以做得同样出色。

如果您使用Kerberos,则应该使用Heimdal与OpenLDAP smbk5pwd叠加层进行集成。

客户端库

来自PADL的nss的默认库有点臃肿和麻烦。 我build议你尝试SSS或者nss-pam-ldapd。 他们在我的环境中工作得很好。

SSS不仅仅是PADL的图书馆。 它包括caching,所以你不需要nscd。

nss-pam-ldapd是对PADL库的重写,使其效率更高。

pipe理您的数据

我是phpLDAPAdmin的粉丝 。 这使得查看模式和修改单个条目非常容易。

其他LDAP服务器

他们可能会比较慢,但他们有更先进的function。

你可能想尝试ApacheDS,因为它内置了kerberos。

这个问题实在太广泛而无法回答,任何答案都将严重依赖于你的环境。

有些事情会考虑的是:

  • LDAP作为authentication系统是否有意义?
    • 如果不是,有什么更好的?
  • LDAP作为授权系统是否有意义?
    (授权将是像sudoers东西)
    • 如果不是,有什么更好的?
  • 什么样的安全是有意义的?
    • SSL? (几乎肯定)
    • Kerberos的? (一切都支持它吗?未来一切都会支持它吗?)
    • 那么LDAP本身的安全性(ACL)
      • 对象/子树权限
      • 可浏览/可search…(任何人(匿名),注册用户,pipe理员等)
      • 用户将如何更改密码?
  • 我们将如何让各个工作站尊重LDAP信息?
    • pam_ldap的/ NSS_LDAP? (老和破,但工作)
    • pam_ldapd(新的热点:更less的LDAP连接,其他好处,但一些未实现的function)
  • 我们将不得不与Windows进行交互 – EVER吗?
    (如果你在这里说“是”,你真的需要使用AD作为LDAP服务器)