Diferenças entre edições de "Subversion + LDAP"
(Criou a página com "A integração de autenticação LDAP para acesso a repositórios Subversion está dependente do uso de SASL. Este manual destina-se a instalações não baseadas no protoc...") |
|||
Linha 1: | Linha 1: | ||
A integração de autenticação LDAP para acesso a repositórios Subversion está dependente do uso de SASL. | A integração de autenticação LDAP para acesso a repositórios Subversion está dependente do uso de SASL. | ||
− | Este manual destina-se a instalações não baseadas no protocolo svn:// puro (sem ser por SSH ou por WebDAV). | + | Este manual destina-se a instalações não baseadas no protocolo svn:// puro (sem ser por SSH ou por WebDAV) e presume a existência de um serviço LDAP em execução e correctamente configurado. |
Como os caminhos podem variar e há inconsistências mesmo na mesma distribuição, há recomendações de certas ligações simbólicas que convém criar-se. De notar que, pelo menos em distribuições baseadas em Ubuntu, o svnserve não tem configurações base para uso com o systemd ou qualquer outro serviço de ''init'' alternativo. Assim sendo, também se apresenta aqui a listagem dos ficheiros necessários para que o svnserve possa ser adicionado ao arranque. | Como os caminhos podem variar e há inconsistências mesmo na mesma distribuição, há recomendações de certas ligações simbólicas que convém criar-se. De notar que, pelo menos em distribuições baseadas em Ubuntu, o svnserve não tem configurações base para uso com o systemd ou qualquer outro serviço de ''init'' alternativo. Assim sendo, também se apresenta aqui a listagem dos ficheiros necessários para que o svnserve possa ser adicionado ao arranque. | ||
Linha 46: | Linha 46: | ||
mech_list: LDAP | mech_list: LDAP | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
Recomendamos que crie um link simbólico da pasta /usr/lib/sasl2 em /etc: | Recomendamos que crie um link simbólico da pasta /usr/lib/sasl2 em /etc: | ||
<syntaxhighlight>ln -s /usr/lib/sasl2 /etc</syntaxhighlight> | <syntaxhighlight>ln -s /usr/lib/sasl2 /etc</syntaxhighlight> | ||
+ | |||
É preferível, também, ter um utilizador e um grupo "svn" no sistema, devendo substituir, nos comandos abaixo, os dados conforme necessário: | É preferível, também, ter um utilizador e um grupo "svn" no sistema, devendo substituir, nos comandos abaixo, os dados conforme necessário: | ||
Linha 60: | Linha 62: | ||
chmod 700 <caminho base dos seus repositórios> | chmod 700 <caminho base dos seus repositórios> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
Em algumas distribuições, há problemas de permissões que vão impedir o svnserve de correctamente contactar o serviço sasl, pelo que essas permissões devem ser corrigidas: | Em algumas distribuições, há problemas de permissões que vão impedir o svnserve de correctamente contactar o serviço sasl, pelo que essas permissões devem ser corrigidas: | ||
Linha 66: | Linha 69: | ||
chmod 711 /var/run/saslauthd | chmod 711 /var/run/saslauthd | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | De seguida, cria-se ou edita-se o ficheiro que permite ao serviço saslauthd consultar a base de dados LDAP. O modelo abaixo pode ser usado, devendo ser adaptado conforme necessário: | ||
+ | |||
+ | /etc/saslauthd.conf: | ||
+ | |||
+ | <syntaxhighlight> | ||
+ | ldap_servers: ldap://localhost | ||
+ | ldap_port: 389 | ||
+ | ldap_version: 3 | ||
+ | ldap_password_attr: userPassword | ||
+ | ldap_auth_method: bind | ||
+ | ldap_filter: (uid=%u) | ||
+ | ldap_search_base: ou=Users,dc=dominio,dc=pt | ||
+ | ldap_bind_pw: <password do utilizador LDAP> | ||
+ | ldap_bind_dn: cn=admin,dc=dominio,dc=pt | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | Agora só falta editar o ficheiro de configuração de cada repositório. Dentro de um repositório subversion já criado, há um ficheiro chamado svnserve.conf na pasta conf do respositório. Eis um modelo base | ||
+ | |||
+ | <repositório>/conf/svnserve.conf: | ||
+ | <syntaxhighlight> | ||
+ | [general] | ||
+ | |||
+ | anon-access = none | ||
+ | auth-access = write | ||
+ | |||
+ | [sasl] | ||
+ | use-sasl = true | ||
+ | #min-encryption = 128 | ||
+ | #max-encryption = 256 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | '''TODO:''' adicionar suporte de encriptação. |
Revisão das 15h09min de 6 de junho de 2018
A integração de autenticação LDAP para acesso a repositórios Subversion está dependente do uso de SASL.
Este manual destina-se a instalações não baseadas no protocolo svn:// puro (sem ser por SSH ou por WebDAV) e presume a existência de um serviço LDAP em execução e correctamente configurado.
Como os caminhos podem variar e há inconsistências mesmo na mesma distribuição, há recomendações de certas ligações simbólicas que convém criar-se. De notar que, pelo menos em distribuições baseadas em Ubuntu, o svnserve não tem configurações base para uso com o systemd ou qualquer outro serviço de init alternativo. Assim sendo, também se apresenta aqui a listagem dos ficheiros necessários para que o svnserve possa ser adicionado ao arranque.
Excepto se indicado em contrário, estes comandos devem ser executados como root ou com o sudo.
/etc/systemd/system/svnserve.service:
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
RuntimeDirectory=svnserve
PIDFile=/run/svnserve/svnserve.pid
EnvironmentFile=/safe/etc/default/svnserve
ExecStart=/usr/bin/svnserve $DAEMON_ARGS
User=svn
Group=svn
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=svnserve.service
Na configuração padrão do serviço svnserve, deverá preencher a variável SVNROOT com o valor correcto. Poderá também alterar o caminho que se segue a "--log-file" para outro destino que lhe seja mais conveniente.
/etc/default/svnserve.conf:
SVNROOT="<caminho base dos seus repositórios>"
DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root $SVNROOT --log-file /var/log/svnserve/svnserve.log"
/usr/lib/sasl2/svn.conf:
pwcheck_method: saslauthd
mech_list: LDAP
Recomendamos que crie um link simbólico da pasta /usr/lib/sasl2 em /etc:
ln -s /usr/lib/sasl2 /etc
É preferível, também, ter um utilizador e um grupo "svn" no sistema, devendo substituir, nos comandos abaixo, os dados conforme necessário:
groupadd -r svn
useradd -r -d <caminho base dos seus repositórios> -g svn svn
mkdir <caminho base dos seus repositórios>
chown -R svn:svn <caminho base dos seus repositórios>
chmod 700 <caminho base dos seus repositórios>
Em algumas distribuições, há problemas de permissões que vão impedir o svnserve de correctamente contactar o serviço sasl, pelo que essas permissões devem ser corrigidas:
chmod 711 /var/run/saslauthd
De seguida, cria-se ou edita-se o ficheiro que permite ao serviço saslauthd consultar a base de dados LDAP. O modelo abaixo pode ser usado, devendo ser adaptado conforme necessário:
/etc/saslauthd.conf:
ldap_servers: ldap://localhost
ldap_port: 389
ldap_version: 3
ldap_password_attr: userPassword
ldap_auth_method: bind
ldap_filter: (uid=%u)
ldap_search_base: ou=Users,dc=dominio,dc=pt
ldap_bind_pw: <password do utilizador LDAP>
ldap_bind_dn: cn=admin,dc=dominio,dc=pt
Agora só falta editar o ficheiro de configuração de cada repositório. Dentro de um repositório subversion já criado, há um ficheiro chamado svnserve.conf na pasta conf do respositório. Eis um modelo base
<repositório>/conf/svnserve.conf:
[general]
anon-access = none
auth-access = write
[sasl]
use-sasl = true
#min-encryption = 128
#max-encryption = 256
TODO: adicionar suporte de encriptação.