Implantación de un Servicio de Control de Versiones con SVN, Apache y Autenticación contra el Directorio Activo

Implantación de un Servicio de Control de Versiones con SVN, Apache y Autenticación contra el Directorio Activo

Recientemente hemos implantado en nuestra oficina un sistema de control de versiones basado en subversión (http://es.wikipedia.org/wiki/Subversion). Con el fin de ayudar a quién quiera hacer algo parecido vamos a publicar algunos de los puntos principales que hemos adoptado. En nuestro caso, partimos de un entorno formado por un servidor Linux y donde los usuarios utilizan Windows XP.

En primer lugar, la facilidad de uso es siempre primordial, para que los usuarios no sean reticentes a comenzar con su utilización en su trabajo habitual. Por esta razón se instaló en los equipos cliente el software TortoiseSVN (http://tortoisesvn.net/) Este software se

integra como plugin en el explorador de Windows, y con un simple botón derecho es posible acceder a cualquiera de las múltiples opciones que esta herramienta nos ofrece. Su instalación es muy sencilla, tan sólo es necesario descargarse la última versión del software y seguir los pasos indicados, siendo necesario reiniciar el equipo posteriormente para obtener todas las funcionalidades.

En cuanto al servidor, para facilitar su utilización se integró el servidor de subversión con el servidor web Apache que ya utilizábamos para nuestra Intranet, de modo que no se requiere añadir nuevas reglas en el firewall para acceder al servicio. Para conseguir esta funcionalidad, habría que añadir al fichero de configuración del “virtual host” correspondiente las siguientes líneas:

<Location /subversion>

       DAV svn

       SVNPath “/SVN/subversion/repos”

</Location>

Posteriormente debemos forzar al servicio Apache a que vuelva a leer el fichero de configuración, algo que se puede conseguir con el siguiente comando en entornos Linux:

service apache reload

Y para verificar que hemos realizado estos pasos correctamente, podemos hacer uso del navegador, introduciendo la url correspondiente, que debe ser algo como http://ip_servidor/subversion

El siguiente punto a tratar es añadir un grado de seguridad adicional en el servicio, como es la protección del acceso al mismo mediante usuario y contraseña. En este punto se estudiaron diversas variantes, pero siempre con el objetivo de facilitar al máximo a los usuarios la utilización del servicio. A nivel de administrador, la alternativa más sencilla es posiblemente hacer uso de la directiva “htaccess”, ampliamente documentada en internet.

Pero sin duda, la solución idónea que se nos presentó es integrar la autenticación en subversion con la autenticación contra el directorio activo, de modo que los usuarios tuvieran que introducir sus credenciales de acceso de Windows para poder acceder al contenido. De este modo, el usuario no tiene que recordar unas nuevas credenciales, y el administrador no tiene que realizar las típicas tareas de gestión de usuarios. Esto se consigue añadiendo las siguientes líneas al fichero de configuración del virtual host donde hemos configurado el acceso a SVN.

<Location /subversion>

       DAV svn

       SVNPath “/SVN/subversion/repos”

       AuthType Basic

       AuthName “Introduce tus credenciales de Active Directory”

       AuthBasicProvider ldap

       AuthzLDAPAuthoritative on

       AuthLDAPURL

ldap://ip_ldap:389/OU=OUP,DC=DC1,DC=DC2,DC=com?sAMAccountName?sub

       AuthLDAPBindDN “CN=user,OU=OUP,DC=DC1,DC=DC2,DC=com”

       AuthLDAPBindPassword “password”

       require user usuario1 usuario2

</Location>

En este caso concreto, se permite el acceso al servicio tan sólo a los usuarios usuario1 y usuario2.

En AuthLDAPURL se debe introducir la dirección de LDAP de consulta, en AuthLDAPBindDN el DN del identificador del usuario que se va a utilizar para acceder al servicio LDAP y en AuthLDAPBindPassword  su contraseña

 

En este punto, se destaca que el usuario que se utiliza en la directiva “AuthLDAPBindDN ” debe ser un usuario de sólo lectura, sin privilegios de escritura. Esto es especialmente importante debido a que es necesario introducir la contraseña del mismo en el fichero de configuración. En cualquier caso, los privilegios de lectura del contenido de este fichero deben ser restringidos al máximo posible a nivel de sistema operativo, minimizando de este modo el riesgo al que se encuentra expuesto el sistema.

Como siempre, cualquier duda que podáis tener al respecto, ¡no dudéis en preguntar!

 

Nuria Acinas

 Consultor Seguridad TIC

Áudea Seguridad de la Información

www.audea.com