You are on page 1of 7

IntegraADconSamba Documentacion tecnico | i-transfer

http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

Last modified 2 weeks ago

Integracin MS Windows Active Directory con Samba 3.0.X en CentOS GNU/Linux


Versin: 1.0 Ultima edicin: 04-Jul-2011

Descripcin
Esta gua explica como integrar MS Windows 2003 (o superior) Active Directory con Samba 3.0.X en GNU/Linux a un controlador de dominio existente. La idea de integracin consiste en usar la informacin de cuentas de usuario presentes en el servidor MS Windows Active Directoy en un sistema GNU/Linux, haciendo posible: Acceder a las cuentas de usuario MS Windows Active Directory desde el sistema GNU/Linux Autenticar el sistema GNU/Linux usando cuentas de usuario MS Windows Active Directory La integracin se hace mediante la suite de herramientas Samba disponible en GNU/Linux.

Prerequisitos

Es necesario instalar las siguientes dependencias: Software CentOS 4 o CentOS 5 (ms adelante lo integraremos tambin en Debian GNU/Linux) Sistema operativo CentOS actualizado Servidor Windows Active Directory Samba > 3.0.20 Kerberos MIT/Heimdal ntp Cuenta de usuario Acceso a root en el servidor Linux Un usuario en MS Windows AD con permisos para unirse al Directorio Activo Cuentas de usuario creadas en el servidor MS Windows AD Configuracin de red El servidor Linux debe estar registrado correctamente en el DNS No hay cortafuegos que impida las conexiones hacia el servidor MS Windows o el cortafuegos est configurado correctamente En este documento el sistema instalado es CentOS 5 y se llama samba02.itransfer.mad y su direccin IP corresponde a 10.2.1.234 (el sistema est virtualizado en Proxmox). Y el servidor MS Windows Active Directory se con nombre de mquina svradnie01.itransfer.mad con IP 10.2.1.11, que corresponde a la versin de MS Windows 2003 R2 (64 bits).

Preparativos previos

1 de 7

19/07/11 14:57

IntegraADconSamba Documentacion tecnico | i-transfer

http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

Primero debemos sincronizar la hora del servidor GNU/Linux con el servidor MS Windows AD para ello debemos instalar ntp, por ejemplo via yum: yum -y install ntp Editar el archivo /etc/ntp.conf y cambiar las siguientes lneas: server 0.centos.pool.ntp.org server 1.centos.pool.ntp.org server 2.centos.pool.ntp.org Por esta nica lnea server svradnie01.itransfer.mad Activar y levantar el servicio chkconfig --level 235 ntpd on service ntpd start Verificar el estado del archivo /etc/hosts, debe ser similar a: ::1 localhost.localdomain localhost 127.0.0.1 localhost.localdomain localhost # Auto-generated hostname. Please do not remove this comment. 10.2.1.234 samba02.itransfer.mad samba02 Configurar correctamente dominio y el servidor DNS . El archivo /etc/resolv.conf debe ser similar a: search itransfer.mad nameserver 10.2.1.11

Configurar Kerberos

Modificar el archivo /etc/krb5.conf para que se vea as: Nota.- Las maysculas son importantes [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = ITRANSFER.MAD dns_lookup_realm = false dns_lookup_kdc = false default_keytab_name = FILE:/etc/krb5.keytab [realms] ITRANSFER.MAD = { kdc = svradnie01.itransfer.mad:88

2 de 7

19/07/11 14:57

IntegraADconSamba Documentacion tecnico | i-transfer

http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

admin_server = svradnie01.itransfer.mad:749 default_domain = itransfer.mad } [domain_realm] .ITRANSFER.MAD = ITRANSFER.MAD ITRANSFER.MAD = ITRANSFER.MAD [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } Probamos la configuracin de Kerberos obteniendo un ticket, lo hacemos mediante la orden kinit. Debemos utilizar una cuenta con privilegios de Administrador o miembro del grupo Admins. de dominio. En este ejemplo estamos usando la cuenta Administrador. kinit -V Administrador@ITRANSFER.MAD Veremos en pantalla lo siguiente: [root@samba02 etc]# kinit -V Administrador@ITRANSFER.MAD Password for Administrador@ITRANSFER.MAD: Authenticated to Kerberos v5 Si el registro (logon) fue exitoso no deber mostrarse ningn error. Verificamos con klist que el cliente tiene un ticket asignado, simplemente escribimos: klist y mostrar en pantalla la siguiente salida: [root@samba02 etc]# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: Administrador@ITRANSFER.MAD Valid starting Expires Service principal 07/04/11 21:27:40 07/05/11 07:27:38 krbtgt/ITRANSFER.MAD@ITRANSFER.MAD renew until 07/05/11 21:27:40 Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached En este punto la configuracin de Kerberos es correcta. Podemos liberar el ticket otorgado usando la orden kdestroy.

Instalar y configurar Samba

Debemos instalar los siguientes paquetes de samba: samba, samba-common, samba-client. Va yum o bien compilarlo desde source code (fuentes)

3 de 7

19/07/11 14:57

IntegraADconSamba Documentacion tecnico | i-transfer

http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

yum -y install

samba

Modificamos el archivo de configuracin /etc/samba/smb.conf y aadimos estos parmetros de configuracin necesarios para nuestro escenario: [global] security = ADS netbios name = samba01 realm = ITRANSFER.MAD password server = svradnie01.itransfer.mad workgroup = ITRANSFER 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/false client use spnego = yes domain master = no server string = CentOS ADS encrypt passwords = yes Nota.- NO ES CONVENIENTE UTILIZAR la opcin 'netbios name' en Samba al menos que ese nombre est registrado correctamente en el servidor DNS. Configurarmos entonces el inicio automtico de los servicios y los lanzamos por primera vez: chkconfig --level 235 winbind on chkconfig --level 235 smb on service winbind start service smb start Volvemos a sincronizar la hora va Samba net time -S svradnie01.itransfer.mad Ahora unimos el servidor Samba GNU/Linux al dominio MS Windows AD con la siguiente orden: net ads join -U Administrador Veremos en la pantalla la siguiente salida [root@samba02 etc]# net ads join -U Administrador Administrador's password: Using short domain name -- ITRANSFER Joined 'SAMBA02' to realm 'ITRANSFER.MAD' [root@samba02 etc]# net ads testjoin Join is OK Verificamos la operacin con la orden net ads testjoin que mostrar la siguente salida

4 de 7

19/07/11 14:57

IntegraADconSamba Documentacion tecnico | i-transfer

http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

Join is OK La siguiente orden nos mostrar informacin ms amplia del dominio MS Windows Active Directory net ads info algo similar a: [root@samba02 etc]# net ads info LDAP server: 10.2.1.11 LDAP server name: svradnie01.itransfer.mad Realm: ITRANSFER.MAD Bind Path: dc=ITRANSFER,dc=MAD LDAP port: 389 Server time: Mon, 04 Jul 2011 21:32:40 CEST KDC server: 10.2.1.11 Server time offset: -7 Ahora Kerberos debe tener llaves guardadas en el archivo keytab, verificamos con la siguiente orden: klist -k Que nos mostrar algo similar a: [root@samba02 etc]# klist -k Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------2 host/samba02.itransfer.mad@ITRANSFER.MAD 2 host/samba02.itransfer.mad@ITRANSFER.MAD 2 host/samba02.itransfer.mad@ITRANSFER.MAD 2 host/samba02@ITRANSFER.MAD 2 host/samba02@ITRANSFER.MAD 2 host/samba02@ITRANSFER.MAD 2 SAMBA02$@ITRANSFER.MAD 2 SAMBA02$@ITRANSFER.MAD 2 SAMBA02$@ITRANSFER.MAD Ahora podemos invocar la lista de usuarios y grupos de MS Windows Active Directory con los siguientes comandos en la shell Linux: wbinfo -u: lista de usuarios Windows AD wbinfo -g: lista de grupos Windows AD Podemos tambin probar la autenticacin, por ejemplo para el usuario achacon (debe poner la contrasea correcta) wbinfo -a achacon%<contrasea> plaintext password authentication succeeded challenge/response password authentication succeeded Ahora los usuarios MS Windows deberan aparecer como usuarios Linux, verificar as getent passwd Nota.- Esto slo funciona si en la configuracin de Samba se defini:

5 de 7

19/07/11 14:57

IntegraADconSamba Documentacion tecnico | i-transfer

http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

winbind enum groups = yes winbind enum users = yes En este punto la integracin est prcticamente completa, ahora el siguiente paso se requerie si queremos usar cuentas de usuario MS Windows Active Directory para ingresar al sistema GNU/Linux, o dicho de otra manera, autenticar el sistema GNU/Linux usando cuentas de usuario en el servidor MS Windows Active Directory.

Autenticacin con MS Windows Active Directory

Es necesario definir la configuracin del mtodo de autenticacin en el sistema GNU/Linux modificando la configuracin del archivo "system-auth" localizado en "/etc/pam.d/". NOTA Los cambios en el archivo mencionado son muy delicados. Una error en este punto y es probable que el sistema GNU/Linux ya no sea accesible para todos los usaurios (includo el root). Se sugiere iniciar otras sesiones como root y mantener abierta las sesiones hasta que las pruebas de la nueva configuracin sean exitosas. El archivo "/ect/pam.d/system-auth" debera tener la siguiente nueva configuracin: auth auth auth auth account account account account password password password session session required sufficient sufficient required sufficient required sufficient required requisite sufficient required required required /lib64/security/$ISA/pam_env.so /lib64/security/$ISA/pam_unix.so likeauth nullok /lib64/security/$ISA/pam_krb5.so /lib64/security/$ISA/pam_deny.so /lib64/security/$ISA/pam_krb5.so /lib64/security/$ISA/pam_unix.so /lib64/security/$ISA/pam_succeed_if.so uid < 100 quiet /lib64/security/$ISA/pam_deny.so /lib64/security/$ISA/pam_cracklib.so retry=3 /lib64/security/$ISA/pam_unix.so nullok use_authtok md5 shadow /lib64/security/$ISA/pam_deny.so /lib64/security/$ISA/pam_limits.so /lib64/security/$ISA/pam_unix.so

Luego de esta modificacin es posible ingresar al servidor GNU/Linux con una cuenta de usuario MS Windows Active Directory. No hay que preocuparse si no es posible abrir una sesin SSH (es preciso recordar que los usuarios no tienen shell, escogimos /bin/false) Por ejemplo si algn usuario de MS Windows Active Directory intenta ingresar va SSH al sistema GNU/Linux vera algo similar a: ssh achacon@10.2.1.234 achacon@10.2.1.234's password: Last login: Mon Jul 4 23:23:07 2011 from 192.168.2.190 Connection to 10.2.1.234 closed. En los logs del sistema GNU/Linux veremos la explicacin de ese rechazo de logueo: Jul

5 14:03:15 samba02 sshd[812]: pam_krb5[812]: authentication succeeds for 'achacon

6 de 7

19/07/11 14:57

IntegraADconSamba Documentacion tecnico | i-transfer

http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

Jul Jul Jul

5 14:03:15 samba02 sshd[812]: Accepted password for achacon from 10.2.1.173 port 5 14:03:15 samba02 sshd[812]: pam_unix(sshd:session): session opened for user ach 5 14:03:15 samba02 sshd[812]: pam_unix(sshd:session): session closed for user ach

Si un usuario no tiene shell de sistema (/bin/bash o bien /bin/sh) no podr acceder por SSH, el paso siguiente no obstante es verificar que podemos ingresar como root ssh root@10.2.1.234 root@10.2.1.234's password: Last login: Mon Jul 4 22:28:30 2011 from 192.168.2.190 [root@samba02 ~]# Prcticamente esta terminada la configuracin e integracin entre MS Windows Active Directory y Samba sobre GNU/Linux. Solo restara crear los directorios de usuario de sistema MS Windows Active Directory en el sistema GNU/Linux, hay dos opciones: Crearlos manualmente bajo /home/DOMINIO/ Crearlos automticamente cuando el usuario ingresa Si queremos escoger la segunda opcin (por supuesto sin dejar al margen la primera) debemos editar nuevamente el archivo "/etc/pam.d/system-auth" y aadir la siguiente lnea, en la parte final que corresponde a las sesiones session required /lib64/security/pam_mkhomedir.so Para asegurarnos que todos los servicios arranquen al iniciar el sistema CentOS GNU/Linux ejecutamos en una shell: chkconfig --level 235 smb on chkconfig --level 235 winbind on chkconfig --level 235 ntpd on Llegados a este punto, la configuracin e integracin est completa.

7 de 7

19/07/11 14:57

You might also like