配置加入 Active Directory 的 CentOS 6.8 客户端以使用 LDAPS?

配置加入 Active Directory 的 CentOS 6.8 客户端以使用 LDAPS?

我正在努力寻找一个简单的解释,关于如何配置 CentOS 6.8 机器以使用 LDAPS 查询在 Windows 2012 R2 域控制器上运行的 Active Directory。

我已将 Linux 客户端加入域,并将域控制器配置为认证机构。从 DC,我可以使用 LDP 并通过端口 636 连接到本地主机。因此,我相信 DC 此时应该支持 LDAPS。

在客户端,我使用以下命令生成了证书:openssl req -nodes -newkey rsa:2048 -keyout domain.key -out domain.csr

因此它生成了这两个文件。据我所知,我需要从客户端向 DC 发送请求,以便将客户端注册到 CA。我不知道该怎么做。我相信一旦我完成了这件事,我就应该能够使用 ldapsearch 从客户端查询活动目录。

那么有效地,我如何配置客户端使用受信任的证书与 DC 通信?

答案1

所以我最终弄清楚了如何做到这一点。

要实现此功能,第一个任务是将域控制器配置为证书颁发机构。为此,我按照以下视频操作:https://www.youtube.com/watch?v=JFPa_uY8NhY

在我能够通过端口 636 连接到 AD 之后,我必须在 CentOS 机器上配置 openldap 以使用该端口。我想如果我可以让 ldapsearch 在端口 636 上查询 AD,那么最后一步就是让 tac_plus 做同样的事情。要配置 openldap,我所要做的就是编辑文件/etc/openldap/ldap.conf

我修改了三个字段;BASE、URI,并添加了行"TLS_REQCERT allow"

根据字段的正确性非常重要。它必须是正确的格式,并且指向 AD 中用户帐户的位置。我的是:"CN=users, DC=ent, DC=local"

URI 字段的正确性也很重要。我使用了服务器的完全限定域名和端口号。最终结果是:"ldaps://dc1-ent.ent.local:636"

"TLS_REQCERT allow"行允许 CentOS 计算机在与服务器建立会话的过程中向域控制器请求证书。这类似于 SSH 在与远程主机建立 SSH 会话时实现其密钥交换算法的方式。

然后我使用以下 ldapsearch 命令来验证它是否有效:

ldapsearch -D "[email protected]" -W -p 636 -h ldaps://dc1-ent.ent.local -b "CN=users, DC=ent, DC=local" -s Sub -x -ZZ "(objectclass=*)" -d1

上面命令中的选项-d1允许详细的调试输出,这样我可以看到用于加密会话的服务器公钥的交换。

从此以后一切都正常了。我能够使用 wireshark 捕获流量并确认在身份验证时建立了加密的 TLS 会话。我相信这种使用 AD 进行身份验证的方法称为 PEAP。我没有费心让 EAP-TLS 或 EAP-TTLS 工作。

相关内容