Lihuen
RSSRSS AtomAtom

Compartiendo usuarios en un dominio Windows preexistente

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.

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_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 
  • /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_cups.so min_uid=10000
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:

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

  • /etc/security/pam_mount.conf
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

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 :

# /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 línea de comando para comprobar que devuelva la lista de los usuarios del dominio


Para utilizar las impresoras 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"

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