Lihuen
RSSRSS AtomAtom

Compartiendo usuarios en un dominio Windows preexistente con Lihuen 3

Compartiendo usuarios y sus carpetas personales

Introducción

La idea de este documento es explicar paso a paso la manera en que podemos integrar máquinas con GNU/Linux Lihuen a un entorno de dominio Windows preexistente, de manera de que los usuarios puedan utilizar los recursos del mismo. Más concretamente, la posibilidad de autenticarse centralizadamente de manera que puedan utilizar cualquier estación de trabajo utilizando el mismo usuario y contraseña que en windows, acceder a los discos compartidos y utilizar las impresoras del dominio, siempre con los permisos definidos para ese usuario.

Nota

Se detectaron problemas al unir al dominio clientes con Lihuen 3 (Basado en Debian Lenny) en redes con controladores de dominio con Debian Etch.

Es recomendable o bien actualizar el controlador de dominio a Debian Lenny, o bien compilar e instalar Samba 3.0.24 en los clientes.

Instalando winbind y libpam-mount

Utilizamos winbind para autenticarse en el dominio Windows y libpam-mount para montar los recursos compartidos del dominio automáticamente.

apt-get install winbind
apt-get install libpam-mount

Configuración de Windbind en nsswitch.conf

  • Modificar /etc/nsswitch.conf para que quede como sigue
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files winbind
group:          files winbind
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Configuración de PAM

Hay que modificar los siguientes archivos

  • /etc/pam.d/common-account
account sufficient pam_winbind.so
account required pam_unix.so
  • /etc/pam.d/common-auth
auth required pam_mount.so
auth sufficient /lib/security/pam_winbind.so use_first_pass
auth required pam_unix.so nullok_secure use_first_pass 
  • /etc/pam.d/common-session
session required pam_unix.so nullok_secure
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session optional pam_mount.so

Para que monte automáticamente los archivos compartidos

Modificamos el archivo /etc/security/pam_mount.conf

Para montar automáticamente los archivos compartidos del dominio una vez que los usuarios se loguean y desmontarlos una vez que se desloguean del sistema:

La configuración en este archivo dependerá de que es lo que queremos montar. A continuación un ejemplo común. Modificar el archivo

  • /etc/security/pam_mount.conf.xml para Lihuen 3
<pam_mount>
  <volume options="dmask=0750,workgroup=NOMBREDELDOMINIO" user="*" mountpoint="/home/%(USER)/Desktop/Usuario" path="%(USER)" server="IP_DEL_SERVIDOR" fstype="cifs" />
</pam_mount>
  • /etc/security/pam_mount.conf.xml para Lihuen 4
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
  <debug enable="0" />
  <volume options="dir_mode=0750,workgroup=NOMBREDELDOMINIO,user=%(USER)" mountpoint="/home/%(USER)/Desktop/Usuario" path="%(USER)" server="IP_DEL_SERVIDOR" fstype="cifs" />
  <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
  <mntoptions require="nosuid,nodev" />
  <logout wait="0" hup="0" term="0" kill="0" />
  <mkmountpoint enable="1" remove="true" />
</pam_mount>


"/home/%(USER)/Desktop/Usuario" corresponde al punto donde se van a montar los archivos del usuario. "%(USER)" en el campo path significa que busque el recurso que se llama como el nombre de usuario

Configuración de Samba para que se una al dominio

Modificar en el archivo original de configuración de samba /etc/samba/smb.conf los siguientes parámetros y dejar el resto como está

[global]
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
template homedir = /home/%U
workgroup = NOMBREDELDOMINIO
winbind enum groups = yes
winbind enum users = yes
winbind separator = +
winbind use default domain = yes
winbind cache time = 10
domain master = no
security = domain
printing = cups
printcap name = cups

Algunos comentarios

  • idmap uid = 10000-20000

Rango de uids usados para los usuarios del dominio

  • idmap gid = 10000-20000

Rango de gids usados para los usuarios del dominio

  • template homedir = /home/%U

Directorio home de los usuarios (%U es reemplazado por el nombre de usuario y %D por el nombre de dominio)

  • workgroup = NOMBREDELDOMINIO

Dominio por defecto

  • winbind separator = +

Separador entre el nombre de dominio y el nombre de usuario, por ejemplo en el dominio VENTAS el usuario carlos debería loguearse como: VENTAS+carlos

  • winbind use default domain = yes

Si el usuario no se loguea como DOMINIO+nombreDeUsuario busca nombreDeUsuario en el dominio por defecto

  • winbind cache time = 10

Tiempo que se conservan los datos en cache

  • domain master = no

Aclara que no es un controlador de dominio

  • security = domain

Especifica que hay un servidor de passwords

Agregando la máquina al dominio

Una vez que se completa la configuración de samba, hay que agregar la máquina al dominio: Primero reiniciamos el samba y el winbind :

invoke-rc.d samba restart
invoke-rc.d winbind restart

Y después lo agregamos al dominio:

net join -U administrador dominio


Nos va a pedir el password de administrador del dominio lo introducimos y LISTO, estamos dentro del dominio, hacer un "getent passwd" desde la línea de comando para comprobar que devuelva la lista de los usuarios del dominio.

Para que poder loguearnos con gdm con estos usuarios debemos reiniciar gdm

invoke-rc.d gdm restart

Como agregar grupos por defecto a los usuarios

Los usuarios de que se autentiquen usando una cuenta remota no tendrán los grupos que por defecto que tienen los usuarios locales, pero es posible hacer que los tengan.

Para esto usaremos otro módulo de PAM pam_group.

Primero debemos agregar el módulo pam_group en la configuración en common-auth.

  • /etc/pam.d/common-auth
auth optional pam_group.so
auth required pam_mount.so
auth sufficient /lib/security/pam_winbind.so use_first_pass
auth required pam_unix.so nullok_secure use_first_pass

Luego debemos configurar que grupos y en que condiciones deben asignarse estos grupos en /etc/security/group.conf.

Abajo detallo una configuración muy sencilla que otorga los grupos por defecto a cualquier usuario bajo cualquier circunstancia. El archivo group.conf tiene infinidad de opciones para hacer un control más fino de a que usuarios y en que circunstancias agregarles grupos.

  • /etc/security/group.conf
*;*;*;Al0000-2400;lp,dialout,cdrom,floppy,audio,src,video,plugdev,users,fuse

nm-applet y montar pendrives

Con agregar los grupos netdev y plugdev no es suficiente para que esto funcione para los usuarios del dominio, es necesaria alguna configuración extra.

La configuración que detallamos a continuación es la más sencilla y funciona pero al igual que con group.conf se puede hacer una configuración más especifica.

Debemos editar varios archivos de D-BUS, todos ellos en /etc/dbus-1/system.d

En los archivos hal.conf, nm-applet.conf y NetworkManager.conf debemos buscar las secciones policy que tengan el campo context="default" y cambiar las etiquetas que digan deny por allow dentro de esta sección.

Por ejemplo si encontramos esta configuración:

<policy context="default">
  <deny send_interface="org.freedesktop.DBus.Introspectable"
         send_destination="org.freedesktop.Hal"/>
  <deny send_interface="org.freedesktop.Hal.Manager"
         send_destination="org.freedesktop.Hal"/>
...

La cambiamos por:

<policy context="default">
  <allow send_interface="org.freedesktop.DBus.Introspectable"
         send_destination="org.freedesktop.Hal"/>
  <allow send_interface="org.freedesktop.Hal.Manager"
         send_destination="org.freedesktop.Hal"/>
...

Y después reiniciamos el equipo.

Usando VMWare Server con usuarios del dominio

Por defecto vmware utiliza su propia configuración de PAM para las sesiones remotas, para poder utilizar el nombre de usuario y contraseña del dominio en un vmware server que resida en la máquina unida al dominio hay que modificar esta configuración para que quede como se detalla a continuación

  • /etc/pam.d/vmware-authd
#%PAM-1.0
@include common-auth
@include common-account

Recursos

http://foss.stat.unipd.it/mediawiki/index.php/Debian_Client_in_a_Samba_Domain

http://us1.samba.org/samba/docs/man/manpages-3/winbindd.8.html

http://www.geocities.com/wronski12/posix_ipc/index.html

http://www.samba.org

http://www.kernel.org/pub/linux/libs/pam/modules.html

 Ante cualquier duda o inconveniente no dudes en escribirnos un email a 
 soportelihuen arroba linti.unlp.edu.ar (Sin los espacios)
 O visitar nuestros Foros.
 http://lihuen.linti.unlp.edu.ar/foros