How to: Linux en dominio Windows

Limpiando el 'armario desastre' donde almaceno toda la documentación que ha llegado a mis manos o he tenido que generar yo por necesidad, encontré una mini-guía de como agregar un equipo Linux a un dominio Windows, no es nada nuevo,debido a que tiene más de 5 años, pero es de la que más orgulloso me siento, ya que fue la primera documentación que tuve que hacer en un entorno profesional. La he editado un poco para que sea más legible (el formato original era paso 1, paso 2, etc...) y he cambiado los datos reales que había puesto por unos ficticios (un pequeño guiño a Battlestar Galactica).



Sin más empecemos con el proceso a seguir para poder añadir una máquina Linux a un dominio Windows. El proceso no es muy complicado, pero sí que hay que ser cuidadoso a la hora de configurar ciertos parámetros. Una vez terminado todo el proceso cualquier usuario del Active Directory podrá acceder al dominio a través de la máquina Linux, eso sí, no se le aplicaran las GPO's y alguna que otra cosa más.

El servidor, en esta guía, tiene la siguiente configuración:
  • Dominio: Kobol.dom
  • FQDN del servidor: sagitaria.kobol.dom
  • Dirección IP: 172.16.0.1/16
  •  Servidor DNS: 172.16.0.1

La máquina Linux deberá tener, en este caso, de la siguiente configuración mínima.
  • Nombre NETBIOS: linux
  • Dirección IP:172.16.0.100/16
  • Servidor DNS: 172.16.0.1

A continuación tendremos que instalar en la máquina Linux, si no están instalados, los siguientes paquetes:
  • samba
  • sambaclient
  • winbind
  • krb5-user
  • krb5-config

Lo haremos de la siguiente manera:

sudo apt-get install samba smbclient winbind krb5-user krb5-config

Necesitamos editar el archivo /etc/hosts y añadirle las siguientes líneas:

            172.16.0.100      linux.kobol.dom         linux
      172.16.0.1        sagitaria.kobol.dom     sagitaria

El siguiente paso es editar el fichero de configuración del cliente kerberos en /etc/krb5.conf, el cual quedará asi:

[libdefaults]
      default_realm = KOBOL.DOM
      clockskew = 300
 
[realms]
    KOBOL.DOM = {
          kdc = 172.16.0.1
          default_domain = kobol.dom
          admin_server = 172.16.0.1
      }
    kobol.dom = {
          kdc = 172.16.0.1
          default_domain = kobol.dom
          admin_server = 172.16.0.1
      }
      kobol = {
          kdc = 172.16.0.1
          default_domain = kobol
          admin_server = 172.16.0.1
      }
 
[logging]
      kdc = FILE:/var/log/krb5/krb5kdc.log
      admin_server = FILE:/var/log/krb5/kadmind.log
      default = SYSLOG:NOTICE:DAEMON

[domain_realm]
      .kobol = kobol
      .kobol.dom = kobol.dom

[appdefaults]
      pam = {
          ticket_lifetime = 1d
          renew_lifetime = 1d
          forwardable = true
          proxiable = false
          retain_afvimter_close = false
          minimum_uid = 0
          try_first_pass = true
      }

Una vez hecha la configuración anterior debemos crear los tickets kerberos, para ello ejecutaremos el siguiente comando:

sudo kinit administrador@kobol.dom

Nos pedirá el password, lo introducimos y creará los tickets.

Ahora tendremos que configurar samba, para ello editaremos su archivo de configuración con los siguiente parámetros:

[global]
  security = ADS
  netbios name = linux
  realm = KOBOL.DOM
  password server = sagitaria.kobol.dom
  workgroup = KOBOL
  log level = 1
  syslog = 0
  idmap uid = 10000-29999
  idmap gid = 10000-29999
  winbind separator = +
  winbind enum users = yes
  winbind enum groups = yes
  winbind use default domain = yes
  template homedir = /home/%D/%U
  template shell = /bin/bash
  client use spnego = yes
  domain master = no
  server string = Linux Accediendo por AD
  encrypt passwords = yes

##compartir el home del usuario
  [homes]
      comment = Home Directories
      valid users = %S
      browseable = No
      read only = No
      inherit acls = Yes
  [profiles]
      comment = Network Profiles Service
      path = %H
      read only = No
      store dos attributes = Yes
      create mask = 0600
      directory mask = 0700

##Crear una carpeta común para todos los usuarios
  [users]
      comment = All users
      path = /alguna/carpeta
      read only = No
      inherit acls = Yes
      veto files = /aquota.user/groups/shares/
....
Más configuraciones
....

Una vez realizadas todas las configuraciones de negociación y conexión, el siguiente paso será agregar el equipo Linux al dominio, lo haremos de la siguiente manera:

sudo net ads join -S sagitaria.kobol.dom -U administrador

Si todo está bien debería aparecernos el siguiente mensaje:

                  Using short domain name -- KOBOL
                  Joined 'LINUX' to realm 'KOBOL.DOM'

Si nos aparece un mensaje de error como Kinit failed: Clock skew too great es debido a que kerberos ha detectado un desfase de ±5 minutos en los relojes de ambas máquinas. Para solucionarlo simplemente debemos de establecer la hora reloj de la máquina Linux más o menos sincronizada con la hora del servidor Windows (se puede hacer a mano o mediante ntp, lo dejo a vuestra preferencia).

Para que se puedan resolver los nombres de usuario y de grupos de dominio se deben de añadir las siguientes líneas al archivo /etc/nsswitch.conf:

                                    passwd:     files winbind
                  group:      files winbind
                  shadow:     files winbind
                  hosts:      files dns winbind

Para habilitar el inicio de sesión por medio de la interfaz gráfica, es decir, por la pantalla que nos pide un usuario y un password, deberemos configurar los modulos pam para permitir esta acción. Lo haremos editando los siguientes archivos y dejándolos como sigue:

/etc/pam.d/common-account
account     sufficient     pam_winbind.so
account     required       pam_unix.so try_first_pass   

/etc/pam.d/common-auth
auth  sufficient     pam_winbind.so
auth  required       pam_unix.so nullok_secure try_first_pass

/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

/etc/pam.d/common-session
session     required    pam_mkhomedir.so skel=/etc/skel/ umask=0022
session     sufficient  pam_winbind.so
session     required    pam_unix.so try_first_pass

Por último deberemos de crear el directorio /home/KOBOL, donde los usuarios tendrán sus directorios home. Simplemente ejecutando el siguiente comando:

sudo mkdir /home/KOBOL

Sólo nos queda reiniciar la máquina Linux y comprobar que funciona correctamente.

Lo has visto primero en CeroWarnings. Recuerda que puedes dejarnos tus peticiones en nuestro Buzón de Sugerencias.

Publicar un comentario

3 Comentarios

  1. acojonante, pagaría por que alguien me configurase así mi estudio!!

    ResponderEliminar
  2. Muy buen post, gracias.

    ResponderEliminar
  3. Muchas gracias me sirvio de mucho ahora tengo una pregunta como doy los permisos a las carpetas con los grupos creados en el DA de windows? es decir si creo una carpeta queria usar los mismos grupos de la unidad organizativa de Windows que ya estan creados

    ResponderEliminar