| Usuarios remotos con Samba: Como tener una base de datos de usuarios centralizada con Samba | ||
|---|---|---|
| Anterior | ||
Ahora tenemos que configurar el cliente para que realice búsquedas de usuarios en otro servidor y lo trate conmo un usuario local. Esta configuración consta de varios pasos, configurar samba y winbind, agregar el cliente al dominio, configurar la búsqueda de usuarios y configurar el sistema de validación.
La configuración mínima del cliente sería, en smb.conf:
workgroup = IESBEZ
security = domain
password server = jefe
winbind separator = +
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/samba/%D/%U
template shell = /bin/bash
winbind use default domain = no
|
En primer lugar usamos el mismo grupo de trabajo o dominio y decimos que la validación de los usuario depende del controlador de dominio que es nuestro Samba.
Los parámetros "idmap" indican un rango de identificadores, uid y gid, para asignar en esta máquina a los usario remotos. Estos valores se recuerdan, es decir que una vez que winbind asigna un uid y un gid a un usuario, volverá a asignar el mismo en sucesivas conexiones. Los parámetros "enum" permiten la enumeración de usuarios. Es conveniente añadirla.
Los parámetros "template" indican qué valores asignará winbind a los usuarios como shell y directorio personal cuando el usuario del dominio haga un "login" en esta máquina cliente.
Por último "winbind use default domain" decide la forma de los nombres de usuarios. En nuestro caso, los nombres de usuarios serán IESBEZ+usuario, es decir, el nombre de usuario se construye usando el nombre del dominio, el signo "+" definido en "winbind separator" y por último el nombre del usuario del dominio.
Para unir la máquina al dominio ejecutamos:
root# net join -S IESBEZ -Uroot%password
|
teniendo en cuenta que root tiene que ser usuario de samba en el servidor, y por supuesto, la contraseña también tiene que ser la contraseña samba de root en el servidor.
Aquí los problemas pueden surgir si el parámetro "add machine script" está mal configurado. Tras unir la máquina al dominio en el servidor se ha creado una cuenta con el nombre del cliente terminado en $.
Ahora hay que enseñar al linux cliente a que busque usuarios tambien en la red, además de los que tenga definidos en su fichero /etc/passwd. Esto lo hacemos en el fichero /etc/nsswitch.conf. Lo editamos y modificamos para que las líneas correspondientes queden como:
passwd: files winbind
shadow: files winbind
group: files winbind
|
Con esto estamos diciendole al sistema que para buscar usuarios y grupos primero use los usuarios y grupos definidos en los ficheros locales y después los busque en la red a través de winbind.
Ahora tenemos que indicar como buscar las contraseñas para validar a los usuarios, esto se hace a través de pam. Vamos al directorio /etc/pam.d y buscamos el fichero de configuración de validación. En las distribuciones de Fedora por ejemplo editamos el fichero system-auth y lo dejamos como:
#%PAM-1.0
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
auth sufficient /lib/security/$ISA/pam_smb_auth.so use_first_pass nolocal
auth required /lib/security/$ISA/pam_deny.so
account sufficient /lib/security/$ISA/pam_unix.so
account [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] /lib/security/$ISA/pam_winbind.so
password required /lib/security/$ISA/pam_cracklib.so retry=3 type=
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_winbind.so use_authtok
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_limits.so
session optional /lib/security/$ISA/pam_unix.so
session optional /lib/security/$ISA/pam_winbind.so
|
Ahora reiniciamos Samba y winbind en el cliente:
/etc/init.d/smb restart /etc/init.d/winbind restart
|
Si todo se ha configurado correctamente ya podemos usar en esta máquina los usuarios que hay en el servidor, pero primero algunas comprobaciones. Ejecutamos:
wbinfo -u wbinfo -g
|
Si no aparece algún error de validación ejecutamos:
wbinfo -a root%password
|
y volvemos a ejecutar las órdenes anteriores; nos deben aparecer los usuarios del dominio.
Ahora entramos en una consola y cuando apareca login: respondemos:
login IESBEZ+usuario password: contraseña_de_susario
|
y habremos iniciado una sesión local como un usuario remoto. Si no hemos creado el directorio /home/samba/usuario el sistema se queja pero inicia la sesión.