Linux

間歇性顛覆(針對 AD 的 Apache auth_ldap)失敗

  • July 20, 2010

問題:

我的顛覆已經開始定期停止工作(每隔一兩個小時),這似乎是在域控制器發生故障時開始的(我還沒有進行元數據清理)。但是,失敗的那個不是 AuthLDAPUrl 目錄中指定的那個。

我的問題:

有沒有人知道可能導致這種情況的原因,auth_ldap 聯繫的域控制器是否有可能發送響應告訴 auth_ldap 使用現在已經消失的域控制器?

此外,有沒有辦法將 AuthzSVNAccessFile 中使用者的所有 ldap 身份驗證密碼轉儲到本地文件作為臨時解決方法?

看起來我正在使用全域目錄,埠 3268,使用 636 或 389 會更好。如果我使用其中之一,這意味著什麼?我的一些其他 DC 沒有在 3268 上偵聽,而是在其他埠上,所以也許我可以指定冗餘的 AuthLDAPUrls?

參考資料:

錯誤資訊:

[warn] [client 192.168.80.80] 
[22364] auth_ldap authenticate: user aUserName authentication failed; 
URI /svn/someRepo/trunk [LDAP: ldap_simple_bind_s() failed]
[Can't contact LDAP server]

auth_ldap 配置:

<Location /svn> 
               DAV svn
               SVNParentPath /var/svn
               AuthzSVNAccessFile /etc/httpd/authfiles/authz_svn_access
               AuthType Basic
               AuthBasicProvider ldap
               AuthName "Company's Software Repository"
               AuthLDAPBindDN "apache@myDomain.com"
               AuthLDAPBindPassword "someSuperSecretPassword"
               AuthLDAPUrl "ldap://pdc.myDomain.com:3268/dc=myDomain,dc=com?samAccountName?sub?(objectCategory=person)(objectClass=User)"
               Require valid-user
</Location>

使用埠 3268 表示 LDAP 搜尋應該在“森林範圍內”完成,並且針對全域編錄本身而不是特定域控制器執行。

這可能是問題的一部分——切換到 636 或 389 將切換到僅針對複製到本地 LDAP 伺服器/域控制器的對象執行的 LDAP 查詢。

我認為“正確”的解決方案是簡單地清理 AD - 失去的 DC 可能還會導致同步等各種其他問題。

至於轉儲密碼 - 對於良好的 LDAP 目錄,密碼屬性是只寫的(SunONE、Novell eDirectory 和 MS Active Directory 都這樣做),特別是為了防止人們轉儲和濫用它們。

如果是緊急情況,您可以使用 pwdump 之類的工具從域控制器 SAM 中轉儲密碼,然後用彩虹表或其他東西破解它們,但我認為如果您只是清理元數據和林,就可以了.

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