Grupo Linuxero del Bajío

Usuarios Windows en Linux

Víctor Manuel Jáquez Leal

Hace unos días me pidieron hacer un servidor de correo electrónico,pero con la novedad de que la base de datos de usuarios estaba en unservidor PDC (Primary Domain Controller) con Windows NT4. Cinco milusuarios no son fáciles de migrar y además ellos están muy apegados asu PDC, y que tienen otras aplicaciones que dependen de estaautenticación.

La solución la dió winbind.

Winbind es un conjunto de programas de software, que forman partedel proyecto Samba, que permiten launificación de entrada a sistemas heterogeneos tipo Unix y WindowsNT. Es decir, utilizando este chunche podremos entrar a nuestroambiente de GNU/Linux utilizando un nombre de usuario y una contraseñaalmacenada en un dominio de NT.

Este conjunto de programas y bibliotecas de software consistenen:

Una vista de esta arquitectura sería más o menos así:

 -----     --------------     --------------     --------       ---|login|-->|Subsistema PAM|-->|Subsistema NSS|   |winbindd|-~~->|PDC| -----     --------------     --------------     --------       ---                 |                  |               ^                 |                  |         |            --------------    -----------------     |           |pam_winbind.so|  |libnss_winbind.so|----+            --------------    -----------------

Ahora a instalar. ¿Distribución? Debian. Da la anécdota queinstalé el paquete Samba que viene con la distribución, pero a la horade estar meneándole, salió un error bastante extraño que tenía pocasexplicaciones en la red, y la única respuesta existente es: instala laversión oficial. Merde! yo no quería bajar y compilar (políticapersonal: usa las virtudes de la distribución), pero descubrí que elproyecto Samba ofrecepaquetes para Sarge, así que ni tardo ni perezoso, agregué elrepositorio en mi source.list y el error ya no ocurrió. Yoataño esto a que el paquete oficial de la distribución es anteriora la versión ofrecida por el proyecto Samba.

Luego los pasos son triviales:

1. Modificar el archivo /etc/nsswitch.conf para quecontenga esta forma:

passwd: compat winbindgroup:  compat winbindshadow: compat

2. Modificar el archivo /etc/samba/smb.conf paraque contenga esta información:

Nota: con este solo contenido es suficiente para que el chisme hagasu chamba.

[global]# separate domain and username with '', like DOMAINusernamewinbind separator = # use uids from 10000 to 20000 for domain usersidmap uid = 10000-20000# use gids from 10000 to 20000 for domain groupsidmap gid = 10000-20000# allow enumeration of winbind users and groupswinbind enum users = yeswinbind enum groups = yes# give winbind users a real shell (only needed if they have telnet access)template homedir = /home/winnt/%D/%Utemplate shell = /bin/bash

3. Arrancar los demonios smbd y nmbd yfirmar a la computadora dentro del dominio NT.

# /etc/init.d/samba restart# net rpc join -S PDC -U Administrator

4. Arrancar el servicio de winbind

# /etc/init.d/winbind restart

Después de esto podemos probar que nuestro sistema ya ve a losusuarios y los grupos de NT como usuarios de GNU/Linux.

# getent passwd...# getent group...

5. Configurar los servicios PAM que se autenticarán con elPDC, haciendo que los archivos de configuración dentro de/etc/pam/ luzcan estos atributos en la sección deauth:

auth       required     /lib/security/pam_securetty.soauth       required     /lib/security/pam_nologin.soauth       sufficient   /lib/security/pam_winbind.soauth       required     /lib/security/pam_pwdb.so use_first_pass shadow nullok

Sin embargo, me encontraba en este punto, cuando llegó el encargadode la red y me dijo: “Jáquez, creo que mejor no hacemos laautenticación con el NT. Prefiero mantener ambas directorios deusuarios separados. Me da más seguridad y flexibilidad. Mejorhagámoslo por LDAP, como habías sugerido.” :$

Así que ahora he vuelto a mi bien amado qmail-ldap… Al menos laexperiencia fue bonita, aunque nunca concluí, pero los resultadosintermedios fueron agradables.

Bibliografía extra: http://faculty.acu.edu/~westk/winbind.html.