我正在阅读文档并设置 OpenLDAP 来处理整个网络的身份验证,包括电子邮件、Web 服务、用户帐户以及我可以交给它的任何其他东西。这不会是什么特别大的事情,但我希望它能让人感觉很真实,因为我是在家里的实验室里做的。
在设置 OpenLDAP 时,有哪些事情需要牢记或确保始终记住?我是否应该确保始终通过 SSL 传输?我是否应该使用 Kerbeos?任何能记住的事情都会很感激。
答案1
部分列表(无特定顺序):
- 使用
cn=config
(见man slapd-config
)。 - 设置主-主在您的核心中进行复制。
- 总是使用某种加密方式进行身份验证。
- LDAPS(端口 636)已被弃用,取而代之的是 LDAP 的 STARTTLS。
- 如果您不喜欢输入大量密码,SASL-GSSAPI 和 SASL-EXTERNAL 很有用。
- 禁用您不支持的 SASL 机制。
- 如果没有必要,请不要使用根 DN。
- 注意你的 ACL(例如,用户不应该具有
uidNumber
和的写访问权限gidNumber
)。 ldapseach -x -H $URI
是一次匿名搜索。(ldapwhoami -x -H $URI
)。nscd
有限的本地副本比(通过 自我访问)要好得多ldapi:///
。- 对于群组成员来说,覆盖
memberof
非常方便。
可能很重要:
了解文档。这不是您所需要的一切,但确实有帮助。
答案2
SSL 库
Debian(以及 Ubuntu)软件包 OpenLDAP 是针对 gnuTLS 而不是 OpenSSL 编译的。这对于尝试来说没问题,但 gnuTLS 在我们的网络上明显变慢了。我总是重建针对 OpenSSL 编译的 Ubuntu 软件包。
其他发行版可能会做同样的事情或做不同的事情。
凯尔伯罗斯
在我的环境中(约 200 个 Linux 工作站、约 40 个 Mac、nfs 服务器、imap、smtp、Web 服务器),Kerberos 似乎没什么用。我们的常用客户端应用程序都不支持 kerberos 身份验证(Firefox、Thunderbird)。它只能在主机级别用于 NFS 和用作身份验证的 PAM 模块。我认为 SSL 在保密密码方面同样出色。
如果您确实使用 kerberos,则应该使用 Heimdal 与 OpenLDAP smbk5pwd 覆盖集成。
客户端库
PADL 的 nss 默认库有点臃肿和麻烦。我建议你尝试一下南海或 nss-pam-ldapd。它们在我的环境中都运行良好。
SSS 的功能比 PADL 的库要多得多。它包括缓存,因此您不需要 nscd。
nss-pam-ldapd是对 PADL 库的重写,使其更加高效。
管理您的数据
我非常喜欢phpLDAP管理员。它使查看模式和修改单个条目变得非常容易。
其他 LDAP 服务器
它们可能速度较慢,但具有更先进的功能。
您可能想尝试 ApacheDS,因为它具有内置的 kerberos。
答案3
这个问题实在太广泛了,无法回答,任何答案都严重依赖于你的环境。
有些事情我会考虑的是:
- LDAP 作为身份验证系统有意义吗?
- 如果不是,还有什么更好的方法?
- LDAP 作为授权系统有意义吗?
(授权将是这样的sudoers
)- 如果不是,还有什么更好的方法?
- 什么样的安全才有意义?
- SSL?(基本可以肯定)
- Kerberos?(所有东西都支持它吗?将来所有东西都会支持它吗?)
- LDAP 本身的安全性如何(ACL)
- 对象/子树权限
- 可浏览/搜索...(任何人(匿名)、注册用户、管理员等...)
- 用户如何更改密码?
- 我们如何让各个工作站尊重 LDAP 信息?
- pam_ldap/nss_ldap?(旧的且已损坏,但还可以使用)
- pam_ldapd(新热点:更少的 LDAP 连接,其他优点,但一些未实现的功能)
- 我们是否必须与 Windows 进行交互 -曾经?
(如果您在这里回答“是”,则您确实需要使用 AD 作为 LDAP 服务器)