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.
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
# /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
Hay que modificar los siguientes archivos
account sufficient pam_winbind.so account required pam_unix.so
#auth required pam_cups.so auth required pam_mount.so #use_first_pass auth sufficient /lib/security/pam_winbind.so use_first_pass auth required pam_unix.so nullok_secure use_first_pass
session required pam_unix.so nullok_secure session required pam_mkhomedir.so skel=/etc/skel umask=0022 #session optional pam_cups.so min_uid=10000 session optional pam_mount.so
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:
Este archivo dependerá de que es lo que queremos montar, dentro del mismo archivo están todas las opciones documentadas, sólo muestro lo necesario. Modificar el archivo
volume * smbfs ServidorDeArchivos & /home/&/Desktop/Usuario dmask=0750,workgroup=DOMINIO - -
"/home/&/Desktop/Usuario" corresponde al punto donde se van a montar los archivos del usuario. "&" En la cuarta columna significa que busque el recurso que se llama como el nombre de usuario
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
Rango de uids usados para los usuarios del dominio
Rango de gids usados para los usuarios del dominio
Directorio home de los usuarios (%U es reemplazado por el nombre de usuario y %D por el nombre de dominio)
Dominio por defecto
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
Si el usuario no se loguea como DOMINIO+nombreDeUsuario busca nombreDeUsuario en el dominio por defecto
Tiempo que se conservan los datos en cache
Aclara que no es un controlador de dominio
Especifica que hay un servidor de passwords
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 :
# /etc/init.d/samba restart # /etc/init.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 linea de comando para comprobar que devuelva la lista de los usuarios del dominio
Para utilizar las impresoras del dominio necesitamos instalar pam_cups libmqueue.so
Pam_cups guarda en cache las credenciales y las presenta cada vez que se precisa interactuar con las colas definidas en cupsys. Para instalar pam_cups bajamos el paquete fuente de
http://sourceforge.net/projects/pam-cups/
Antes de compilar hay que parchearlo, para lo cual debemos generar un archivo con el nombre como se muestra a continuación
http://www.geocities.com/wronski12/posix_ipc/libmqueue-4.41.tar.gz.
Hay que bajar http://sourceforge.net/projects/pam-cups/ descomprimirlo, configurarlo, compilarlo e instalarlo. Antes de compilarlo en Debian hay que parchearlo para que compile, porque sino da error, el patch lo adjunto mas abajo.
Hay que generar el libmqueue.so, para eso, bajar libmqueue de la red, cualquier busqueda en google lo encuentra, compilarlo e instalarlo. Yo lo baje de http://www.geocities.com/wronski12/posix_ipc/libmqueue-4.41.tar.gz.
Generar el link simbólico /usr/lib/cups/backend/smb que apunta a /usr/bin/pam_cups_spool.
# ln -s /usr/bin/pam_cups_spool /usr/lib/cups/backend/smb
(Ojo que probablemente exista, estonces nos va a dar error, hay que borrar el link anterior, que apunta a la cola de samba por defecto)
Modificar el archivo /etc/init.d/cupscd Contenido:
#!/bin/sh # PATH=/bin:/usr/bin:/sbin:/usr/sbin DAEMON=/usr/sbin/cupscd OPTIONS="" case "$1" in start) echo -n "Starting cups cacher: cupscd " if start-stop-daemon --quiet --stop --signal 0 --exec $DAEMON then echo "[already running]" else /sbin/start-stop-daemon --start --quiet --exec $DAEMON -- $OPTIONS echo "." fi ;; stop) echo -n "Stopping cups cacher: cupscd " if start-stop-daemon --quiet --stop --signal 0 --exec $DAEMON then start-stop-daemon --quiet --stop --exec $DAEMON echo "." else echo "[not running]"; fi ;; force-reload|restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: /etc/init.d/cupscd {start|stop|restart|force-reload}" exit 1 esac exit 0
Modificar el archivo /etc/cups/printers.conf Contenido:
<DefaultPrinter printer> Info . Location reemplazarDESCRIPCIONDELAUBICACION DeviceURI smb://reemplazarPRINTERSERVER/reemplazarPRINTERNAME State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer>
El pam_cups principalmente generara: /lib/security/pam_cups.so /usr/sbin/cupscd /usr/bin/pam_cups_spool /usr/lib/cups/backend/smb
Para que arranque siempre el cupscd, hacer un "update-rc.d cupscd defaults"
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
#%PAM-1.0 @include common-auth @include common-account
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