我怎么知道如果ldap连接真的被SSL保护,使用ldp并使用.net代码?如何检查ldap连接是否安全?
回答
我终于设法测试,如果我使用Wireshark连接安全或不安全。 您可以将过滤器设置为:tcp.port eq 636或tcp.port eq 389 ,这样您将看到通过636和389端口的通信。
我的结论是,即使未在ldp中选中ssl,ldap服务器也会在636端口上使用安全连接,如果设置了端口636,则检查它没有影响。
我认为这个复选框的目的是强制ssl由客户端,所以如果服务器端口不支持ssl,连接将不会建立。
当我使用我的C#代码则默认为端口636,当它不是固定默认为389
的安全连接的方式来使用从代码的安全连接要么设置连接认证键入ssl或在ldap路径中指定ssl端口。
端口号码与它无关。 389是非安全LDAP连接的标准定义端口,636是安全连接的标准定义端口。大多数服务器可以配置为将任何端口用作安全端口,并将任何其他端口用作非安全端口。 389和636仅仅是基于标准的默认值。服务器可以配置为使用636作为非安全端口,使用389作为安全端口 - 虽然这可能是违反标准的反直觉配置。此外,使用StartTLS可以将389上的连接提升为安全连接,因此389也可以是安全的。
我知道端口可以设置不同。我的答案是基于默认设置。如果设置了不同的设置,则应在相应的答案中更改它们。但谢谢澄清。 顺便说一句,我仍然没有测试过一个案件,当试图从安全的代码连接,但服务器端口设置为不同于636端口。我假设在这种情况下,连接将失败,你我将不得不手动设置端口。 –
根DSE可以提供属性以告知客户端有关LDAP服务器正在使用的安全性和安全端口。例如,IBM的Tivoli Directory Server提供了以下属性,可以帮助LDAP客户端,找出安全端口: secureport:636 安全:ssltls 端口:389 当然,并不是所有的LDAP供应商提供的信息根DSE,即使他们这样做,你仍然必须知道非安全端口来检索根DSE。 – Bora
我确认在.net代码中的DirectoryEntry对象中设置AuthenticationTypes.SecureSocketsLayer,而不指定ldap路径中的端口会导致连接使用端口636,所以如果在ldap服务器中为ldaps设置了不同的端口,在ldap路径中指定。如果连接不安全,没有指定端口,.net将尝试连接端口389。 –
- 1. 春季安全LDAP连接
- 2. API - 连接是否安全?
- 3. 检查LDAP连接(Java)
- 4. 如何检查连接是否为SSL?
- 5. 如何检查是否PPP连接忙
- 6. 如何检查DataMapper是否已连接?
- 7. 如何检查是否WebSocket的连接
- 8. 如何检查连接是否存活?
- 9. 如何检查手机是否连接?
- 10. 如何检查Graph是否连接
- 11. 如何检查连接是否丢失
- 12. 如何检查GoogleApiClient是否连接?
- 13. 如何检查wifi是否连接?
- 14. 如何检查Java上的SSLSocket连接是否健全?
- 15. 安全地连接到ldap傻瓜
- 16. 安全连接到LDAP服务器
- 17. 检查mongoDB是否连接
- 18. 如何在java连接池中检查连接是否关闭
- 19. 此HTTPS连接是否安全?
- 20. websocket连接建立后是否安全?
- 21. HTTPS连接中的Cookie是否安全?
- 22. 检查是否为空线程安全?
- 23. 安全地检查'this`是否为空
- 24. 检查是否安全删除一行
- 25. 检查其是否连接与否
- 26. 如何处理更新检查的安全连接?
- 27. 检查是否可以在重定向之前建立安全连接
- 28. 如何确定上传连接是否安全(ssl)?
- 29. 如何使用TcpClient检查您的连接是否被接受?
- 30. 如何检查服务器是否正在接受连接
完全取决于如何配置LDAP服务器。你所描述的当然是正常的状态,但你通过端口389忽略了STARTTLS,这是安全的。 – EJP
现在,我正在经历这些练习,只需输入'ldap',因为WireShark过滤器可以为您提供所需的实际LDAP流量。当SASL正在使用时,您可以判断它是否提供完整性保护(SASL GSS-API Integrity)和/或隐私保护(SASL GSS-API Privacy)。但是,这两者[不一样](http://security.stackexchange.com/q/123478/21509)。 – rdev5