====== Autenticar Samba con usuarios de Active Directory ====== Instalar la paquetería necesaria: aptitude install samba smbclient winbind krb5-user krb5-config Resolver equipos de la red Agregar la IP de nuestro equipo Linux y la del Server Active Directory a "/etc/hosts": Configurar el cliente kerberos Para configurar el cliente kerberos agregamos/modificamos las siguientes lineas a "/etc/krb5.conf": [libdefaults] default_realm = PRUEBAS.LOCAL clockskew = 300 [realms] PRUEBAS.LOCAL = { kdc = IP_PDC default_domain = pruebas.local admin_server = IP_PDC } pruebas.local = { kdc = IP_PDC default_domain = pruebas.local admin_server = IP_PDC } pruebas = { kdc = IP_PDC default_domain = pruebas admin_server = IP_PDC } [logging] kdc = FILE:/var/log/krb5/krb5kdc.log admin_server = FILE:/var/log/krb5/kadmind.log default = SYSLOG:NOTICE:DAEMON [domain_realm] .pruebas = pruebas .pruebas.local = PRUEBAS.LOCAL [appdefaults] pam = { ticket_lifetime = 1d renew_lifetime = 1d forwardable = true proxiable = false retain_after_close = false minimum_uid = 0 try_first_pass = true } Crear tickets Kerberos kinit usuario@prueba.local Configurar samba, Editamos nano /etc/samba/smb.conf" quedando algo parecido a lo siguiente: [global] security = ADS netbios name = debian realm = PRUEBAS.LOCAL password server = ad.pruebas.local workgroup = PRUEBAS log level = 1 syslog = 0 idmap uid = 10000-29999 idmap gid = 10000-29999 winbind separator = + winbind enum users = yes winbind enum groups = yes winbind use default domain = yes template homedir = /home/%D/%U template shell = /bin/bash client use spnego = yes domain master = no server string = linux como cliente de AD encrypt passwords = yes Reiniciamos samba: /etc/init.d/samba restart Agregar Linux al dominio: net ads join -S ad.pruebas.local -U usuario Nos deberá mostrar un mensaje como el siguiente: Using short domain name -- PRUEBAS Joined 'DEBIAN' to realm 'PRUEBAS.LOCAL' Si nos llega a mostrar un error como el siguiente: usuario's password: [2007/08/25 16:58:33, 0] libsmb/cliconnect.c:cli_session_setup_spnego(785) Kinit failed: Clock skew too great Failed to join domain! El problema puede ser que la hora del equipo con Linux no este configurada correctamente. Kerberos es muy estricto con la hora. Para solucionarlo, corregimos la hora manualmente o ejecutamos el siguiente comando: # ntpdate nina.eccmg.cupet.cu Después de hacer esto ya se debería de poder unir al dominio. Resolver nombres de usuarios y grupos de dominio Editar "/etc/nsswitch.conf" y modificar las siguientes lineas dejándolas así: passwd: files winbind group: files winbind shadow: files winbind hosts: files dns winbind Gracias a las lineas anteriores los usuarios y grupos del dominio pueden ser resueltos. Reiniciamos winbind: # /etc/init.d/winbind restart Hacer pruebas para ver si todo salio bien Configurar la autenticación Para configurar el acceso a usuarios del dominio a nuestro Linux mediante el entorno gráfico hay que configurar pam. Para ello editamos los siguientes archivos y agregamos/modificamos las siguientes lineas: /etc/pam.d/common-account account sufficient pam_winbind.so account required pam_unix.so try_first_pass /etc/pam.d/common-auth auth sufficient pam_winbind.so auth required pam_unix.so nullok_secure try_first_pass /etc/pam.d/common-password password sufficient pam_winbind.so password required pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass /etc/pam.d/common-session session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 session sufficient pam_winbind.so session required pam_unix.so try_first_pass