De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Eder L. Marques
Data de Publicação: 27 de Julho de 2008
Essa semana recebi a missão de configurar um novo repositório subversion, então aproveitei para dessa vez utilizar o apache2 com webdav, autenticando via OpenLDAP.
Visita ao site do apache, leitura de documentação, busca no google...
Ok, já posso por a mão na massa.
Ledo engano. O apache2 não autenticava o usuário nem a pau. O log do openldap mostava a consulta sendo feita, o repositório estava com as permissões corretas para www-data.
Tá bom, vou ler a documentação novamente.
Consegui fazer a integração. Vejamos todos os passos.
O usuário www-data precisa ter acesso aos arquivos do repositório. Então supondo que sua base seja /var/svn/repo01, precisamos garantir as permissões com o comando:
cd /var/snv/repo01 chown -R www-data:grupo1 find repo01/ -type f -print -exec chmod 660 {} \; find repo01/ -type d -print -exec chmod 2770 {} \;
Assim, apenas o www-data e os usuários do grupo terão acesso aos arquivos. Além disso, estamos setando o bit SGID nos diretórios, para que os arquivos criados também sejam do grupo.
No apache 2.2.x, o módulo utilizado para autenticação via ldap é o [mod_authnz_ldap href="http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html]. Iremos precisar do módulo dav_svn (pacote libapache2-svn). Habilite-os com o a2enmod.
Crie o arquivo do site em /var/apache2/sites-available/repo01. O conteúdo deve ser mais ou menos assim:
<VirtualHost *:80> ServerAdmin administrador@seudominio.com.br ServerName svn.seudominio.com.br DocumentRoot /var/www/ ErrorLog /var/log/apache2/repo01/error.log LogLevel notice CustomLog /var/log/apache2/repo01/access.log combined <Location /svn/repo01> #habilita o repositorio DAV svn # caminho para o repositorio SVNPath /var/svn/repo01 # tipo de autenticacao AuthType Basic # identificação do repositorio AuthName "Repositorio SVN" # provedor de autenticacao AuthBasicProvider ldap # Está on porque se a autenticação via ldap falhar, não deve pesquisar outras bases AuthzLDAPAuthoritative on # URL da base LDAP. O ?uid especifica atributo pesquisar (uid) AuthLDAPURL "ldap://ldap.seudominio.com.br/ou=Usuarios,dc=seudominio,dc=com,dc=br?uid" # Informa que atributo usar para verificar se o usuario faz parte do grupo ou não AuthLDAPGroupAttribute memberUid # especifica que a busca deve ser feita por usuario, e nao pelo DN AuthLDAPGroupAttributeIsDN off #usuario que irá fazer a consulta no ldap AuthLDAPBindDN "cn=subversion,dc=seudominio,dc=com,dc=br" #senha do usuario acima AuthLDAPBindPassword "senha" # grupos que terão acesso ao repositorio Require ldap-group cn=repo01,ou=Grupos,dc=seudominio,dc=com,dc=br </Location> </VirtualHost>
Habilite o site com o a2ensite, recarregue o apache2 e pronto, seu apache2 está acessando o repositório svn e autenticando via openldap. :D
Agradecimentos ao Faw, que me ajudou a debugar o problema e a encontrar a solução.
Eder L. Marques é Analista de Segurança Sênior da Secretaria de Finanças, Prefeitura de Fortaleza. Além de outros hobbies, mantém os blogues http://blog.edermarques.net/ e http://administrando.net/
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários