Para especificar el modo de autentificación de cada servicio es necesario configurar los archivos que se encuentran en la carpeta /etc/pam.d/.
La librería nss-ldap permite que un servidor LDAP suplante a los archivos /etc/passwd, /etc/group y /etc/shadow como bases de datos del sistema. Toma la configuración del archivo anterior /etc/ldap.conf. También habría que configurar el arhivo /etc/nsswitch.conf para que se utilice LDAP como base de datos del sistema en lugar de los archivos passwd, group y shadow. El asistente que veremos a continuación, configurará automáticamente todos los archivos necesarios para permitir la autentificación del sistema por ldap.
La instalación de ambas librerías se puede realizar mediante apt-get.
// Instalación de las librerías libpam-ldap y libnss-ldap# apt-get install libpam-ldap libnss-ldap
La configuración de las librerías libpam-ldap y libnss-ldap se hará con el comando:
// Configuración de las librerías libpam-ldap y libnss-ldap# dpkg-reconfigure ldap-auth-config
La primera pregunta que nos hace el asistente es si queremos que el asistente DebianConf maneje los archivos de configuración, lo recomendable es responder que sí.
Después nos preguntará quién es el servidor LDAP. Podemos poner la IP o el nombre:
Luego nos preguntará por la base del directorio LDAP (base DN):
Acto seguido tendremos que indicar la versión de LDAP a utilizar:
Luego nos preguntará si deseamos que las contraseñas se almacenen en un archivo a parte. Responderemos que no.
En el siguiente paso nos pregunta si necesitamos autentificarnos en el servidor LDAP o no. Como la librería únicamente va a realizar consultas, no es necesario autentificarse por lo tanto debemos responder 'No':
Finalmente nos preguntará qué sistema de cifrado queremos utilizar para las contraseñas almacenadas en caché. Elegiremos md5:
Ahora solamente nos quedaría indicar al sistema para que se autentifique por ldap. Podríamos hacerlo editando manualmente el archivo /etc/nsswitch.conf pero lo haremos mediante el comando auth-client-config
// Configuración del sistema para que se autentifique por ldap# auth-client-config -t nss -p lac_ldap
// Instalación del comando pamtest# apt-get install libpam-dotfile
Si deseamos probar que funciona el servicio passwd (cambiar contraseña) sobre un usuario del directorio LDAP (ejemplo jessica) , podemos ejecutar:
// Probando el cambio de contraseñaroot@curso:/etc/pam.d# pamtest passwd jessica Trying to authenticatefor service . Password: // Introducimos el password de jessica Authentication successful. // La autentificación ha sido satisfactoria
También podemos utilizar el comando finger sobre usuarios que estén solamente en el directorio LDAP, por ejemplo joel:
// Probando fingerroot@curso:/etc/pam.d# finger joel Login: joel Name: Joel Javier Directory: /home/www/alumnos Shell: /bin/sh Last login Tue Sep 27 18:02 (CEST) on pts/3 from 192.168.0.213 No mail. No Plan.
Podemos por ejemplo, desde una consola de root, cambiar mediante el comando 'su' (su=Switch User - cambiar de usuario) a un usuario que esté en el directorio LDAP, para lo cuál no nos pedirá contraseña ya que root tiene permiso para cambiar a cualquier usuario. Si posteriormente cambiamos a otro usuario del directorio, ahora sí que nos pedirá contraseña. Deberemos introducir la contraseña que esté almacenada en el directorio LDAP para dicho usuario:
// Cambiando de usuario root@curso:/etc/pam.d# su joel // Somos root y cambiamos a joel joel@curso: // No nos pide password joel@curso:/etc/pam.d$ su jessica // Somos joel, y cambiamos a jessica Password: // Nos pide password, le introducimos jessica@curso:/etc/pam.d$ // Ha cambiado correctamente
Las opciones de configuración de PAM son muy variadas. Para obtener más información se puede instalar el paquete libpam-doc que instala bastante documentación al respecto bajo la carpeta /usr/share/doc/libpam-doc/