Instalación de servidor de repositorio Subversion con soporte SSL y autenticación por LDAP en Debian GNU/Linux
Después de haber realizado la guía de instalación y configuración de un servidor OpenLDAP en Debian GNU/Linux, me dispuse a integrar muchos otros servicios el cual se pudieran autentificar mediante el LDAP.Así que me di a la tarea de configurar Subversion con Apache2 para que puedan autentificarse mediante LDAP, esta guía la desarrolle en Debian pero fácilmente puede ser adaptada para Ubuntu u otras distribuciones derivadas de Debian.
Instalando la paquetería necesaria
Para empezar se deben descargarse los paquetes necesarios para tener Apache2 y sus respectivos módulos para que se pueda trabajar con Subversion.
# apt-get install subversion apache2 libapache2-svn subversion-tools
Luego debemos crear el repositorio
# mkdir /var/svn/proyecto
# svnadmin create /var/svn/proyecto
Es necesario cambiar el propietario y permisos de escritura para el servidor Apache2
# chown www-data.www-data -R /var/svn/proyecto/
# chmod 777 -R /var/svn/proyecto/
Habilitando los módulos para Apache2
#a2enmod dav
#a2enmod dav_svn
# a2enmod authnz_ldap
Debemos forzar la carga de módulos a Apache2
# /etc/init.d/apache2 force-reload
# /etc/init.d/apache2 restart
Generando un certificado auto firmado
# apt-get install ssl-cert
Creamos el directorio donde estará alojado nuestro certificado auto firmado.
# mkdir /etc/apache2/ssl
Con el paquete ssl-cert viene la herramienta make-ssl-cert para crearnos el certificado auto firmado.
# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
Configurando un Virtual Host para tener soporte SSL
Copiamos un virtual host hacia la carpeta de sitios disponibles
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Editamos el virtual host
# nano /etc/apache2/sites-enabled/ssl
Y al principio del archivo debemos realizar los cambios que presento a continuación
NameVirtualHost *:443
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
Ahora habilitamos el virtual host con soporte para ssl
# a2enmod ssl
Y reiniciamos Apache2, para que reconozca nuestros cambios
# /etc/init.d/apache2 force-reload
Configurando Apache2 para Subversion
# nano /etc/apache2/acceso.authz
[groups]
# Se agregan los usuarios creados en el servidor LDAP
grupo-ldap = daniel.herrera, carlos.ramirez
[proyecto:/]
@grupo-ldap=rw
Ahora se procede a crear el virtual host del proyecto en Apache editando el siguiente archivo.
# nano /etc/apache2/mods-enabled/dav_svn.conf
Se agrega la siguiente entrada adaptada a nuestro ejemplo de repositorio.
<Location /svn/proyecto>
DAV svn
SVNPath /var/svn/proyecto
AuthType Basic
AuthName "Repositorio de prueba de Proyecto"
AuthzSVNAccessFile /etc/apache2/acceso.authz
Require valid-user
SSLRequireSSL
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPBindDN "cn=admin,dc=dominio,dc=com"
AuthLDAPBindPassword contraseña-servidor-ldap
AuthLDAPURL "ldap://ip-hostname/ou=users,dc=dominio,dc=com?cn"
</Location>
Terminado esto solo basta con reiniciar Apache
# /etc/init.d/apache2 restart
Después de estar trabajando ya un buen ratito con 










