我正在配置服务器 SVN Collabnet(用于 Solaris 10 的 v1.5.6.1)。我成功使用 ldap 服务器进行 SVN 认证。如何避免在以下配置文件(collabnet_subversion_httpd.conf)中写入未加密的密码(XXXXX,此处)?
ServerName mccuatsv10:8080
Listen 8080
User csvn
Group csvn
<Location /svn>
DAV svn
SetHandler svn
SVNParentPath /appli/svn/repositories/
AuthName "Subversion repository"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative On
AuthLDAPBindDN [email protected]
AuthLDAPBindPassword XXXXX
AuthLDAPURL ldap://eur.msd.world.ibm:389/OU=Users,OU=Accounts,OU=FR,DC=eur,DC=msd,DC=world,DC=socgen?sAM
AccountName?sub?(objectCategory=person)
Require valid-user
</Location>
一种选择是将该
AuthLDAPBindPassword
行单独放入适当的 chmodded 文件中,并Include
在 apcahe 配置中使用 an 来拉入该文件。即:这可以保证密码的安全,同时让配置世界的其余部分保持可读性。
一些 ldap 服务器允许匿名绑定。然后 [afaik] 你不需要提供绑定密码。
由于 Apache2 以 root 身份启动并在删除 root 之前读取配置文件。
假设您当前的文件配置由 root 拥有并且组是 root,如下所示:
-rw-r--r-- 1 root root 1.4K 2014-10-15 14:43 vhostconf
您可以从文件中删除读/写/执行到“其他用户”:
sudo chmod o-rwx /etc/apache2/sites-available/vhostconf
你最终应该得到:
-rw-r----- 1 root root 1.4K 2014-10-15 14:43 vhostconf
这应该足以让 Apache2 读取它。
从 Apache 2.2.25 开始,AuthLDAPBindPassword 可以执行命令来查找密码。
最简单的选择是拥有
http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#authldapbindpassword中的详细信息