Linux como clientes de un directorio activo en windows 2003

Introducción

En este artículo vamos a explicar como hemos configurado una máquina linux para que actúe como cliente de un directorio activo (DA) montado sobre windows 2003.

El problema es el siguiente: tenemos un DA montado sobre windows que no se puede quitar y queremos usar las cuentas creadas en el DA en nuestros clientes linux. Lo ideal sería mantener un solo árbol de usuarios, así podemos, por ejemplo, cambiar la contraseña en windows y que el cambio tenga efecto en linux.

Nuestra propuesta consiste en usar el demonio winbind en los clientes linux. Este consiste en librerías para PAM y NSS que permiten realizar consultas directamente al DA. Usando estas librerías podemos iniciar sesión en linux con cuentas alojadas el el ldap del DA.

Actualización: Este documento nos ha funcionado a nosotros pero no ha sido el caso en otras instalaciones. Recomendamos seguir leyendo este otro documento si se encuentra cualquier problema.

Instalación

  1. Instalar el paquete winbind
  2. Editamos /etc/nsswitch.conf:
    passwd:         compat winbind
    group:          compat winbind
    shadow:         compat
    
  3. Editamos /etc/pam.d/common-account,
    account sufficient      pam_winbind.so
    account required        pam_unix.so try_first_pass
    
  4. /etc/pam.d/common-auth,
    auth    sufficient      pam_winbind.so
    auth    required        pam_unix.so nullok_secure try_first_pass
    
  5. /etc/pam.d/common-password,
    password    sufficient      pam_winbind.so
    password   required   pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass
    
  6. y /etc/pam.d/common-session
    session sufficient      pam_winbind.so
    session required        pam_unix.so try_first_pass
    
  7. Editamos la configuración de samba /etc/samba/smb.conf, cambiando estos parámetros:
      workgroup = NOMBRE_DEL_DOMINIO
      winbind use default domain = yes
    
      netbios name = NOMBRE_DEL_CLIENTE_LINUX
    
      # separate domain and username with '\', like DOMAIN\username
      winbind separator = '\'
      # allow enumeration of winbind users and groups
      winbind enum users = yes
      winbind enum groups = yes
      # give winbind users a real shell (only needed if they have telnet access)
      template homedir = /home/winnt/%D/%U
      template shell = /bin/bash
    
  8. Nos unimos al dominio:
     net rpc join -S <NOMBRE_NETBIOS_PDC> -U Administrador
    
  9. Y comprobamos que todo funciona:
     wbinfo -u
    

Este último comando nos debería devolver un listado con los usuarios creados en el DA. Si no te funciona, sigue leyendo el siguiente punto.

Errores comunes

  1. Comprueba que el servidor DNS que estás usando es la misma máquina que tiene el DA. Es necesario resolver el dominio completo NOMBRE_MAQUINA.NOMBRE_DOMINIO.DOMINIO.

  2. Intenta utilizar una versión reciente de samba. Hemos detectado problemas con la versión que trae Ubuntu Breezy (3.0.14a-6ubuntu1). La versión con la que realizamos esta prueba fue la 3.0.21.

  3. Reinicia los demonios de samba y winbind.

    /etc/init.d/samba restart
    /etc/init.d/winbind restart
    

Cosas pendientes

Un punto que nos falta por resolver es montar los home de los usuarios en los linux. Estamos mirando el programa pam-mount. En cuanto lo probemos escribiremos por aquí como configurarlo.

Documentación externa

10 respuestas a “Linux como clientes de un directorio activo en windows 2003”

  1. Anónimo

    El uso de PAM mount está bien, aunque el problema viene por el servidor que tiene los home. Si el servidor que tiene los home es un Windows entonces ese directorio no vale como home en Linux. El motivo es que la semática del sistema de ficheros es Windows y eso no le sirve a los clientes Linux. En su lugar lo recomedable es que los home residan en un Samba, que con las extensiones adecuadas si puede servir a cllientes Windows y Linux (en este caso cumpliendo la semática que requiere Linux). A mi esa me parece una solución de integración completa al no necesitar de NFS para Linux, y samba para Windows.

    No se si lo han contemplado, pero lo digo porque me gustaria saber si funcionar correctamente. Por ejemplo, creo que si se configura un equipo de esa manera con el pam_mount y se intenta acceder por ssh, la cosa no funciona si se usa autentificación de clave pública / privada. Esto es un problema si se piensa dejar un equipo para acceso remoto (por ejemplo para recoger ficheros de forma segura). ¿se puede resolver este punto?

    Por otro lado, siendo está la SSL, estaría bien que a parte de resolver estos problemas de integración, se desarrollara un plan de migración del Windows 2003 al Linux. Es decir, ahora ese servidor no se puede quitar. Pero supongamos que llega el momento de hacerlo, ¿qué debemos hacer? ¿se pueden conservar los datos de los usuarios? ¿cómo migrar a un servidor LDAP? ¿en qué casos se podría hacer?. Al fin y al cabo, Linux como servidor es una apuesta más clara que Linux como escritorio. Ttarde o temprano debería ocurrir el cambio.

    Responder
    • agarfu

      Hemos visto algunos problemas a la hora de montar los homes de los usuarios desde un servidor Windows debido a los diferentes esquemas de privilegios existente entre los sistemas de ficheros de Windows y los de *NIX. La investigación realizada por nosotros para en este punto, ya que en el caso que nos ocupa disponemos de un servidor NFS ya implantado que sirve los homes a todos los clientes, pero por inquietud seguiremos explorando la vía de pam_mount para integrar este tipo de sistemas.

      Con respecto al plan de migración tenemos un proyecto para el montaje de aulas que contempla todo lo que comenta. Estas aulas están funcionando en la Facultad de Sociología, en la Facultad de Matemáticas y últimamente en la Facultad de Química. Aquí y aquí podrá encontrar información a cerca de este proyecto así como documentación técnica de instalación y resolución de problemas. Además en nuestros foros existe un apartado dedicado exclusivamente a las aulas piloto en el que se tratan de nuevo todos estos temas.

      Cualquier sugerencia al respecto será bien recibida.

      Responder
      • Roberto Ortega

        Hola nosotros tenemos integrados nuestros ubuntus 6.06, 6.10 y 7.04 siguiendo los pasos que damos en, incluidos home de alumnos utilizamos kerberos:

        http://www.proyectoret.es/mod/wiki/view.php?id=444

        Una cosa que hay que tener en cuenta a la hora solucionar errores es que los equipos tengan la hora correcta.

        Ahora estaba buscando documentación sobre 7.10 y me he topado con este foro.

        Un saludo.

  2. vmanuel

    Buenas tardes.

    Estoy tratando de autenticar una maquina linux (Debian Sarge) en el dominio
    AD, tal como tiene el escenario uds he seguido cada uno de los pasos
    inclusive cuando hago #wbinfo -u
    me devuelve todos los usuarios. ahora bien cuando cierro la secion y trato de conectarme con un usuario del AD no lo Acepta. en el login coloco Dominio\usuario y también he probado
    solo el usuario y no lo acepta el debería pedir la clave parta el dominio y no lo hace tienen alguna idea de que pueda estar pasando.

    gracias

    Responder
    • agarfu

      A nosotros nos ha funcionado tal y como contamos en el howto, pero en otra instalación en la universidad han tenido problemas y los solucionaron instalando kerberos en los clientes linux. No te puedo ayudar mucho más, pero en la documentación de samba podrás encontrar más a cerca de este tema.

      Saludos.

      Responder
      • victormanuel

        Buenos días.

        Efectivamente les comento que instale paso a paso todo como hacen referencia en el link “otrodocumento” esto incluye la instalacion y configuracion de kerberos ahora bien cuando hago wbinfo -u perfecto me devuelve Dominio\usuario$ con wbinfo -D Dominio me devuelve las características del servidor con wbinfo -t lo hace sin problemas ahora cuando trato de hacer wbinfo -m
        me devuelve:
        MIMAQUINA
        BUILTIN
        ACC_CCS
        WINNT

        Como ven es mi MAQUINA y dominios que han sido creados y todavía están activos y ya que samba escucha todo por brodcast de la red pues lo trae pero el detalle es que el Dominio al cual me unido con
        net rpc join -S Dominio.com -U Administrador
        y
        net ads join -U administrador -S Dominio.com

        Este dominio no se lista en los dominios de confianza razon por la cual creo entender que no puedeo autenticarme todavia con un usuario del AD en mi linux.
        agradeciendo su colaboración.

      • carlos

        Yo he seguido el manual y funciona (bueno a medias), los usuarios de windows se pueden validar desde un equipo con ubuntu, pero a la hora de crear su home nos da un error de que no existe el directorio /home/winnt/NOMBREDOMINIO/NOMBREUSER y no puede crearlo. ¿sabéis alguna solución al respecto? He intentado poner un directorio común para todos y darle permisos al grupo de usuarios #chmod g+wrx /home/winnt/dominio/users -R , pero no ha funcionado ¿que puedo hacer?

        si le hago propietario al usuario antes de entrar:

        #chown usuario_windows /hone/winnt -R

        y luego me logeo me da un error del $HOME/.dmrc pero me deja entrar

        Si el usuario no es propietario:

        /etc/gdm/PreSession/Default: Registering your session with wtmp and utmp
        /etc/gdm/PreSession/Default: running: /usr/bin/sessreg -a -w /var/log/wtmp -u /var/run/utmp -x “/var/lib/gdm/:0.Xservers” -h “” -l “:0” “elusuario”
        /etc/gdm/Xsession: Beginning session setup…

        No se ha podido establecer el modo 0700 en el directorio privado de configuración por cada usuario /home/winnt/CEBANCDEA/users/.gnome2_private/ del directorio de configuración «Operación no permitida»

        y me vuelve a la pantalla de login

        ¿alguna solución?

        gracias a todos

      • lagoon

        Hola, existe un módulo en PAM que te permite crear los directorios home si estos no existen:

        /lib/security/pam_mkhomedir.so

        [Este enlace](http://fferrer.dsic.upv.es/cursos/Integracion/html/ch05s05.html) tiene algo más de información.

        Un saludo.

    • carlos

      Yo he seguido el manual y funciona (bueno a medias), los usuarios de windows se pueden validar desde un equipo con ubuntu, pero a la hora de crear su home nos da un error de que no existe el directorio /home/winnt/NOMBRE_DOMINIO/NOMBRE_USER y no puede crearlo.
      ¿sabéis alguna solución al respecto?
      He intentado poner un directorio común para todos y darle permisos al grupo de usuarios #chmod g+wrx /home/winnt/dominio/users -R , pero no ha funcionado
      ¿que puedo hacer?

      si le hago propietario al usuario antes de entrar #chown usuario_windows /hone/winnt -R
      y luego me logeo me da un error del $HOME/.dmrc pero me deja entrar

      Si el usuario no es propietario:
      /etc/gdm/PreSession/Default: Registering your session with wtmp and utmp
      /etc/gdm/PreSession/Default: running: /usr/bin/sessreg -a -w /var/log/wtmp -u /var/run/utmp -x “/var/lib/gdm/:0.Xservers” -h “” -l “:0” “elusuario”
      /etc/gdm/Xsession: Beginning session setup…
      No se ha podido establecer el modo 0700 en el directorio privado de configuración por cada usuario /home/winnt/CEBANCDEA/users/.gnome2_private/ del directorio de configuración «Operación no permitida»

      y me vuelve a la pantalla de login

      ¿alguna solución?

      gracias a todos

      Responder
  3. Mario

    Hola. En mi caso tengo dos servdores, uno con directorio activo y otro con CommuniteGate en un servidor Silicon, yo actualmente tengo mi servidor de correos en el CommuniteGAte pero quiero tener parte de mis cuentas en el directorio activo y parte en el de Silicon, lo que deseo es que mi servidor de Directorio Activo sea el principal y que si no encuentra una cuenta automaticamente la busque en mi servidor silicon, ustedes tienen idea de como hacerle?

    Asi mismo tengo la duda de cuantas cuentas puede aguantar el directorio activo y exchange? lo que pasa que de comienzo quiero tener 30,000 cuentas en el directorio activo y de las 150,000 en el silicon.

    Gracias.

    Responder

Dejar un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.