Cuidado al configurar nscd (Name Service Cache Daemon) | Algo de Linux

jueves, 24 de septiembre de 2015

Cuidado al configurar nscd (Name Service Cache Daemon)

Actualmente, en Debian tenemos dos alternativas para configurar un cliente con el fin de que éste pueda realizar búsquedas en ldap para la autentificación de usuarios:
  • libnss-ldap
  • libnss-ldapd
libnss-ldap es más maduro y más complejo. En cambio, libnss-ldapd es más reciente pero soluciona ciertas deficiencias de libnss-ldap. Para más información, ver la página de libnss-ldapd: 

El demonio nslcd es quien se encarga de conectar con el servidor ldap cuando el usuario realiza sus peticiones. La configuración de este demonio se encuentra en el fichero /etc/nslcd.conf, donde tendremos que especificar dos datos fundamentales:
  • La uri del servidor ldap. 
    • Ejemplo: uri ldap://ldap
  • La base de nuestro directorio ldap.
    • Ejemplo: base dc=instituto,dc=extremadura,dc=es
Es posible indicar varias uri para utilizar varios servidores ldap, uno por línea. Por ejemplo:
uri ldap://ldap
uri ldap://servidor 

Siempre se utilizará el primero, excepto cuando falle, en cuyo caso, se utilizará el siguiente.

Si habéis configurado vuestro cliente para hacer consultas en el servidor ldap, podéis comprobar que funciona, ejecutando:
# getent passwd
Y obtendréis la lista de todos los usuarios, tanto los locales como los del servidor ldap.

O:
# getent group
Y obtendréis la lista de todos los grupos.

Pues bien, para reducir el número de consultas al servidor ldap, podemos utilizar nscd (Name Service Cache Daemon), un demonio que se va a encargar de cachear la información de passwd, group y hosts. Nosotros lo utilizamos concretamente para cachear usuarios y grupos, pero no para nombres de hosts.

El fichero de configuración de nscd es /etc/nscd.conf

Para activar el cacheo de usuarios en este fichero, entre otros parámetros tendremos una línea así:

        enable-cache            passwd          yes

Y para activar el cacheo de grupos:

        enable-cache            group          yes

Un parámetro muy importante de este fichero es positive-time-to-live, Su sintaxis es la siguiente:

        positive-time-to-live            servicio          segundos


Este parámetro nos permite indicar el número de segundos que deberán transcurrir para que una entrada sea borrada de la caché. Cuando queremos que la información permanezca cacheada mucho tiempo (como por ejemplo, en un portátil) especificaremos un valor muy alto. Y aquí es donde debemos de tener cuidado porque los cambios producidos en la base de datos del servidor ldap no serán conocidos por el sistema debido a que estará usando la información cacheada.

Si en algún momento, queréis borrar la caché de usuarios manualmente, no tenéis más que ejecutar:
# nscd -i passwd
Y si queréis borrar la caché de grupos:
# nscd -i group
Por último, tan sólo recalcar una cosilla más: Si en algún momento estáis comprobando si se obtienen respuestas por parte del servidor ldap, parad antes el servicio nscd porque de otro modo, podría daros falsos resultados ofreciéndoos información de la caché.

Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: