间歇性 Subversion(针对 AD 的 Apache auth_ldap)故障

间歇性 Subversion(针对 AD 的 Apache auth_ldap)故障

问题:
我的 subversion 开始定期停止工作(每隔一两个小时),这似乎是在域控制器发生故障时开始的(我还没有进行元数据清理)。但是,失败的域控制器不是 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 "[email protected]"
                AuthLDAPBindPassword "someSuperSecretPassword"
                AuthLDAPUrl "ldap://pdc.myDomain.com:3268/dc=myDomain,dc=com?samAccountName?sub?(objectCategory=person)(objectClass=User)"
                Require valid-user
</Location>

答案1

使用端口 3268 表示 LDAP 搜索应在“林范围”内进行,并且针对全局目录本身而不是特定的域控制器运行。

这可能是问题的一部分 - 切换到 636 或 389 将切换到仅针对复制到本地 LDAP 服务器/域控制器的对象运行的 LDAP 查询。

我认为“正确”的解决方案是简单地清理 AD - 丢失的 DC 可能还会导致各种其他同步问题等。

至于转储密码 - 对于良好的 LDAP 目录,密码属性是只写的(SunONE、Novell eDirectory 和 MS Active Directory 都这样做),专门是为了防止人们转储和滥用它们。

如果是紧急情况,您可以使用 pwdump 之类的工具从域控制器 SAM 中转储密码,然后使用彩虹表或其他东西破解它们,但我认为如果您只是清理了元数据和森林,那就没问题了。

答案2

你使用的 apache 和 svn 是什么版本? apache 和 ldap/AD 的早期版本存在已知问题...2.2.8 版已修复(我相信)http://www.apache.org/dist/httpd/CHANGES_2.2

相关内容