我怎麼知道如果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