Noticia 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

  • 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.


R34vFrENh08


Continúar leyendo...