微軟計劃於2020年1月推出補丁更新,啓用LDAP簽名。雖然目前版本的操做系統已經包含了這個功能,可是微軟並無將它啓用。隨着時間推移,網絡上的威脅愈來愈多。憑據重放和中間人公雞(不是寫錯了,是51CTO不容許)在LDAP的公雞(不是寫錯了,是51CTO不容許)中顯得極爲有效。因此,咱們須要儘快啓用LDAP簽名這個安全特性。值得注意的是微軟的目錄服務一般在企業內部用做最基本的身份驗證,不少其它系統也依賴於Windows提供的LDAP服務,這些三方系統的兼容性須要獲得足夠的測試。建議先在某些域控上啓用策略,完成測試驗證。windows
先來看一下當前默認狀況下的域環境的LDAP鏈接狀況。在客戶端輸入ldp來嘗試手動鏈接。固然,若是你的計算機上顯示沒有ldp.exe這個程序的話,是由於沒有安裝AD部分的RSAT。須要在添加刪除Windows功能中手動添加。若是看不到圖,請點我。安全
添加完畢後,就能夠運行ldp.exe了。在這裏,咱們輸入域控的計算機名,並使用默認的389進行鏈接。服務器
鏈接成功後,點擊Bind,選擇Simple bind,並輸入用戶名和密碼。網絡
能夠看到,目前是能夠正常鏈接到域控的。接下去咱們就要進行安全加固了。dom
首先,須要在域控制器上啓用策略。我一直推薦不要修改Default Domain Policy和Default Domain Controllers Policy這2條默認策略,能夠在域級別新建一條LDAP的策略進行修改。而後把一樣的這條策略應用到Domain Controllers這個OU上,而且確保優先級高於默認策略。由於Default Domain Controllers Policy中可能已經將Domain controller: LDAP server signing requirements定義爲了None。至少在個人測試環境中是這樣的,爲此我還花費了很多時間來解決這個問題。ide
策略的位於Computer Configuration--Policies--Windows Settings--Security Settings--Local Policies--Security Options。找到Domain controller: LDAP server signing requirements。將其從Not Defined改爲Require signing。測試
而後,修改域控上的註冊表鍵值。HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\ldapserverintegrityui
將ldapserverintegrity從1修改成2。須要注意的是若是不修改組策略而直接修改註冊表鍵值,這個值會被修改回1。我就遇到了在添加的LDAP策略中修改後這個鍵值仍然會被改回1。這是因爲個人環境中默認域控器策略中定義了這條策略,可是它被設置爲None。操作系統
接下去就是客戶端策略的修改了。一樣在客戶端所在OU上新建一條策略,而後修改其中的Computer Configuration--Policies--Windows Settings--Security Settings--Local Policies--Security Options下的Network security:LDAP client signing requirements,將其改成Require signing。建議一樣在域控的LDAP策略中將它也設置一下,由於域控也能夠做爲LDAP客戶端。.net
一樣的須要修改註冊表鍵值,HKLM\SYSTEM\CurrentControlSet\Services\ldap下的ldapclientintegrity。將它改爲2。
而後,採用一樣的方式用ldp鏈接域控。會發現使用simple bind的鏈接失敗了,須要更強的驗證方式。更強的LDAP驗證方式包括SSL。若是採用SSL按微軟的說法是仍然可使用simple bind的。詳細請參考這裏:
https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/domain-controller-ldap-server-signing-requirements
若是服務器上啓用了LDAP的基本日誌,就能看到相應信息。啓用方法是將註冊表中的HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics下的16 LDAP Interface Events從1修改成2。日誌啓用的詳細信息請參考這篇文章:
服務器的Directory Service中會記錄2889的事件,說明有人試圖使用非簽名的方式明文鏈接LDAP服務。
參考文章:
https://support.microsoft.com/en-us/help/935834/how-to-enable-ldap-signing-in-windows-server-2008