Primeros pasos con el servidor casero

Ya están añadidos los nuevos discos, reorganizado el contenido de siempre, conectado a la red y con una IP fija. ¿ Y ahora ?

Pues ahora vamos con los primeros pasos para que todos los otros servicios puedan apoyarse en él. Comienzo por instalar el servidor openLDAP y algunos paquetes extra para ayudar en las tareas.

Lo dije tiempo atrás: LDAP sigue sin hacerme gracia, pero en Linux, ahora mismo, es lo más parecido a un directorio global de usuarios. Estuve mirando aplicaciones web ya instaladas en el par de sistemas que mantengo fuera y todas ellas acceden al directorio interno para validar accesos y obtener información simple sobre los usuarios (nombre completo, correo, …).

Una vez que se consigue cambiar la contraseña de acceso de un usuario se aplica a todos los servicios del dominio y no hay más que hacer. Otra cosa es que ese cambio sea sencillo de implementar. Las mejores soluciones que había -que tampoco eran para pegar alaridos de placer- están fuera de Debian por problemas varios o tan atrasadas que no te atreves a instalarlas por si estás debilitando el sistema.

Pero dado que estoy hablando de la red de casa nos ponemos a ello con ilusión y ánimo. Es verdad que existen varios programas-ecosistemas que ya hacen más o menos lo que se pretende. Si opto por este camino no es porque me quiera mal (que tal vez), es que tengo pruebas de que así ha funcionado muy bien y no quiero entregarme a otra suite megachuli de esas porque me entusiasmo demasiado. Al final encuentro las limitaciones que siempre hay en estos programas (como las versiones de pago) o el abandono por otra cosa más brillante por parte de los desarrolladores y me quedo en bragas. Y estoy harto. No pido tanto. Sólo tener validación de credenciales y cuatro datos normalizados más sobre los usuarios y los grupos.

¿ Y cómo se consigue que los usuarios estén centralizados en LDAP ? Pues es más sencillo de lo que parece.

  • Se elige un servidor y se instala en él el directorio LDAP.
  • Se le añade soporte (esquemas) para almacenar cuentas y grupos de usuarios.
  • Se crea una cuenta con capacidad de administración para cambiar contraseñas, crear y borrar usuarios y demás desde otras máquinas.
  • Se aseguran accesos seguros: certificados para conexiones TLS y limitación de accesos inseguros.
  • Se añaden cuentas y grupos según se necesite. Bien empleando una herramienta intermedia (como cpu), bien a pelo con ldapmodify.
  • En los clientes se instalan un par de paquetes que puentean y conectan los servicios de autentificación (PAM) y de consulta de servicios (NSS) apuntando al directorio del servidor.
  • Si el servidor va a emplear también las cuentas de usuario hacer lo mismo que en el paso anterior.

Y, vale, lo admito. No es tan simple como he dicho. Pero se hace una vez. Cuando se pone en marcha, salvo problemas de conectividad con el servidor, un sistema se comporta como un Linux normal.

Eh, no, eso tampoco. Más que nada porque hay que asegurarse de que los identificadores numéricos de las cuentas locales y las cuentas LDAP no se solapen. Debian lo tiene bastante resuelto pero no es difícil, por ejemplo, crear una cuenta local con el mismo nombre que una global. Es divertido cuando lo resuelves. Antes no.

Y como alcanzado este punto estoy casi hiperventilando voy a parar un poco y a seguir pasito a pasito. Queda mucho confinamiento y esto es viejo. Muchos planos y esquemas dibujados desde hace tiempo y hacer que funcione no quiero que me quiebre.