´ Autenticacion LDAP en GNU/Linux

Alberto Molina Coballes <alberto.molina@hispalinux.es> IES Gonzalo Nazareno. Dos Hermanas (Sevilla) 4 de enero de 2008

Resumen En este documento se describen los pasos necesarios para configurar un equipo GNU/Linux para gestionar de forma centralizada las cuentas de usuarios de una red mediante un directorio LDAP. Todo el desarrollo se realiza utilizando OpenLDAP ´ 2.3.30 sobre la rama estable de la distribucion Debian GNU/Linux 4.0 (etch).

c Alberto Molina Coballes. Algunos derechos reservados. Esta obra est´ bajo una licencia Attribution-ShareAlike 2.5 de Creative Coma mons. Para ver una copia de esta licencia, visite: http://creativecommons.org/licenses/by-sa/2.5/es/

1

. . . . . 4. . . . . . . . . . .1. . .1. .2. . . . . . . . . . . . . .2. . . . . . . . libnss-ldap . .3. . . . . Name Service Switch (nss) . . . . . . . . . . . . . . . . . . . . . . Herramientas de gestion de usuarios ´ 4. . . . . . . . . . 3. . . . . 4. . . . . . . .2. . . . . . . . . 3. Introduccion ´ 2. . . . 4. ldapdelete . . . . . . . . . . . .3. . . Configuracion del cliente LDAP ´ 3.´ Indice 1. . . . . . .1.1. . . . . . . . . . Modificacion de /etc/nsswitch. . . . . .1. . . . . . . . . . . . . . ´ 4. . . . ldapscripts . ldap-utils . ldapadd . . . . . . . . . . . ldapmodify . . . . . . . . . . . . . . . . . . . . . . 4. .1. . . a A. . . ´ 3. . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . .1. . . ´ 3. . . . . . . . . . . . . libpam-ldap . . .1. . ldapsearch . . 4. . . . . . . . . . . . . . . . . . . . . Estructura b´ sica del directorio . . . . . .2. . . . . . . . . . Modificacion de los ficheros common-* .1. . . . . . . .2. . . . . .conf . . . . . Pluggable Authentication Module (PAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. .1. a 3. . . . . . . .1. . . . . . . . . . . . 3. .1. . . . . Instalacion del servidor OpenLDAP ´ 2. . Autenticacion cl´ sica en UNIX (shadow passwords) ´ a 3 3 5 7 8 8 8 9 9 10 11 11 11 12 12 13 13 14 16 2 . . . 4. . Herramientas gr´ ficas de administracion LDAP . . . . . . . . . . . .

los usuarios para los demonios. y mediante un segundo m´ todo para los usuarios normales que pueden autenticarse en cualquier equipo de la e red —lo que podr´amos denominar “usuarios de red”—. pero es una opcion cada vez m´ s en desuso por diferentes problemas que a ´ presenta. ya que se conoce muy bien y se configura de ´ forma sencilla. Instalacion del servidor OpenLDAP ´ ´ El equipo en el que va a realizarse la instalacion tiene definido correctamente su FQDN y es ldap. El m´ todo anterior funciona muy bien para lo que ha sido pensado (y lleva utiliz´ ndose e a ˜ ´ ´ muchos anos). ´ En este manual presentamos una opcion bastante utilizada actualmente para implemen´ ´ tar un sistema centralizado de autenticacion. etc. que es almacenar dicha informacion en un directorio LDAP. t´piı ´ camente se har´a sobre un equipo de una red. Introduccion ´ La forma cl´ sica de autenticar un usuario en un sistema GNU/Linux —en UNIX en a ´ general— es mediante la informacion existente en los ficheros passwd. ´ Para el lector interesado. En este documento no se van a explicar las caracter´sticas que tiene un directorio. ´ Para estos casos normalmente se utiliza un doble sistema de autenticacion: mediante ficheros para los usuarios privilegiados del sistema —que se denominan usuarios locales— como son el usuario root. en particular porque no funciona sobre TCP/IP —lo que limita su extension a ´ una red local— y adem´ s no env´a la informacion entre el cliente y el servidor de manera a ı cifrada —lo que puede provocar problemas de seguridad—.— e incluso de otros objetos como impresoras u ordenadores. pero s´ recomendable. Este m´ todo resulta m´ s eficaz que NIS ya que: e a Funciona sobre TCP/IP. e La contrapartida que tiene es que es algo m´ s complicado de implantar que NIS. y la configuracion de un cliente. etc. ´ Es posible establecer la comunicacion entre el cliente y el servidor de forma cifrada. que ser´a ı ı cualquiera de los otros equipos que quieran utilizar estos “usuarios de red”. 2. shadow y group. ni el ı formato de los ficheros que se utilizan para incluir las entradas (ldif). tel´ fonos. sin embargo no es util para tener un sistema centralizado de autenticacion.gonzalonazareno.1. para una lectura complementaria sobre estos aspectos recomendamos la lectura de Introducci´ n al Servicio o de Directorio de Rafael Calzada Pradas [1].org. Una de las opciones para este ı segundo m´ todo es el que vamos a presentar en este documento. Esto no es imprescindible para realizar la configu´ racion correcta del servidor LDAP. a ´ En las siguientes secciones presentamos la configuracion de un servidor OpenLDAP. e ´ En entornos UNIX durante bastante tiempo se ha utilizado NIS para la autenticacion centralizada de usuarios en una red local. en el ap´ ndice A se da una descripcion breve de los pasos que e se siguen para autenticar un usuario en un sistema UNIX mediante estos ficheros. Permite guardar muchos otros datos de los usuarios —como direcciones de correo. Para combrobar si el FQDN de ı un equipo est´ bien definido hay que ejecutar: a 3 .

podr´amos configurar de nuevo el directorio con: ı 4 .dc=gonzalonazareno.dc=org objectClass: top objectClass: dcObject objectClass: organization o: IES Gonzalo Nazareno dc: ldap structuralObjectClass: organization entryUUID: 8376c53e-4815-102c-97c9-d7aec873b177 creatorsName: modifiersName: createTimestamp: 20071226154648Z modifyTimestamp: 20071226154648Z entryCSN: 20071226154648Z#000000#00#000000 dn: cn=admin. en nuestro caso: a dn: dc=ldap.dc=gonzalonazareno.dc=ldap. ´ La salida anterior la hemos obtenido con la instruccion slapcat que est´ inclu´da en el a ı paquete slapd y que nos muestra los objetos del directorio desde el propio equipo sin ´ necesidad de establecer una conexion ldap propiamente. En caso de que la base del directorio no est´ correctamente definida —que ser´ lo m´ s e a a habitual—.hostname --fqdn En primer lugar debemos instalar el paquete slapd y todas sus dependencias: aptitude install slapd ´ ´ A continuacion —dependiendo de la configuracion del paquete debconf— nos pedir´ lo a siguiente: ˜ Contrasena del Administrador del directorio y crear´ un directorio con dos entradas.dc=org objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e2NyeXB0fUNpTkxkYi9IZ0l6WU0= structuralObjectClass: organizationalRole entryUUID: 83773ad2-4815-102c-97ca-d7aec873b177 creatorsName: modifiersName: createTimestamp: 20071226154648Z modifyTimestamp: 20071226154648Z entryCSN: 20071226154648Z#000001#00#000000 En la salida anterior podemos ver dos entradas en formato LDIF. identificadas cada una ´ con un Distinguished Name (dn) que es unico para cada entrada y una serie de atributos.

org ´ Nombre de la Organizacion: IES Gonzalo Nazareno ˜ Contrasena del administrador Motor de base de datos a utilizar: BDB ¿Permitir el protocolo LDAPv2?: No (salvo que sea necesario) En caso de que esto no fuese suficiente —como ocurre en algunas versiones de Ubuntu— ´ podr´amos ir al directorio /var/lib/ldap y borrar todo su contenido y a continuacion ı crear los dos objetos iniciales de la base a partir de un fichero ldif. se guardan en el fichero /etc/ldap/slapd. deber´amos anadir nuevas unidades ı organizativas.gonzalonazareno. queremos almacenar informacion de los usuarios y los grupos a los que pertenecen. ordenadores.conf 2. en nuestro caso vamos utilizar el directorio como ´ ´ sistema de autenticacion en una red local y por tanto. adem´ s de un objeto en cada unidad organizativa —el usuario a ´ pruebau y el grupo pruebag—.dpkg-reconfigure slapd ´ En este caso nos preguntar´ m´ s detalles de la configuracion. a Como puede verse en la figura. en concreto: a a Nombre de dominio DNS: ldap. En el caso de que quisi´ ramos almacenar informacion e ˜ de otros objetos como impresoras. 5 . Estructura b´ sica del directorio a ´ ´ ´ La estructura del arbol del directorio variar´ en funcion de la informacion que queramos a ´ almacenar y de la complejidad de esta. recordar que todos los valores que hemos introducido y otros para los que se asumen los valores. se han creado dos unidades organizativas (ou) llamadas People y Group donde obviamente se incluir´ n las entradas de los usuarios y los a grupos respectivamente. etc.1. En estos casos habitualmente se utiliza una estructura del estilo a la que aparece en la figura 1. ´ Figura 1: Esquema b´ sico del arbol LDAP. ´ Ya por ultimo.

tendremos que crearlo y darle el propietario adecuado: 1 Para crear el contenido del atributo userPassword hemos utilizado slappasswd -h {MD5} 6 .dc=ldap. para lo que debemos parar antes el demonio slapd: /etc/init.dc=gonzalonazareno.d/slapd stop ˜ y anadir las dos nuevas entradas con: slapadd -l base.ldif ´ si no se ha producido ningun error. debemos crear un fichero en formato ldif —lo denominaremos base.ldif— con el siguiente contenido1 : dn: ou=People. Puesto que no existe el directorio home del usuario pruebau.dc=org uid: pruebau cn: Usuario de prueba objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {MD5}qPXxZ/RPSWTmyZje6CcRDA== loginShell: /bin/bash uidNumber: 2000 gidNumber: 2000 homeDirectory: /home/pruebau gecos: Usuario de prueba host: * Puesto que todav´a no hemos visto las herramientas del cliente LDAP. lo haremos con ı slapadd.dc=ldap.dc=ldap.dc=gonzalonazareno.˜ Para anadir las entradas anteriores.ou=People.dc=org ou: Group objectClass: top objectClass: organizationalUnit dn: cn=pruebag.ou=Group.dc=ldap.dc=gonzalonazareno.dc=gonzalonazareno.dc=org objectClass: posixGroup objectClass: top cn: pruebag gidNumber: 2000 dn: uid=pruebau. podremos ver las nuevas entradas utilizando slapcat.dc=org ou: People objectClass: top objectClass: organizationalUnit dn: ou=Group.

etc. En primer lugar configuramos el fichero /etc/ldap/ldap.1 2000 2000 414 2007-12-28 09:29 .bash_logout -rw-r--r-.1 El servidor LDAP debe proporcionar los siguientes servicios para ser v´ lido como sistea ´ ma de autenticacion: ´ Autenticacion: Validando la correspondencia entre un nombre de usuario y una ˜ contrasena suministrados por un programa login.conf.* /home/pruebau chown -R 2000:2000 /home/pruebau Si hacemos un listado del directorio home del usuario: ls -al /home/pruebau/ total 20 drwxr-xr-x 2 2000 2000 4096 2007-12-28 09:29 . ı e 7 . hacer un listado.bash_profile -rw-r--r-. e Name service switch: Estableciendo —cada vez que sea requerido por el sistema— la ´ relacion entre el UID/GID de un usuario y su correspondiente nombre. tal como har´a el sistema con un ı usuario local a trav´ s de los ficheros /etc/passwd y /etc/group. e ´ Asignacion de grupos: Asignando los grupos a los que pertenece cada usuario tal como har´a el sistema con un usuario local a trav´ s del fichero /etc/group. e ´ Informacion de usuario: Asignando a un usuario que ha ingresado en el sistema su directorio home. UID.1 2000 2000 2227 2007-12-28 09:29 . drwxr-xr-x 9 root root 4096 2007-12-28 09:28 . Lo editamos y configuramos de la sia guiente manera: BASE URI dc=ldap.mkdir /home/pruebau cp /etc/skel/. Configuracion del cliente LDAP ´ ´ Esta configuracion deber´ realizarse en cada equipo de la red que vaya a utilizar los a ´ usuarios del servidor LDAP. en caso de que no exista habr´ que instalar el paquete libldap2. como por ejemplo al crear un fichero.. tal como lo har´a el sistema con un usuario local a ı trav´ s del fichero /etc/passwd.1 por ı la que corresponda al servidor.bashrc ´ podemos ver que el sistema no es capaz de asociar los UID/GID a ningun usuario existente en el sistema puesto que todav´a no est´ configurado. etc. para realizarlo en otro equipo habr´a que cambiar la direccion IP 127.0. ı a 3. ssh.1 2000 2000 220 2007-12-28 09:29 . etc. shell.0.0.dc=gonzalonazareno. tal como har´a el ı sistema con un usuario local a trav´ s del fichero /etc/shadow. Aqu´ presentamos la configuracion necesaria en el propio ı ´ servidor. -rw-r--r-.dc=org ldap://127.0. gdm.

Esto se hace con los siguientes dos pasos.1. Name Service Switch (nss) En primer lugar vamos a configurar el sistema para que sea capaz de establecer la correspondencia entre los UID/GID y los nombres de los usuarios y los grupos que est´ n en el e directorio LDAP.1/ Nombre distinguido (dn): dc=ldap.2.1.bashrc 8 . Modificacion de /etc/nsswitch. que ı originalmente son: passwd: compat group: compat que significa que el sistema va a buscar correspondencia entre UID/GID y nombres en servidores NIS y en los ficheros passwd y group. debemos instalar el paquete: aptitude install libnss-ldap y configurar los siguientes puntos: Identificador del servidor LDAP: ldap://127.1 pruebau pruebag 2227 2007-12-28 09:29 . 3.dc=org ˜ Contrasena del administrador Para comprobar que todo est´ configurado correctamente.bash_profile -rw-r--r-. drwxr-xr-x 9 root root 4096 2007-12-28 09:28 .1.dc=org ´ Version de LDAP: 3 Cuenta del administrador: cn=admin..0. lo busque en el directorio LDAP.0. -rw-r--r-.dc=gonzalonazareno.1.1 pruebau pruebag 414 2007-12-28 09:29 .dc=gonzalonazareno.dc=ldap. repetimos el listado del direca torio home del usuario de prueba: ls -al /home/pruebau/ total 20 drwxr-xr-x 2 pruebau pruebag 4096 2007-12-28 09:29 . 3.conf ´ Editamos este fichero y modificamos las l´neas correspondientes a passwd y group.bash_logout -rw-r--r-.1 pruebau pruebag 220 2007-12-28 09:29 . las modificamos de la siguiente manera: passwd: compat ldap group: compat ldap que indica al sistema que en caso de que no encuentrar el correspondiente usuario (grupo) de un determinado UID (GID). libnss-ldap Para que el sistema sea capaz de consultar a un directorio LDAP.3.

d /etc/pam. por lo que haremos modificaciones solo en los anteriormente mencionados ´ ficheros common-* del directorio /etc/pam.so nullok secure auth required pam ldap.d.2. recomendar la instalacion del paquete nscd. quiz´ s m´ s elegante.d.so nullok obscure min=4 max=8 md5 Contenido final: password sufficient pam unix.so 9 . y que es simplemente un demonio que cachea las correspondencias entre los UID/GID y los nombres.donde comprobamos que se ha cambiado el UID/GID por el correspondiente nombre de usuario y grupo que se ha obtenido consultando el directorio LDAP. ı 3.1. Modificacion de los ficheros common-* ´ Vamos a permitir que todas las aplicaciones sean capaces de autenticar contra el direc´ torio LDAP. Pluggable Authentication Module (PAM) ´ PAM es el sistema modular que se encarga de las tareas de autenticacion en el sistema.d. mientras que en el resto de ficheros se incluyen las directivas que son aplicables ´ solo a ese programa.so md5 common-auth Contenido inicial: auth required pam unix.d.old 3.2. con el fin de evitar consultas repetidas al directorio y agilizar as´ la respuesta. que no necesita configu´ racion. es mediante la utilizacion de getent: a a getent passwd pruebau getent group pruebag ´ ´ Ya por ultimo. por lo que es recomendable guardar una copia de todo el directorio /etc/pam.so nullok secure Contenido final: auth sufficient pam unix. Una configuracion muy simple ser´a: ı common-password Contenido inicial: password required pam unix. ´ ´ Otra forma de comprobacion. ´ Recomendacion: Puesto que vamos a tocar los ficheros de autenticacion del sistema es ´ posible dejar el sistema inaccesible. ´ ´ cada aplicacion que necesite comprobar la autenticacion de usuarios tendr´ que hacer uso a ´ ´ de el y habitualmente tendr´ un fichero de configuracion en el directorio /etc/pam. por ejemplo haciendo: cp -r /etc/pam.so nullok obscure min=4 max=8 md5 password required pam ldap. a podemos ver el contenido de este directorio en un sistema muy simple: chfn chsh common-account common-auth common-password common-session cron login other passwd ssh su sudo En los cuatro ficheros common-* se incluyen las directivas comunes para todas las aplicaciones.

libpam-ldap Para que el sistema sea capaz de consultar a un directorio LDAP. poniendo una nueva l´nea ahora con el tipo de control e ı required para la biblioteca lib pam. En la configuracion final se ha modificado el tipo de control para esta biblioteca a sufficient.dc=ldap.so que inicialmente utiı liza el tipo de control required que implica que debe dar un resultado exitoso para que ´ se pueda acceder al servicio.common-account Contenido inicial: account required pam unix. gdm o ssh.0. por lo que reconfiguramos el paquete mediante: ı a dpkg-reconfigure libpam-ldap y contestamos a las preguntas anteriores y a las siguientes: Identificador del servidor LDAP: ldap://127.2.dc=gonzalonazareno.2.so En todos los casos existe una l´nea para la biblioteca pam unix.so common-session Contenido inicial: session required pam unix.so account required pam ldap. 3.so. o ı e ˜ cambiar la contrasena del usuario con passwd.dc=org ´ Version de LDAP: 3 Local crypt to use when changing passwords: exop Ahora debar´amos ser capaces de ingresar en el sistema a trav´ s de login.so Contenido final: account sufficient pam unix. 10 .so session required pam ldap. debemos instalar el paquete: aptitude install libpam-ldap y configurar los siguientes puntos: Make local root Database admin: S´ ı Does the LDAP database require login?: No Cuenta del administrador: cn=admin.1/ Nombre distinguido (dn): dc=ldap.dc=org ˜ Contrasena del administrador Deber´a pedir algunas cosas m´ s.dc=gonzalonazareno.0. para que consulte en primer los usuarios locales y despu´ s los del directorio ldap.so Contenido final: session sufficient pam unix.

4.1.1. Esto es v´ lido para los objetos iniciales del directorio. ´ Normalmente no se hacen busquedas gen´ ricas. y en primer lugar veremos la utilizacion de las herramientas inclu´das en el paquete ldap-utils. a La forma que hemos utilizado hasta ahora para crear usuarios es escribir un fichero en ˜ formato ldif que incluya todos los atributos de la entrada y anadirla al directorio con slapadd. ldapcompare y ldapwhoami. que realiza una busqueda gen´ rica de forma anonima y que no tiene acceso a cierta e ´ ˜ informacion como son las contrasenas de los usuarios. pero como es logico no aparece ninguna otra ı ˜ contrasena. Herramientas de gestion de usuarios ´ ´ Ahora ya tenemos configurado el servidor LDAP y el cliente para la autenticacion de ´ los usuarios que se encuentran en el directorio.ou=People. aunque tambi´ n se incluyen en el mismo paquete las sie guientes: ldapmodrdn. sino que se buscan determinados atribue ´ tos o cadenas de texto y se puede especificar incluso la rama del arbol en la que se quiere buscar con el par´ metro -b. ı 4. dc=org" -W Enter LDAP Password: ˜ ahora podemos comprobar que s´ aparece la contrasena del usuario pruebau ya que ı ´ s´ tiene permiso para leerlo (y modificarlo). La busqueda m´ s sencilla a es mediante: ldapsearch -x (el par´ metro -x ser´ necesario mientras no se configure el acceso con SASL al directoa a ´ ´ rio).dc=gonzalonazareno. ldappasswd. Existen varias formas de actuaa ˜ ´ lizar las entradas del directorio o anadir nuevas.4.1. pero para la utilizacion normal debemos ´ ˜ aprender como se anaden nuevos usuarios o se modifican los atributos de los existentes. Por ejemplo: a 11 . ldapsearch ´ ´ Obviamente se utiliza para hacer busquedas en el directorio. ldap-utils Es muy interesante poder hacer todo tipo de modificaciones de los objetos del directorio directamente desde la l´nea de comandos.dc=ldap. ya que permite hacer modificaciones con todo ı detalle y en caso de tener que modificar gran cantidad de entradas —como por ejemplo en un alta masiva— puede automaizarse utilizando scripts. En los siguientes apartados comentamos algunas de ellas. Debemos tener en cuenta que si utilizamos las instrucciones habituales como adduser o useradd se crear´ un usuario local y no una entrada en el directorio. ´ Si queremos realizar una busqueda con un determinado usuario debemos especificarlo ˜ con el par´ metro -D y adem´ s incluir -W para que solicite la contrasena del usuario: a a ldapsearch -x -D "uid=pruebau. pero totalmente inadea ´ cuado para la utilizacion cuando el directorio est´ activo.

ldif ´ Es necesario recordar que esto no crea el usuario completamente. ldapadd ´ ˜ Esa instruccion se utiliza para anadir nuevas entradas al directorio.ldapsearch -x -D "uid=pruebau.dc=gonzalonazareno. Para anadir una nueva entrada al directorio.dc=gonzalonazareno.dc=org" -W -f usuario2.1.dc=ldap.ou=People. Por ejemplo anadir´amos un nuevo a ı usuario creando el fichero usuario2. la diferencia con slapadd es que ˜ ˜ se pueden anadir con el servidor ldap ejecut´ ndose. debemos escribirla previamente en un fichero en formato ldif.dc=gonzalonazareno.ou=People.dc=gonzalonazareno.dc=gonzalonazareno. solo crea la entrada en el directorio. si por ejemplo quisi´ ramos borrar la entrada creada anterior del usuario e prueba2: ldapdelete -x -D "cn=admin. debemos crear adem´ s el directorio home del usuario como ya hicimos con a pruebau.1. para lo que debe˜ mos tener los permisos necesarios.dc=ldap.dc=org" "uidNumber=2000" buscar´ entradas que tengan el atributo uidNumber igual a 2000 en las entradas que a pertenecen a la unidad organizativa People. 4. 4.dc=ldap.dc=org uid: prueba2 cn: Segundo usuario objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {MD5}qPXxZ/RPSWTmyZje6CcRDA== loginShell: /bin/bash uidNumber: 2001 gidNumber: 2000 homeDirectory: /home/prueba2 gecos: Segundo usuario host: * ˜ y lo anadir´amos con: ı ldapadd -x -D "cn=admin.dc=org" -W "uid=prueba2.ldif con este contenido: dn: uid=prueba2.3. ldapdelete ´ ´ Logicamente necesitamos una instruccion que nos permita borrar entradas completas del directorio.ou=People. dc=org" -W -b "ou=People.dc=ldap.dc=org" 12 .dc=gonzalonazareno.dc=ldap.2.dc=ldap.

dc=gonzalonazareno. Tambi´ n se aceptan entradas del tipo: e add: mail mail: usuario2@gonzalonazareno.dc=ldap. ldapscripts Debido a la incomodidad de manejo directo de las herramientas de ldap-utils es fre´ ´ cuente la utilizacion de las mismas a trav´ s de algun script.4.2. 4.4.dc=gonzalonazareno. Por ejemplo para cambiar el uidNumber de un usuario podr´amos hacer: ı ldapmodify -x -D "cn=admin. borrando un atributo existente o modificando el valor de un atributo. ldapmodify ˜ Se utiliza para modificar las entradas existentes de tres maneras diferentes: anadiendo un nuevo atributo.dc=ldap.org ˜ para anadir nuevos atributos o del tipo: delete: hosts para borrarlos.dc=org" -W ´ y a continuacion especificar la entrada que queremos modificar y como: dn: uid=prueba2. tenemos un e ´ paquete en el que se incluyen algunos bastante utiles y que se denomina ldapscripts. En particular.ou=People. El listado de scripts de este paquete es: ldapaddmachine ldapsetprimarygroup _ldapdeletemachine _ldaprenamemachine ldapdeletegroup ldapaddgroup ldapaddusertogroup _ldaprenamegroup _lsldap ldaprenameuser _ldapinit ldapdeleteuserfromgroup ldapadduser ldapdeleteuser 13 .1.dc=org changetype: modify replace: uidNumber uidNumber: 2010 ´ Esta informacion bien la podemos introducir directamente desde la entrada est´ ndar — a terminando con un EOF con CTRL-D— o desde un fichero y pasarlo como par´ metro a a ldapmodify con -f.

Por ejemplo ˜ si queremos anadir un nuevo usuario al directorio y que pertenezca al grupo pruebag. 14 .dc=gonzalonazareno. cambiarla desde una ´ sesion de root con: passwd prueba3 o bien configurar ldapscripts para que nos d´ como salida un fichero con el passwd e generado.ou=People.conf del directorio /etc/ldapscripts. Herramientas gr´ ficas de administracion LDAP a ´ ´ Existen bastantes herramientas gr´ ficas de administracion de un directorio ldap. pe´ ro por defecto asume los valores m´ s comunes y en nuestro caso lo unico necesario ha a ˜ sido crear el fichero /etc/ldap. dn de la base del directorio. ldapscripts nos da como opcion crear el directorio home del usuario a trav´ s de la directiva: e CREATEHOMES="yes" ´ ´ Veremos a continuacion la utilizacion de algunos de ellos de forma sencilla. bastar´ con ejecutar: a ldapadduser prueba3 pruebag y obtendremos la siguiente entrada en el directorio: dn: uid=prueba3. ´ A la hora de crear usuarios. ı phpldapadmin. ¿no? a 4. cn del administrador.secret que contiene la conrasena del administrador y ´ darle logicamente los permisos 600.Para que ldapscripts funcione correctamente debe conocer varios par´ metros: noma bre del host. luma. Para borrar el usuario anterior basta con hacer: ldapdeleteuser prueba3 Todo bastante f´ cil. gosa.dc=ldap.dc=org objectClass: account objectClass: posixAccount cn: prueba3 uid: prueba3 uidNumber: 2002 gidNumber: 2000 homeDirectory: /home/prueba3 loginShell: /bin/bash gecos: prueba3 description: prueba3 userPassword:: e1NTSEF9MHNDMjZOQnk0emxEMGN0T3FCalQ0ek16WGhabGRmbEE= ˜ La contrasena se ha creado de forma aleatoria y hay dos opciones. Todos estos valores son configurables en el fichero ldapscripts. etc. directory-administrator o lat. en para ticular algunas de las inclu´das en la rama estable de Debian actualmente son: gq.3.

rediris. Seguridad en UNIX y redes http://www. ya que permite su utilizacion desde cualquier equipo a trav´ s de un navegador.jukie. Introduccion al Servicio de Directorio http://www.es/cert/doc/unixsec/ 15 .net/sysadmin/sarge-ldap-auth-howto.pdf [2] LDAP Authentication on Debian Sarge HOWTO http://moduli.html ´ [4] CNICE.cnice. ı http://formacion.html [3] Ldap Authentication on Debian http://www.es/ldap/doc/ldap-intro. En la figura 2 podemos ver una captura donde se puee den intuir sus posibilidades y comodidad.mec.net/˜bart/ldap/ldap-authentication-on-debian/ index. Figura 2: phpLDAPadmin en funcionamiento. Aplicaciones y servicios en Linux.es/materiales/85/cd/REDES_LINUX/ indice.htm ´ [5] Antonio Villalon Huerta.rediris. Cap´tulo 14. Referencias ´ [1] Rafael Calzada Pradas.´ ´ Es especialmente comoda phpldapadmin. Redes de Area Local.

Se consulta en /etc/passwd los valores de UID.1 1012 1012 0 2007-12-28 21:00 fichero_nuevo ls -l -rw-r--r-.. Si el usuario pertenece a algun otro grupo del sistema deber´ reflejarse en el fichero a ´ etc/group. ˜ ´ 1. Una l´nea de ejemplo de un fichero ı shadow ser´a: ı borrame:$1$nXzBxaBL$2eCiIBskzccblg/dTHFDj1:13875:0:99999:7::: ´ ´ donde solo los dos primeros campos son relevantes para nuestra discusion. directorio home y shell de ese usuario. como por ejemplo con newgrp— se le asignar´ como propietario a y grupo propietario los valores de UID y GID anteriores. si la validacion es correcta se sigue en el ´ existente en el fichero /etc/shadow ´ siguiente paso y en caso contrario se repite este. el pri˜ mero es el nombre de usuario y el segundo es su contrasena cifrada. GID.:/home/borrame:/bin/bash que nos indica que el usuario borrame tiene UID y GID 1012. una l´nea tipo ser´a la siguiente: ı ı borrame:x:1012:1012:. Autenticacion cl´ sica en UNIX (shadow passwords) ´ a Vamos a comentar brevemente los pasos que da el sistema para recabar toda la infor´ ´ macion necesaria de los ficheros shadow. donde adem´ s se establece la relacion entre los GID y los nombres de a los grupos. Se recoge el nombre de usuario y la contrasena y se validan con la informacion 3 . Cada vez que el usuario cree o modifique un fichero —salvo que haya cambiado de grupo principal.. Por ejemplo: touch fichero_nuevo ls -nl -rw-r--r-. algo poco frecuente hoy en d´a ı 2 16 .A. ´ ´ Muy recomendable la lectura de Seguridad en UNIX y redes de Antonio Villalon[5]. su directorio home es /home/borrame y la shell que utilizar´ al ingresar en el sistema ser´ bash.1 borrame borrame 0 2007-12-28 21:00 fichero_nuevo ´ 4. 2. en particular la seccion ´ “Autenticacion de usuarios en UNIX” 3 ˜ Salvo que el sistema no tenga este fichero y guarde la contrasena en el fichero /etc/passwd. passwd y group2 ya que puede resultar util ´ entenderlo para ver las similitudes y diferencias con la autenticacion a trav´ s de un die rectorio. a a 3.

Sign up to vote on this title
UsefulNot useful