Aprenda Linux, 302 (Entornos mixtos): Winbind

Usando un controlador de dominio Windows para administración de cuenta Linux

Si su red incluye un controlador de dominio (sea un computador Windows o un servidor Samba server), usted puede usar su base de datos de usuario en lugar de, o adicionalmente, para el mantenimiento de usuarios de inicio de sesión local en la base de datos de cuenta local de una computadora Linux. Esto se hace usando un conjunto de herramientas conocido como Winbind. Este conjunto de herramientas puede ser útil incluso para computadores que no ejecuten Samba para compartir archivos o impresoras; los usuarios con cuentas de dominio Windows pueden iniciar sesión en la consola o usar SSH para acceder a recursos que solo sean Linux, usar servidores de e-mail POP o IMAP con autenticación de dominio Windows, etc.

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith es consultor y autor de más de una docena de libros cobre UNIX y Linux, incluyendo The Definitive Guide to Samba 3, Linux in a Windows World, y Linux Professional Institute Certification Study Guide. También es el autor del software de particionamiento GPT fdisk. Actualmente vive en Woonsocket, Rhode Island.



05-03-2012

Sobre esta serie

Esta serie de artículos le ayuda a aprender sobre tareas de administración de sistemas Linux. Usted también puede usar el material de estos artículos para prepararse para los exámenes de nivel 3 del Linux Professional Institute Certification (LPIC-3).

Vea nuestro mapa de ruta developerWorks para LPIC-3 para una descripción de un enlace hacia cada artículo en esta serie. El mapa de ruta está en curso refleja los objetivos actuales (marzo del 2011) para los exámenes LPIC-3. A medida que cada artículo se completa, es añadido al mapa de ruta.

Visión general

En este artículo, aprenda sobre estos conceptos:

  • Instalando Winbind
  • Configurando Winbind

Este artículo le ayuda a prepararse para el Objetivo 313.3 del Tema 312 del examen (302) sobre la Especialidad de Entorno Mixto del Linux Professional Institute (LPI). El objetivo tiene un pese de 2.


Prerrequisitos

Sobre el examen electivo LPI-302

El Linux Professional Institute Certification (LPIC) es como muchas otras certificaciones en cuanto a que se ofrecen diferentes niveles, donde cada nivel requiere más conocimiento y experiencia que el anterior. El examen LPI-302 es un examen de especialidad electivo en el tercer nivel de la jerarquía LPIC y requiere un nivel avanzado de conocimiento de sistemas de administración Linux.

Para obtener su certificación LPIC-3, usted debe pasar los dos exámenes de primer nivel (101 y 102), los dos exámenes de segundo nivel (201 y 202)y el examen principal LPIC-3 (301). Después de haber logrado este nivel usted puede tomar los exámenes de especialidad específicos, como LPI-302.

Para aprovechar al máximo los artículos de esta serie, usted debe tener conocimientos avanzados sobre Linux y un sistema Linux funcional en el cual pueda practicar los comandos cubiertos en este artículo. En particular, este artículo supone que usted tiene conocimientos prácticos sobre funciones de línea de comandos Linux y al menos un conocimiento general del propósito de Samba, como se cubre en Learn Linux, 302 (Mixed environments): Concepts, así como los fundamentos de la configuración Samba, incluyendo configurar Samba para que use un controlador de dominio. Usted debe estar familiarizado(a) con la estructura general del archivo de configuración smb.conf. Usted también debe entender cómo se ejecutan los servidores en general, incluyendo los scripts de inicialización System V (SysV) y los súper servidores. Para la práctica usted debe tener acceso a un dominio Windows para usar la información presentada aquí. (Usted puede usar un dominio que sea administrado por Samba o por una computadora que ejecute el sistema operativo Windows Server).


Entendiendo Winbind

Construya su propio feed

Usted puede construir un feed RSS, Atom, o HTML para que sea notificado a medida que añadamos nuevos artículos o actualicemos contenido. Vaya a developerWorks RSS feeds. Seleccione Linux para la zona y Articles para el tipo, y escriba Linux Professional Institute en las palabras clave. Luego, seleccione su tipo de feed preferido.

Como se describió en Aprenda Linux, 302 (Entornos Mixtos): Roles Samba y en Aprenda Linux, 302 (Entornos Mixtos): Control de Dominio, las redes Windows a menudo incluyen un controlador de dominio, que es una computadora que administra la autenticación para todos los computadores Windows de una red. Tal configuración puede simplificar considerablemente la vida en una red con muchos usuarios y computadores, porque la información de cuenta de usuario no necesita ser duplicada (ni mantenida) en múltiples computadores. En lugar de ello, la información de cuenta de Windows es centralizada en un solo computador, permitiendo a los administradores administrar cuentas en una sola ubicación y permitiendo a los usuarios cambiar sus contraseñas una sola vez para todos los computadores miembros del dominio.

Usted puede configurar un servidor Samba para que sea un servidor miembro de un dominio, estableciendo varias opciones. Un conjunto típico de opciones globales para unirse a un dominio puede verse como sigue:

security = Domain
password server = CONTROL
domain logons = No
encrypt passwords = Yes

Usted puede usar security = ADS en lugar de security = Domain si el controlador de dominio soporta recursos Microsoft Active Directory Domain Services. Usted también debe unir el servidor Samba al dominio escribiendo net join member -U adminuser, donde adminuser es la cuenta administrativa del dominio. Refiérase a Aprenda Linux, 302 (Entornos Mixtos): Roles Samba para una descripción más detallada sobre cómo configurar un servidor Samba como miembro de dominio.

Todo esto está bien y es bueno para un servidor Samba, pero desde luego, Samba es simplemente un servidor que usted puede ejecutar en una computadora Linux. Otros servidores, así como servicios locales de inicio de sesión, el principio pueden beneficiarse de un controlador de dominio. Por ejemplo, si algunos computadores de una red funcionan como estaciones de trabajo Linux, o si usted ejecuta un servidor de e-mail Post Office Protocol (POP) en una computadora Linux, posiblemente desee que usen el controlador de dominio para autenticación. Es allí donde ingresa Winbind; este proporciona el "pegamento" para permitir que Linux use cuentas de dominio de Windows para tareas de autenticación que no sean Samba.

No obstante, antes de configurar Winbind usted debe tener en cuenta sus limitaciones. Como Microsoft diseñó su s procedimientos de autenticación de dominio teniendo en mente las necesidades de Windows, carece de ciertos recursos que Linux necesita en sus cuentas, como los valores estilo UNIX® user ID (UID) y group ID (GID). En lugar de ello, los dominios Windows usan identificadores de seguridad, los cuales no se pueden correlacionar directamente con UIDs y GIDs de Linux. De forma similar, los controladores de dominio no almacenan información de directorio home UNIX/Linux. Por esto, Winbind debe crear parte de esta información Linux localmente. Esto está bien para algunos propósitos, pero significa que dos computadores Linux usando Winbind pueden crear fácilmente diferentes UIDs y GIDs para un mismo usuario. Este hecho puede traer consigo consecuencias negativas si esos computadores comparten archivos usando Network File System (NFS), el cual depende de UIDs y GIDs que coincidan entre servidores. En tales situaciones, será mejor si usted configura un servidor Lightweight Directory Access Protocol (LDAP) para la red y si usa su base de datos de cuentas tanto para cuantas Linux como para cuentas de dominio Windows.

Winbind depende de varios elementos diferentes:

  • Opciones específicas de Winbind en smb.conf
  • Opciones de configuración para el subsistema Pluggable Authentication Modules (PAM), el cual es una parte estándar de las instalaciones Linux modernas
  • Opciones de configuración para el subsistema Net Service Switch (NSS), el cual es una parte estándar de las instalaciones Linux modernas
  • El programa de servidor winbindd .

Por lo tanto, configurar Winbind requiere la modificación de cada una de estas configuraciones. Usted no necesita ejecutar los programas principales de servidor Samba, smbd y nmbd para usar Winbind, pero es posible que tenga que instalar el servidor para obtener todos los archivos de soporte necesarios. Es posible que usted tenga que instalar un paquete Winbind aparte, llamado normalmente winbind o samba-winbind. Es posible que también necesite instalar un paquete llamado samba-winbind-clients. Asegúrese de que su instalación final incluya todos los archivos /lib/security/pam_winbind.so and /lib/libnss_winbind.so.2.


Configurando las opciones Winbind en smb.conf

Para configurar Winbind, usted primero debe configurar la computadora para que se una a un dominio, como se describió brevemente antes y más detalladamente en Aprenda Linux, 302 (Entornos Mixtos): Roles Samba. Entonces usted debe configurar varias opciones smb.conf que se relacionan específicamente con Winbind.

Explorando opciones Winbind

Las opciones smb.conf que usted puede necesitar establecer incluyen:

  • winbind separator. En un dominio, los nombres de usuario Windows incluyen tanto un nombre de usuario como un nombre de dominio, con un carácter de separación entre ellos. Esta opción establece ese carácter. El predeterminado es la barra diagonal invertida (\), pero un signo de suma (+) es una alternativa común.
  • winbind cache time. Winbind hace caché de datos de autenticación para un periodo dado, siendo el predeterminado 300 segundos (5 minutos). Es posible que usted desee reducir este valor cuando esté comprobando su configuración Winbind.
  • template shell. Usted configura el shell predeterminado del usuario usando esta opción. El valor predeterminado es /bin/false, que es apropiado para sistemas que no soportan acceso shell; pero si usted desea que los usuarios puedan iniciar sesión localmente o vía servidores como el Secure Shell (SSH), debe establecer esta opción como /bin/bash o algún otro shell Linux legal.
  • template homedir. Usted debe establecer el directorio predeterminado de los usuarios. Normalmente usted usa una o más variables Samba, como %U para el nombre de usuario y tal vez %D para el nombre de dominio. El valor predeterminado de este parámetro es /home/%D/%U.
  • winbind enum users. Esta opción booleana activa o desactiva el soporte de ciertos llamados de sistema que permiten que los programas enumeren a los usuarios. El valor predeterminado es Yes, pero cambiarlo a No puede mejorar el desempeño al costo de un comportamiento extraño por parte de algunos programas, como finger.
  • winbind enum groups. Esta opción funciona bastante como winbind enum users, pero aplica para grupos en lugar de usuarios.
  • winbind use default domain. Si usted establece esta opción como Yes, Winbind descarga el componente de dominio de nombres de usuario para la mayoría de aplicaciones, lo cual a menudo es deseable, porque acorta los nombres de usuario—por ejemplo, de MYDOMAIN\rexx a rexx. Usar el valor predeterminado de No tiene sentido si su red incluye múltiples dominios.
  • idmap uid. Usted debe especificar un conjunto de UIDs con esta opción, usando un guión (-) como separador, como en 10000-20000. Asegúrese de que el rango que usted utilice no se sobreponga con las UID definidas localmente en uso en su sistema.
  • idmap gid. Esta opción es tal como idmap uid, pero establece un rango de GIDs.

Examinando la configuración de muestra

Como un ejemplo, considere el Listado 1, el cual muestra un conjunto de opciones smb.conf que demuestran todas las opciones precedentes.

Listado 1. Un archivo smb.conf de ejemplo que demuestra la configuración Winbind
winbind separator = +
winbind cache time = 60
template shell = /bin/bash
template homedir = /home/%U
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
idmap uid = 10000-20000
idmap gid = 10000-20000

Desde luego, usted debe personalizar estas opciones para sus propias necesidades. Por ejemplo, como se señaló antes, el valor predeterminado para template shell probablemente sea apropiado para servidores que no proporcionen acceso shell de inicio de sesión, como servidores de e-mail o servidores FTP.


Configurando PAM

Con el archivo de configuración smb.conf en su lugar, usted debe afrontar la configuración PAM. Aprenda Linux, 302 (Entornos Mixtos): Autenticación y autorización introdujo PAM, pero para propósitos de Winbind usted desea añadir Winbind como un método de autenticación para herramientas que no sean Samba, en lugar de autenticar usuarios Samba usando PAM. Hacer esto puede ser un poco complicado, porque las diferentes distribuciones pueden configurar PAM de diferentes formas, de manera que una modificación que funcione perfectamente en una distribución puede fallar miserablemente en otra.

Entendiendo PAM

PAM es un conjunto de bibliotecas que puede ser usado por programas que requieran autenticación, como el programa inicio de sesión que maneja inicios de sesión en modo de texto, un programa X Display Manager que maneja inicios de sesión con interfaz gráfica de usuario, o un programa de servidor de e-mail POP. Para proporcionar un sistema flexible, usted puede configurar PAM usando archivos de configuración, como se describió hace poco.

PAM es un sistema complejo y debido a las diferencias entre distribuciones en configuración PAM, no es posible hacer una descripción completa aquí. (La sección Recursos proporciona apuntadores hacia documentación PAM adicional). Usted configura PAM mediante archivos en /etc/pam.d. La mayoría de archivos en este directorio describen cómo funciona PAM para programas específicos, como el programa de inicio de sesión de modo de texto o el programa de servidor SSH. No obstante, muchas de las distribuciones proporcionan archivos de configuración PAM globales, como system-auth o common-stackname, donde stackname es uno de cuatro nombres de pila PAM. (Cada pila define un tipo particular de servicio que proporciona PAM).

Modificando una pila PAM

Cuando esté reconfigurando PAM, usted debe decidir si desea hacer un cambio que afecte a todos sus servicios de inicio de sesión o solo a algunos. (Examine los archivos en /etc/pam.d para ver qué tipo de servicios de inicio de sesión están instalados en su sistema, y luego pregúntese si todos o solo algunos necesitan Winbind). Si usted desea modificar solo uno o dos servidores, como un servidor POP, mientras no se está habilitando la autenticación Winbind para otros, como un servidor FTP, solo modifique el archivo para el servicio que desee cambiar. Sin embargo, si usted desea que todos los servicios sean afectados, edite el archivo genérico, como system-auth.

Una pila PAM típica se ve algo similar al Listado 2, que es el archivo /etc/pam.d/common-auth desde un sistema Ubuntu version 10.10.

Listado 2. Una pila PAM de ejemplo
auth  [success=1 default=ignore]  pam_unix.so nullok_secure
auth  requisite                   pam_deny.so
auth  required                    pam_permit.so

Desafortunadamente, esta sintaxis particular es un poso oscura. El módulo pam_unix.so administra autenticación usando archivos de base de datos de contraseña local, y la opción success=1 en esa línea significa que PAM se salta una línea cuando este módulo retorna éxito. Por esto, pam_deny.so (que siempre retorna un código de falla de autenticación) se salta si pam_unix.so tiene éxito, y el inicio de sesión tiene éxito.

Para modificar esta configuración para que incorpore Winbind, usted debe añadir una referencia al módulo pam_winbind.so para cambiar el número de líneas a saltar en la línea pam_unix.so . El resultado se asemeja al Listado 3, que resalta los cambios.

Listado 3. Una pila PAM con soporte Winbind
auth  [success=2 default=ignore]  pam_unix.so nullok_secure
auth  [success=1 default=ignore]  pam_winbind.so cached_login try_first_pass
auth  requisite                   pam_deny.so
auth  required	                  pam_permit.so

Las distribuciones diferentes a Ubuntu, en las que se basa este ejemplo, requieren otros cambios en PAM, pero usted debe entender totalmente su configuración inicial antes de hacer tales cambios. Observe también que usted debe modificar todas las cuatro pilas —auth, account, session y password. Estas pilas pueden aparecer en un archivo o ser separadas entre múltiples archivos. Si usted desea modificar servicios individuales, debe modificar todas sus cuatro pilas en los archivos de configuración para todos los servicios que desee ajustar.

Algunas distribuciones hacen cambios apropiados a sus configuraciones PAM cuando usted instala el paquete Winbind. Así, es posible que usted no necesite hacer ningún cambio.


Configurando NSS

Un segundo servicio que usted debe ajustar para activar los inicios de sesión Winbind es NSS. Afortunadamente, la configuración NSS es considerablemente más simple que la configuración PAM. Usted debe editar el archivo /etc/nsswitch.conf y cambiar las siguientes tres líneas:

passwd:     compat
group:      compat
shadow:     compat

Algunos sistemas usan files en lugar de compat en estas líneas y es posible que usted encuentre otras entradas en estas líneas. Estas líneas le dicen a NSS que use archivos locales para su trabajo, que es proporcionar listas de usuarios y grupos para los programas que los deseen. Para añadir Winbind al sistema, añada una referencia a este para cada una de estas líneas:

passwd:     compat winbind
group:      compat winbind
shadow:     compat winbind

Ejecutando Winbind

Con estos cambios en su lugar, finalmente usted puede ejecutar y probar Winbind. Normalmente usted puede iniciar Winbind usando un script de inicialización SysV, como en:

# /etc/init.d/winbind start

Precaución: Si su sistema está ejecutando el Name Service Cache Daemon (NSCD), termine el daemon antes de ejecutar el daemon Winbind. NSCD puede interferir con operaciones Winbind.

Si usted desea ejecutar el daemon automáticamente siempre que el sistema inicie, asegúrese de que el script de inicialización SysV esté correctamente configurado para esta tarea. Usted puede usar chkconfig, ntsysv, update-rc.d, u otras herramientas para hacer esto.

Con Winbind en ejecución, el programa wbinfo le permite probarlo. La opción -u retorna una lista de los usuarios:

$ wbinfo -u
grogers
fastaire
mikhail

Este ejemplo muestra tres usuarios. Usted también puede escribir getent passwd para recuperar una lista de usuarios; esto es esencialmente el equivalente al archivo /etc/passwd. Este comando retorna todos los usuarios definidos por todos los medios, incluyendo cuentas locales, Winbind, y cualquier otro servicio que usted pueda estar usando, como un servidor LDAP.

Nota: Los comandos wbinfo -u y getent passwd algunas veces fallan en retornar una lista completa de usuarios de dominio, particularmente si usted configura winbind enum users = No. Así, si estos comandos no parecen funcionar, pruebe su capacidad para iniciar sesión.

Desde luego, la última prueba de si Winbind está funcionando es si este puede autenticar adecuadamente usuarios de los servicios que usted ha configurado para que usen PAM. Por ello, usted debe comprobar esta capacidad utilizando una cuenta que esté definida en el dominio Windows pero no en la computadora local. Si no tiene éxito, intente examinar los archivos de registro tanto en el cliente como en el controlador de dominio Windows. Recuerde que si establece inbind use default domain = No, sus nombres de usuario local tomarán la forma DOMAIN\username (o algo similar, con un separador diferente si usted establece winbind separator.


Avanzando

El siguiente tema en esta serie, Aprenda Linux, 302 (Entornos Mixtos): Integración CIFS, cubre la integración de una computadora Linux en una red Server Message Block (SMB)/Common Internet File System (CIFS) como un cliente de intercambio de archivos. Este tema incluye el uso de herramientas de cliente autónomo y el montaje de intercambios SMB/CIFS en la jerarquía de sistema de archivos Linux estándar.

Recursos

Aprender

Comentar

  • Participe en la Comunidad My developerWorks. Conéctese con otros usuarios developerWorks mientras explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Linux
ArticleID=799347
ArticleTitle=Aprenda Linux, 302 (Entornos mixtos): Winbind
publish-date=03052012