Active-Directory

保護 OpenLDAP 和 AD

  • December 29, 2017

通過將 AD 添加為 OpenLDAP 的從屬,我們使用 OpenLDAP 伺服器作為 AD 的代理。

我已經通過使用 StartTLS 連接來保護 OpenLDAP 流量,現在我被告知要使用 LDAPS 協議進行綁定,以便我們連接到 AD 伺服器(我們使用的是簡單綁定)。

所以我的問題是,是否有必要使用 LDAPS 與 AD 通信,因為 OpenLDAP 已經在使用 StartTLS?

我對 OpenLDAP 和 AD 了解不多,所以只想要建議。

我已使用以下配置添加後端 ldap

$$ Lightweight Directory Access Protocol (Proxy) backend $$數據庫。

dn: olcDatabase=ldap,cn=config
objectClass: olcDatabaseConfig
objectClass: olcLDAPConfig
olcDatabase: ldap
olcSuffix: ou=xyz,dc=xyz,dc=xyz
olcSubordinate: TRUE
olcAccess: to dn.subtree="ou=xyz,dc=xyz,dc=xyz"  by * read
olcAddContentAcl: FALSE
olcLastMod: FALSE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcSyncUseSubentry: FALSE
olcMonitoring: FALSE
olcDbURI: "ldap://xx.xx.xx.xx"
olcDbStartTLS: none starttls=no
olcDbACLBind: bindmethod=simple timeout=0 network-timeout=0 binddn="cn=xyz,ou=xyz,dc=xyz,dc=xyz" credentials="xxxxxxxxxxxxxxxxxxxxxx"
olcDbIDAssertBind: mode=legacy flags=prescriptive,proxy-authz-non-critical bindmethod=simple timeout=0 network-timeout=0 binddn="cn=xyz,ou=xyz,dc=xyz,dc=xyz" credentials="xxxxxxxxxxxxxxxxxxxxxx"
olcDbRebindAsUser: TRUE
olcDbChaseReferrals: TRUE
olcDbNoRefs: FALSE
olcDbNoUndefFilter: FALSE

不受 SSL/TLS 保護的 LDAP 簡單綁定非常不安全,因為它涉及通過網路以明文形式發送使用者名和密碼憑證。

LDAP 簡單綁定在 SSL/TLS/LDAPS 上可接受。

要在 Active Directory 域控制器上啟用 LDAPS,您所要做的就是在 AD 域控制器上安裝帶有私鑰的合適證書:

https://support.microsoft.com/en-us/help/321051/how-to-enable-ldap-over-ssl-with-a-third-party-certification-authority

請務必閱讀以上文章的要求部分,了解什麼是可接受的證書。

在域控制器上安裝可接受的證書後,Active Directory 將自動感知其存在並通過埠 636 啟用 LDAPS。

您可以從任何您希望的證書頒發機構獲取證書,只要它受到參與通信的所有各方的信任。它可以是現有的集成了 AD 的 PKI,也可以是您公司網路上的非 Microsoft CA,或者它甚至可以是像 Godaddy、賽門鐵克等全球受信任的公共 CA,只要它有能力出具符合要求的證書:

  • LDAPS 證書位於本地電腦的個人證書儲存區(以程式方式稱為電腦的 MY 證書儲存區)。

  • 與證書匹配的私鑰存在於本地電腦的儲存中,並且與證書正確關聯。私鑰不得啟用強私鑰保護。

  • 增強的密鑰使用擴展包括伺服器身份驗證 (1.3.6.1.5.5.7.3.1) 對象標識符(也稱為 OID)。

  • 域控制器的 Active Directory 完全限定域名(例如 DC01.DOMAIN.COM)必須出現在以下位置之一:

    • 主題欄位中的通用名稱 (CN)。
    • 主題備用名稱擴展中的 DNS 條目。
  • 證書由域控制器和 LDAPS 客戶端信任的 CA 頒發。信任是通過將客戶端和伺服器配置為信任發行 CA 連結到的根 CA 來建立的。

  • 您必須使用 Schannel 加密服務提供程序 (CSP) 來生成密鑰。

(從技術上講,它甚至可能是一個自簽名證書,儘管這不是一個安全的解決方案。)

安裝此證書後,域控制器將自動在埠 636 上啟用 LDAPS 服務。(以及在 3269 上的全域編錄服務。)

到目前為止,我只描述了 LDAPS,但沒有具體描述 StartTLS。

如果您願意,可以針對 Microsoft LDAP 伺服器使用 startTLS:

https://msdn.microsoft.com/en-us/library/aa366997(v=vs.85).aspx

它不需要在伺服器上進行任何額外的配置。它只涉及客戶端向伺服器發送正確的 LDAP 控制項(命令)。(startTLS 的控制 OID 是“1.3.6.1.4.1.1466.20037”。)

引用自:https://serverfault.com/questions/886896