Samba: Unir Debian a un Dominio Windows (I)

¡Hola Amigos!. Samba nos permite unir Debian a un Dominio Microsoft de dos formas diferentes que dependen en lo fundamental de como declaremos la opción security en el archivo smb.conf.

Security = Domain

La máquina se debe unir al dominio mediante el comando net rpc join. El parámetro encrypt passwords en el archivo smb.conf, debe estar fijado a true o yes, el cual es su valor por defecto.

Samba validará las credenciales de Usuario y Contraseña pasándolas al Controlador de Dominio exactamente como lo haría hacia un Controlador tipo NT 4.

Security = Domain es el modo que desarrollaremos en éste artículo.

Security = ADS: En éste modo Samba actuará como un miembro de dominio en un Reino (Realm) de un Directorio Activo. Para ello es necesario que la máquina Debian tenga instalado y configurado el cliente Kerberos, y que sea unida al Directorio Activo mediante el comando net ads join.

Este modo NO hace que Samba opere como un Controlador de Dominio de Directorio Activo.

Veremos:

  • Parámetros principales de la red de ejemplo
  • Requisitos mínimos en el Controlador de Dominio
  • Requisitos mínimos en la máquina Debian
  • Instalamos paquetes necesarios y configuramos
  • Unimos Debian al Dominio y hacemos comprobaciones necesarias
  • Permitimos el inicio de sesión de Usuarios del Dominio en nuestro Debian
  • Tips cuando trabajamos en Desktops

Parámetros principales de la red de ejemplo

  • Controlador de Dominio: Windows 2003 Server SP2 Edición Empresarial.
  • Nombre del Controlador: w2003
  • Nombre del Dominio: amigos.cu
  • IP del Controlador: 10.10.10.30
  • ——————————————-
  • Versión de Debian: Squeeze (6.0.7) [:-$ cat /etc/debian_version]
  • Nombre del equipo: misqueeze
  • Dirección IP: 10.10.10.15
  • Versión de Samba: 2:3.5.6~dfsg-3squeeze9
  • Versión de Winbind: 2:3.5.6~dfsg-3squeeze9
  • Ambiente de escritorio GNOME con GDM3
  • ——————————————-
  • Versión de Debian: Wheezy 7.0
  • Nombre del equipo: miwheezy
  • Dirección IP: 10.10.10.20
  • Versión de Samba: 2:3.6.6-6
  • Versión de Winbind: 2:3.6.6-6
  • Ambiente de escritorio Xfce4 con GDM3

Requisitos mínimos en el Controlador de Dominio

El método descrito en este artículo se probó inicialmente contra un Controlador de Dominio configurado a partir del «ClearOS Enterprise 5.2 SP-1» sobre CentOS, y todo funcionó correctamente. Demás está el decir que se trata de Software Libre.

Haremos referencia a un Controlador de Dominio Microsoft Windows Server 2003 SP2 Enterprise Edition, utilizado en muchas empresas cubanas. Lamento no disponer del disco de instalación de la versión Server 2008 o una más avanzada. Me perdonan el inglés, pero el único instalador que poseo está en ese idioma.

Favor y lean el artículo Samba: SmbClient publicado en éste mismo sitio para que tengan idea de los usuarios creados en el Controlador de Dominio.

Si empleamos una dirección IP fija para nuestro Debian, debemos tener declarado un registro tipo «A» y su correspondiente registro en la Zona Inversa en el DNS del Controlador de Dominio.

Siempre es recomendable cuando trabajamos una red con equipos Linux y Windows, habilitar el servicio WINS (Windows Internet Name Service) preferentemente en el Controlador de Dominio.

Requisitos mínimos en la máquina Debian

El archivo /etc/resolv.conf debe tener el contenido siguiente:

search amigos.cu
nameserver 10.10.10.30

Ejecutamos:

$ hostname -f
misqueeze.amigos.cu
$ dnsdomainname
amigos.cu
$ host w2003
w2003.amigos.cu has address 10.10.10.30
$ dig -x 10.10.10.30
[----]
;; ANSWER SECTION:
30.10.10.10.in-addr.arpa. 1200    IN    PTR    w2003.amigos.cu.
[----]

Instalamos paquetes necesarios y configuramos

# aptitude install samba winbind smbclient finger

Durante la instalación del paquete samba, se nos pedirá el nombre del Grupo de Trabajo, que en nuestro ejemplo es AMIGOS.

Guardamos el archivo original smb.conf y luego lo vaciamos:

# cp /etc/samba/smb.conf /etc/samba/smb.conf.original
# cp /dev/null /etc/samba/smb.conf

Editamos el archivo smb.conf y lo dejamos con el siguiente contenido:

[global]

### Browser de red - Identificación ###
workgroup = AMIGOS
server string = %h server
wins server = 10.10.10.30
dns proxy = no

### Conexión de Redes ###
interfaces = 127.0.0.0/8 eth0
bind interfaces only = yes
hosts allow = 10.10.10.0/255.255.255.0

### Depuración ###
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d

### AUTENTICACIÓN ###
security = domain
encrypt passwords = yes
local master = no
domain master = no
preferred master = no

### Winbind ###
winbind uid = 15000-20000
winbind gid = 15000-20000
template shell = /bin/bash
winbind use default domain = Yes
winbind rpc only = yes
winbind offline logon = yes

### Varios ###
invalid users = root
template homedir = /home/%D/%U
registry shares = No
# unix charset = ISO-8859-1
# display charset = ISO-8859-1

Comprobamos la sintaxis básica del archivo smb.conf:

# testparm

Editamos el archivo /etc/nsswitch.conf y modificamos las siguientes líneas:

[----]
passwd:         files winbind
group:          files winbind
shadow:         compat

hosts:          files dns wins
[----]

Unimos Debian al Dominio y hacemos comprobaciones

# service winbind stop 
# service samba restart
# service winbind start
# net rpc join -U Administrator
# service winbind stop 
# service samba restart
# service winbind start
# net rpc testjoin -U Administrator
# net rpc info -U Administrator
# wbinfo -u
# wbinfo -g
# finger trancos
# getent passwd trancos
# getent group "Domain Users"

Por supuesto que se habrá creado correctamente la Cuenta de Máquina en el Controlador de Dominio.

Hasta ahora hemos visto que podemos obtener información correcta sobre el Dominio, así como de sus usuarios.

En artículos posteriores aprenderemos como compartir recursos para que puedan ser utilizados por los usuarios registrados en el Dominio, o sea, que podremos servir archivos para usuarios de un Dominio Microsoft, tanto desde una estación de trabajo como desde un servidor dedicado.

Permitimos el inicio de sesión de Usuarios del Dominio en nuestro Debian

Cuando instalamos el paquete winbind, Debian automáticamente configura los Módulos de Autenticación Insertables o Plugable Authentication Modules PAM.

Sin embargo, si tratamos de iniciar una sesión como un Usuario del Dominio, ya sea mediante SSH o una sesión gráfica recibiremos el mensaje de «Fallo de autenticación».

Se debe a que los archivos de los módulos PAM, más específicamente el common-auth se generó incluyendo la autenticación mediante Kerberos, la cual NO se utiliza cuando declaramos security = domain en el archivo smb.conf.

Para que podamos iniciar una sesión mediante SSH o gráfica, debemos modificar manualmente los archivos:

  • /etc/pam.d/common-auth
  • /etc/pam.d/common-session

/etc/pam.d/common-auth

Eliminamos de la línea que hace referencia a pam_winbind.so, los parámetros relacionados con krb5. Quedaría esa parte así:

[----]
# here are the per-package modules (the "Primary" block)
auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so cached_login try_first_pass
[----]

/etc/pam.d/common-session

[----]
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
### La línea anterior se debe incluir ANTES de
# here are the per-package modules (the "Primary" block)
[----]

Reiniciamos los servicios implicados

# service winbind stop
# ervice samba restart
# service winbind start
# service ssh restart

Las modificaciones anteriores a los archivos de configuración del PAM, permitirán a los usuarios del Dominio iniciar una sesión SSH o localmente en nuestra estación de trabajo Debian.

También se crearán los directorios personales de cada usuario cuando inicie sesión por vez primera. Las carpetas o directorios personales se crearán en /home/DOMINIO/usuario-del-dominio.

De presentarse cualquier dificultad en el inicio de sesión gráfico, recomendamos reiniciar el gestor de inicio de sesión gráfico (gdm3, kdm, etcétera) y sino es suficiente, reiniciar la estación de trabajo.

Para limitar o restringir el acceso vía SSH a nuestro Debian, debemos editar el archivo /etc/ssh/sshd_config y agregar al final:

 AllowUsers miusuario-local trancos root

En nuestro ejemplo, trancos es un usuario del Dominio al cual queremos permitir que pueda iniciar sesión mediante SSH, mientras que xeon es un usuario local.

También podemos incluir en el archivo /etc/sudoers mediante el comando visudo, a uno o más usuarios del Dominio.

[----]
# User privilege specification
root    ALL=(ALL) ALL
xeon    ALL=(ALL) ALL
trancos ALL=(ALL) ALL
[----]

Tips cuando trabajamos en Desktops

En el caso de que queramos trabajar en un Desktop o Estación de Trabajo con inicio de sesión gráfica y ambiente gráfico, debemos hacer a los usuarios del dominio que iniciarán sesión local, miembros de al menos los siguientes grupos: cdrom, floppy, audio, video y plugdev. Si usamos un módem para conectarnos a una red externa, también debemos hacerlos miembros del grupo dip.

En el caso del Squeeze, si queremos eliminar la lista de usuarios al inicio de la sesión gráfica, en el caso del gdm3, editamos el archivo /etc/gdm3/greeter.gconf-defaults, y eliminamos el comentario de la opción /apps/gdm/simple-greeter/disable_user_list, y le cambiamos su valor a true.

Esperamos no vean ni complicado ni diabólico lo explicado. Tengamos siempre presente al utilizar la Suite Samba en Linux, prácticamente emulamos casi todas las funciones de Windows referente a las redes SMB/CIFS… y un poco más. Microsoft brinda «Seguridad» a cambio de Obscuridad. Por su parte Linux, aunque al principio parezca un poco complicado, brinda Seguridad, Transparencia y Libertad.

¿Que hay que leer?. ¡El Esfuerzo lo Vale!.

Y se acabó la actividad por hoy, Amigos. Hasta la próxima aventura !!!.

Nota: Probamos el procedimiento descrito en los tres Niveles de Funcionalidad del Dominio Microsoft, o sea, Mixto, Nativo 2000, y Nativo 2003.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Erick dijo

    Muy buen post, le felicito amigo, una pregunta usted podria hacer un post de como hacer un servidor de dominio con samba4, es que tengo dudas y parte nunca he hecho un pdc con samba y dicen no me consta que samba4 mejoro un monton, saludos

    1.    Federico A. Valdés Toujague dijo

      Gracias a TODOS por comentar !!!.

      @Erick: empieza por lo sencillo. Instala un ClearOS o algo por el estilo como PDC. He ayudado a instalarlo y configurarlo en 3 pequeñas empresas. La mayor con 50 equipos, y funcionan muy bien. La administración es muy sencilla.

      @Jesus Israel Perales Martinez: No es necesario instalar Samba. Ahora si a una «red normalita de archivos» te refieres a una red SMB/CIFS, entonces si es recomendable.

      @denis: Gracias por tus palabras de agradecimiento y aliento.

      @DanielC: Parece que los cogiste con «la mano en la masa». 🙂

  2.   Jesus Israel Perales Martinez dijo

    Una pregunta si todos mis pcs usan GNU’s es necesario que use samba para compartir mis archivos o puedo hacerlo con nfs , si es asi, podrian hacer un tutorial para compartir archivos usando nfs , se bien que puedo descargar todo por ssh y mandar archivos por ftp , tambien por clientes webs y demas pero quisera tener montada una red «normalita de archivos»

  3.   denis dijo

    hola mi amigo, queria en primer lugar agradecerte por todo lo que haces dia a dia con tu buena voluntad de ayudar a los demas incluso cuando apenas los conoces.
    Muy buenos todos tus articulos, de verdad te digo que gracias a ellos me eh ido formando como casi casi un sysadmin aunque se que aun me falta mucho camino por andar.

  4.   DanielC dijo

    Justo estaba leyendo este tema en el RSS, y me salieron actualizaciones de samba.

    Para que luego no digan que Ubuntu no espía!! :B

    1.    eliotime3000 dijo

      ROFL!

      Ubuntu no espía, Amazon sí.

  5.   Javier dijo

    Acà la receta que hice yo especìfica para Debian en un reino ADS https://wiki.debian.org/SAMBAclienteWindows

    1.    Federico Antonio Valdés Toujague dijo

      Con el parámetro security = ads, existen muchos post en la web. No obstante, mi próximo artículo tratará ese mismo tema.

  6.   eliotime3000 dijo

    Realmente tendré que echarle una ojeada al man de Samba para poder compartir carpetas para las LAN’s con Windows.

    PD: El equipo de Debian Mozilla ya ha liberado finalmente Iceweasel 24.

  7.   Aldo dijo

    Hola que tal muy buena la información que compartistes aca, estoy comenzando a hacer una migración de prueba con un servidor debian como file & print pero necesito que se autentiquen los usuarios que tienen windows 7 y XP con el dominio (windows 2000) que e estado buscando y no lo e visto…
    Gracias

  8.   danile cordoba dijo

    Hola, creo que el problema de Debian y sus derivados es no saben o saben y no lo quieren hacer, de facilitar las cosas al usuario comun. soy usuario de la versión opensuse y es tan sencillo configurar una red domestica o de oficina. Con equipos que tienen instalados opensuse y windows xp-7, comparten archivos e impresoras. Toda esta tarea es realizada con Yast es decir sin ingresar a la terminal y tener que escribir todo esto. Una verdadera locura en Debian. Con debian Wheezy despues de una semana de escribir codigos no pude hacer imprimir en una impresora compartida en un equipo con windows xp. Con opensuse con 4 pasos nombre del equipo que comparte la impresora (xp), nombre de impresora compartida (xp), nombre de usuario y clave. Y ya esta, para compartir una misera impresora y unos archivos hogareños no tenes que ser un guru de los codigos. Ni hablar del CUPS. cupsd, ect. Hagan algo amigable al usuario comun.

    1.    federico dijo

      Muy de acuerdo contigo. Debian se caracteriza por poner las cosas al duro en el ambiente de los Escritorios. Y en la parte de los servicios, OpenSuse y CentOS le facilitan mucho la vida a los Administradores de Servicios. No obstante, me he acostumbrado a Debian, y es el que prefiero. 🙂
      Gracias por comentar !!!.

    2.    German dijo

      Siempre hay que hacer transacciones. Debian tiene alta calidad en detrimento de otras caracteristicas. Se requiere hacer buen uso del tiempo y Debian lo dedica a su producto pensando mas en su implementación en servidores. La gente que administra servidores no tiene las mismas necesidades que otro tipo de usuarios.
      He probado otras distribuciones y solo Arch tiene la misma estabilidad. El resto es muy automatizado; pero genera muchos problemas a la hora de su uso para servidores.
      Es mi opinion personal y tiene mucho de subjetiva.

  9.   Mauricio dijo

    Muy buena informacion, muchas gracias. Hay algun post sobre la manera mas eficaz de hacer un backup automatico desde un servidor Linux accediendo a equipos Windows bajo un dominio? gracias

    1.    matias dijo

      Si prueba Rsync es multi plataforma

  10.   matias dijo

    Muy Buenas tardes tenia error al comprobar # net rpc join -U Administrator y lo solucione agregando
    en /etc/samba/smb.conf realm = tu dominio.local