保護 OpenLDAP 和 AD
通過將 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 域控制器上安裝帶有私鑰的合適證書:
請務必閱讀以上文章的要求部分,了解什麼是可接受的證書。
在域控制器上安裝可接受的證書後,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”。)