我们正在尝试对使用防火墙阻止 389 的服务器执行 LDAPS 绑定,因此所有流量都必须通过 636。
在我们的测试实验室中,我们连接到一个测试 ldap(位于同一台服务器上),该服务器没有此防火墙,因此两个端口都暴露在外。在测试服务器上运行 ldp.exe,我们生成下面的跟踪,这似乎表明它已成功绑定到 636。但是,如果我们使用 wireshark 监控流量,则所有流量都被发送到 389,甚至没有尝试联系 636。
其他工具将仅在 636 上绑定 SSL,或在 389 上不绑定 SSL,这似乎表明它运行正常,但 Wireshark 显示 389。
仅限我们正在使用的测试服务器原始资本捕获本地环回流量。
有任何想法吗?
0x0 = ldap_unbind(ld);
ld = ldap_sslinit("WIN-GF49504Q77T.test.com", 636, 1);
Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);
Error 0 = ldap_connect(hLdap, NULL);
Error 0 = ldap_get_option(hLdap,LDAP_OPT_SSL,(void*)&lv);
Host supports SSL, SSL cipher strength = 128 bits
Established connection to WIN-GF49504Q77T.test.com.
Retrieving base DSA information...
Getting 1 entries:
Dn: (RootDSE)
答案1
我将首先按如下方式验证证书。
如何解决 LDAP over SSL 连接问题
http://support.microsoft.com/kb/938703
步骤 1:验证服务器身份验证证书
确保您使用的服务器身份验证证书满足以下要求:
域控制器的 Active Directory 完全限定域名出现在以下位置之一:
- 主题字段中的通用名称 (CN)
DNS 条目中的主题备用名称 (SAN) 扩展
- 增强密钥使用扩展包括服务器身份验证对象标识符 (1.3.6.1.5.5.7.3.1)。
- 关联的私钥在域控制器上可用。要验证密钥是否可用,请使用 certutil -verifykeys 命令。
- 证书链在客户端计算机上有效。要确定证书是否有效,请按照以下步骤操作:
- 在域控制器上,使用证书管理单元将 SSL 证书导出到名为 Serverssl.cer 的文件中。
- 将 Serverssl.cer 文件复制到客户端计算机。
- 在客户端计算机上,打开命令提示符窗口。
- 在命令提示符下,键入以下命令,将命令输出发送到名为 Output.txt 的文件:
certutil -v -urlfetch -verify serverssl.cer > output.txt
打开 Output.txt 文件,然后搜索错误。
步骤 2:验证客户端身份验证证书
在某些情况下,如果客户端计算机上有客户端身份验证证书,LDAPS 会使用该证书。如果有此类证书,请确保该证书满足以下要求:
- 增强密钥使用扩展包括客户端身份验证对象标识符 (1.3.6.1.5.5.7.3.2)。
- 关联的私钥在客户端计算机上可用。要验证密钥是否可用,请使用 certutil -verifykeys 命令。
证书链在域控制器上有效。要确定证书是否有效,请按照以下步骤操作:
- 在客户端计算机上,使用证书管理单元将 SSL 证书导出到名为 Clientssl.cer 的文件。
- 将 Clientssl.cer 文件复制到服务器。
- 在服务器上,打开命令提示符窗口。
在命令提示符下,键入以下命令,将命令输出发送到名为 Outputclient.txt 的文件:
certutil -v -urlfetch -verify serverssl.cer > outputclient.txt
打开 Outputclient.txt 文件,然后搜索错误。
步骤 3:检查多个 SSL 证书
确定多个 SSL 证书是否满足步骤 1 中描述的要求。Schannel(Microsoft SSL 提供程序)选择 Schannel 在本地计算机存储中找到的第一个有效证书。如果本地计算机存储中有多个有效证书,Schannel 可能无法选择正确的证书。如果 CA 安装在您尝试通过 LDAPS 访问的域控制器上,则可能会与证书颁发机构 (CA) 证书发生冲突。
步骤 4:验证服务器上的 LDAPS 连接
使用域控制器上的 Ldp.exe 工具尝试使用端口 636 连接到服务器。如果无法使用端口 636 连接到服务器,请查看 Ldp.exe 生成的错误。此外,查看事件查看器日志以查找错误。有关如何使用 Ldp.exe 连接到端口 636 的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
321051 如何使用第三方认证机构启用 LDAP over SSL
http://support.microsoft.com/kb/321051
步骤 5:启用 Schannel 日志记录
在服务器和客户端计算机上启用 Schannel 事件日志记录。有关如何启用 Schannel 事件日志记录的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
260729 如何在 IIS 中启用 Schannel 事件日志记录
http://support.microsoft.com/kb/260729