Normalmente el objetivo de implementar un árbol de directorio LDAP es el tener centralizados los usuarios utilizados en una red. Se ha hablado aquí de autenticaciones tanto de máquinas Linux como de Windows. Pero no siempre son las únicas autenticaciones que se han de realizar dentro de una red. A menudo existen otro tipo de servicios para los cuales los usuarios han de realizar algun tipo de autenticación ya sea transparente o no.
Un servicio bastante utilizado por los administradores de red de todos los tipos son los servidores cache web. Uno de los más utilizados de este tipo es Squid.
En primer lugar es importante tener claro todo el proceso que hay desde el momento en el que un cliente hace una solicitud de una página web hasta que por fin la recibe. El esquema a continuación plantea un caso ideal, en el que el usuario se autentica correctamente contra el servidor Squid.

squid+ldap.png

El propósito de este apéndice no cubre la comprensión total del servdor Squid, por lo que antes de proceder a la configuración de los valores necesarios para la autenticación contra LDAP, es recomendable que el lector consulte algún manual de configuración de Squid, en el caso de que no tenga claro el funcionamiento interno. En la siguiente url se puede encontrar el manual de usuario oficial del servidor Squid:
http://www.deckle.co.za/squid-users-guide/Main_Page

auth_param basic children 5
auth_param basic realm Servidor web cache Squid
auth_param basic program /usr/lib/squid/ldap_auth  -b "ou=People,dc=codeplex,dc=ndos" 127.0.0.1
 
acl password proxy_auth REQUIRED
acl LAN src 192.168.1.0/24
http_access allow LAN password


El parámetro authparam, como se puede comprobar el manual de Squid_, se encarga de definir los valores que hacen referencia al método de autenticación de squid. Por lo tanto para cada caso concreto pueden variar.
La línea a la que hay que prestar mayor atención es la tercera:
auth_param basic program /usr/lib/squid/ldap_auth  -b "ou=People,dc=codeplex,dc=ndos" 127.0.0.1


En esta linea se está definiendo el tipo de autenticación que va a utilizar squid. En este caso Squid va a utilizar un helper que es el ldapauth que se encarga de hacer el proceso de autenticación contra un directorio LDAP. A partir de la versión 2.4 de Squid, este helper viene incluido en el paquete Squid_, por lo que ya no resulta necesario descargarlo aparte.
Para obtener más información sobre los parámetros que se le pueden pasar a este helper, no hay más que consultar la ayuda básica, ya que se trata de un comando normal y corriente.

/usr/lib/squid/ldap_auth
Usage: squid_ldap_auth -b basedn [options] [ldap_server_name[:port]]...
		.
		.
		.


En este ejemplo de configuración de squid, únicamente se indica como parámetro la base dn desde la cual el helper realizará la búsqueda del usuario con el que se esté intentando autenticar, y la dirección de la máquina en la cual se encuentra el árbol LDAP.
A pesar de las opciones básicas es interesante realizar una serie de observaciones.
Por defecto el helper de LDAP utiliza el protocolo v2 de LDAP, por lo que en el caso de que en el servidor LDAP únicamente esté permitido el protocolo v3, la autenticación no va a funcionar. En el caso de que no sea interesante permitir el protocolo v2 en el servidor LDAP, habrá que añadir en la linea del helper el parámetro -v 2, quedando de la siguiente manera:

auth_param basic program /usr/lib/squid/ldap_auth  -v 3 -b "ou=People,dc=codeplex,dc=ndos" 127.0.0.1


Otro detalle es, que por defecto ldap-auth va a realizar la búsqueda del usuario a partir del base dn indicado y en las entradas cuyo atributo de usuario sea uid, como por ejemplo;
uid=foo,ou=People,dc=codeplex,dc=ndos


En el caso de que el atributo del nombre de los usuarios del árbol sea otro diferente de uid, como por ejemplo cn, habrá que especificarlo con el parámetro -u.

Last edited Dec 7, 2006 at 4:04 PM by joicekafer, version 7

Comments

No comments yet.