使用 389 Directory Server 设置 SSL 以进行 LDAP 身份验证

使用 389 Directory Server 设置 SSL 以进行 LDAP 身份验证

我在 RHEL 5 上运行了 389 个目录服务器,其中包含组、用户、posix 等。RHEL 客户端正在使用 LDAP 对用户进行身份验证 - 没有问题,一切正常,但密码以纯文本形式发送,并且可以通过网络嗅探器查看。因此,决定使用 SSL 运行:

  1. 创建 CA - 获得私有和公共 CA 证书
  2. 使用 CA 证书:生成私有证书和公共证书并合并(第一个文件) 根据 389DS 证书请求,从图形控制台将 CA 公共证书导入 389DS(第二个文件)。
  3. 在 389DS 中启用 SSL
  4. 在客户端上,使用 authconfig-gtk 为 LDAP 启用 SSL,指定仅 CA 公共证书

不起作用。

怎么做?安全集成的最佳方法是什么?

答案1

您可能要做的第一件事是检查您的服务器是否正确提供了证书。您可以尝试使用 OpenSSL 连接到您的服务器来执行此操作。在具有访问权限的客户端计算机上,运行:

openssl s_client –connect target_server_fqdn:636

这应该会返回一份打印出来的服务器证书。这里的关键是检查最后打印的“验证返回代码”。您可能会得到不同的代码,但一般来说,如果证书有效,则代码为 0,如果是自签名证书,则代码可能为 19。

如果失败,请返回并检查以确保您已正确导入服务器端证书。

如果您通过了此测试,请继续从客户端测试您的 TLS 连接。

在客户端计算机上运行

ldapsearch -z -ZZ '(uid=<testusername>)'

这将强制通过加密连接进行 LDAP 查找。如果成功,您应该会得到一些用户信息,检查 DS 日志应该会得到以下内容:

[23/Sep/2011:07:48:57 -0500] conn=1631 op=0 EXT oid="XXXXXX.X.XX" name="startTLS" [23/Sep/2011:07:48:57 -0500] conn=1631 op=0 RESULT err=0 tag=120 nentries=0 etime=0 [23/Sep/2011:07:48:57 -0500] conn=1631 SSL 256 位 AES

如果失败,您需要确保证书已正确导入客户端。

在进行故障排除时,我发现自己经常查看的一些常见区域是:

1.)在客户端,在某些情况下(这里可能有人能够更好地解释),您可以尝试通过编辑 ldap.conf 并包含以下行来要求签名

TLS_REQCERT allow

2.) 如果身份验证 GUI 出现问题,您可以尝试使用以下命令明确启用 LDAP 的 TLS:

authconfig --enableldaptls --update 

我之前遇到过 GUI 问题,因此我倾向于坚持使用 CLI 命令。

3.)最后你可以尝试一下(再次强调,只是为了测试),就是调用

cacertdir_rehash <dir where certs are stored>

更新

如果您在实际创建自签名证书时需要更多帮助,请尝试以下操作:

1.)创建您自己的自签名 CA 证书:

certutil -S -n "<CA Certificate Name Here>" -s "cn=<CN Name Here>, dc=<Your DC's FQDN>" -2 -x -t "CT,," -m 1000 -v 120 -d . -k rsa

2.) 为目录服务器创建服务器证书

certutil -S -n "Cert-Name" -s "cn=<Server FQDN>" -c "<Name of CA Certificate>" -t "u,u,u" -m 1001 -v 120 -d . -k rsa 

3.) 将这两个证书导入“任务”下选择的“管理证书”部分的目录服务器中

4.)启用 TLS 加密

5.) 为客户端创建可导出的证书并将其输出为 .pem 文件

certutil -d . -L -n "<CA Certificate Name>" -a > cacert.pem

6.) 通过您选择的方式 - 将客户端证书下载到每个客户端上。

7.)使用前面提到的命令重新哈希证书

cacertdir_rehash <dir where certs are stored>

答案2

我无法按照我找到的操作指南为 389 目录或管理服务器配置 SSL(我认为这是因为我使用的是 Centos 6,而大多数操作指南都是专门针对 Redhat 的)。

对我来说最终有用的是从 389-console(admin|dir)服务器接口发起证书请求,使用 tinyCA 安装(只是 openssl 的前端,我很懒)签署这些请求),导出签名的 PEM 证书和 CA 证书,然后使用 389-console 将它们导入回来。

389 控制台 -> 服务器组 --> (管理/目录)服务器 -> 打开 -> 管理证书

希望这可以帮助...

答案3

您可以使用以下链接在 SSL 上设置 RHDS/389-ds 吗?

http://lists.fedoraproject.org/pipermail/389-users/2012-March/014200.html

希望有所帮助。

相关内容