7
Last modified 2 weeks ago Integración MS Windows Active Directory con Samba 3.0.X en CentOS GNU/Linux Versión: 1.0 Ultima edición: 04-Jul-2011 Descripción Esta guía 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 integración consiste en usar la información 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 integración 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 (más adelante lo integraremos también 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 Configuración 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 dirección IP corresponde a 10.2.1.234 (el sistema está virtualizado en Proxmox). Y el servidor MS Windows Active Directory se con nombre de máquina svradnie01.itransfer.mad con IP 10.2.1.11, que corresponde a la versión de MS Windows 2003 R2 (64 bits). Preparativos previos IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba 1 de 7 19/07/11 14:57

60330798 Integrar Samba 3 X Con Active Directory

  • Upload
    jam-pg

  • View
    168

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 60330798 Integrar Samba 3 X Con Active Directory

Last modified 2 weeks ago

Integración MS Windows Active Directory con Samba 3.0.X enCentOS GNU/Linux

Versión: 1.0Ultima edición: 04-Jul-2011

Descripción

Esta guía explica como integrar MS Windows 2003 (o superior) Active Directory con Samba3.0.X en GNU/Linux a un controlador de dominio existente.

La idea de integración consiste en usar la información de cuentas de usuario presentes en elservidor MS Windows Active Directoy en un sistema GNU/Linux, haciendo posible:

Acceder a las cuentas de usuario MS Windows Active Directory desde el sistemaGNU/Linux

Autenticar el sistema GNU/Linux usando cuentas de usuario MS Windows ActiveDirectory

La integración se hace mediante la suite de herramientas Samba disponible en GNU/Linux.

Prerequisitos

Es necesario instalar las siguientes dependencias:

SoftwareCentOS 4 o CentOS 5 (más adelante lo integraremos también en DebianGNU/Linux)Sistema operativo CentOS actualizadoServidor Windows Active DirectorySamba > 3.0.20Kerberos MIT/Heimdalntp

Cuenta de usuarioAcceso a root en el servidor LinuxUn usuario en MS Windows AD con permisos para unirse al Directorio ActivoCuentas de usuario creadas en el servidor MS Windows AD

Configuración de redEl servidor Linux debe estar registrado correctamente en el DNSNo hay cortafuegos que impida las conexiones hacia el servidor MS Windows o elcortafuegos está configurado correctamente

En este documento el sistema instalado es CentOS 5 y se llama samba02.itransfer.mad y sudirección IP corresponde a 10.2.1.234 (el sistema está virtualizado en Proxmox). Y elservidor MS Windows Active Directory se con nombre de máquina svradnie01.itransfer.madcon IP 10.2.1.11, que corresponde a la versión de MS Windows 2003 R2 (64 bits).

Preparativos previos

IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

1 de 7 19/07/11 14:57

Page 2: 60330798 Integrar Samba 3 X Con Active Directory

Primero debemos sincronizar la hora del servidor GNU/Linux con el servidor MS Windows ADpara ello debemos instalar ntp, por ejemplo via yum:

yum -y install ntp

Editar el archivo /etc/ntp.conf y cambiar las siguientes líneas:

server 0.centos.pool.ntp.org server 1.centos.pool.ntp.org server 2.centos.pool.ntp.org

Por esta única línea

server svradnie01.itransfer.mad

Activar y levantar el servicio

chkconfig --level 235 ntpd onservice ntpd start

Verificar el estado del archivo /etc/hosts, debe ser similar a:

::1 localhost.localdomain localhost127.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 sersimilar a:

search itransfer.mad nameserver 10.2.1.11

Configurar Kerberos

Modificar el archivo /etc/krb5.conf para que se vea así:

Nota.- Las mayúsculas 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

IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

2 de 7 19/07/11 14:57

Page 3: 60330798 Integrar Samba 3 X Con Active Directory

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 configuración de Kerberos obteniendo un ticket, lo hacemos mediante la ordenkinit. Debemos utilizar una cuenta con privilegios de Administrador o miembro del grupoAdmins. de dominio. En este ejemplo estamos usando la cuenta Administrador.

kinit -V [email protected]

Veremos en pantalla lo siguiente:

[root@samba02 etc]# kinit -V [email protected] for [email protected]: Authenticated to Kerberos v5

Si el registro (logon) fue exitoso no deberá mostrarse ningún error. Verificamos con klist queel cliente tiene un ticket asignado, simplemente escribimos:

klist

y mostrará en pantalla la siguiente salida:

[root@samba02 etc]# klist Ticket cache: FILE:/tmp/krb5cc_0Default principal: [email protected]

Valid starting Expires Service principal07/04/11 21:27:40 07/05/11 07:27:38 krbtgt/[email protected]

renew until 07/05/11 21:27:40

Kerberos 4 ticket cache: /tmp/tkt0klist: You have no tickets cached

En este punto la configuración de Kerberos es correcta. Podemos liberar el ticket otorgadousando la orden kdestroy.

Instalar y configurar Samba

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

IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

3 de 7 19/07/11 14:57

Page 4: 60330798 Integrar Samba 3 X Con Active Directory

yum -y install samba

Modificamos el archivo de configuración /etc/samba/smb.conf y añadimos estos parámetrosde configuración 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 opción 'netbios name' en Samba al menos que esenombre esté registrado correctamente en el servidor DNS.

Configurarmos entonces el inicio automático de los servicios y los lanzamos por primera vez:

chkconfig --level 235 winbind onchkconfig --level 235 smb onservice winbind start service smb start

Volvemos a sincronizar la hora vía Samba

net time -S svradnie01.itransfer.mad

Ahora unimos el servidor Samba GNU/Linux al dominio MS Windows AD con la siguienteorden:

net ads join -U Administrador

Veremos en la pantalla la siguiente salida

[root@samba02 etc]# net ads join -U AdministradorAdministrador's password: Using short domain name -- ITRANSFERJoined 'SAMBA02' to realm 'ITRANSFER.MAD'[root@samba02 etc]# net ads testjoinJoin is OK

Verificamos la operación con la orden

net ads testjoin

que mostrará la siguente salida

IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

4 de 7 19/07/11 14:57

Page 5: 60330798 Integrar Samba 3 X Con Active Directory

Join is OK

La siguiente orden nos mostrará información más amplia del dominio MS Windows ActiveDirectory

net ads info

algo similar a:

[root@samba02 etc]# net ads infoLDAP server: 10.2.1.11LDAP server name: svradnie01.itransfer.madRealm: ITRANSFER.MADBind Path: dc=ITRANSFER,dc=MADLDAP port: 389Server time: Mon, 04 Jul 2011 21:32:40 CESTKDC server: 10.2.1.11Server time offset: -7

Ahora Kerberos debe tener llaves guardadas en el archivo keytab, verificamos con lasiguiente orden:

klist -k

Que nos mostrará algo similar a:

[root@samba02 etc]# klist -kKeytab name: FILE:/etc/krb5.keytabKVNO Principal---- -------------------------------------------------------------------------- 2 host/[email protected] 2 host/[email protected] 2 host/[email protected] 2 host/[email protected] 2 host/[email protected] 2 host/[email protected] 2 [email protected] 2 [email protected] 2 [email protected]

Ahora podemos invocar la lista de usuarios y grupos de MS Windows Active Directory con lossiguientes comandos en la shell Linux:

wbinfo -u: lista de usuarios Windows ADwbinfo -g: lista de grupos Windows AD

Podemos también probar la autenticación, por ejemplo para el usuario achacon (debe ponerla contraseña correcta)

wbinfo -a achacon%<contraseña>plaintext password authentication succeeded challenge/response password authentication succeeded

Ahora los usuarios MS Windows deberían aparecer como usuarios Linux, verificar así

getent passwd

Nota.- Esto sólo funciona si en la configuración de Samba se definió:

IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

5 de 7 19/07/11 14:57

Page 6: 60330798 Integrar Samba 3 X Con Active Directory

winbind enum groups = yes winbind enum users = yes

En este punto la integración está prácticamente completa, ahora el siguiente paso serequerie si queremos usar cuentas de usuario MS Windows Active Directory para ingresar alsistema GNU/Linux, o dicho de otra manera, autenticar el sistema GNU/Linux usandocuentas de usuario en el servidor MS Windows Active Directory.

Autenticación con MS Windows Active Directory

Es necesario definir la configuración del método de autenticación en el sistema GNU/Linuxmodificando la configuración del archivo "system-auth" localizado en "/etc/pam.d/".

NOTA

Los cambios en el archivo mencionado son muy delicados. Una error en este puntoy es probable que el sistema GNU/Linux ya no sea accesible para todos losusaurios (incluído el root). Se sugiere iniciar otras sesiones como root y mantenerabierta las sesiones hasta que las pruebas de la nueva configuración sean exitosas.

El archivo "/ect/pam.d/system-auth" debería tener la siguiente nueva configuración:

auth required /lib64/security/$ISA/pam_env.soauth sufficient /lib64/security/$ISA/pam_unix.so likeauth nullokauth sufficient /lib64/security/$ISA/pam_krb5.soauth required /lib64/security/$ISA/pam_deny.so

account sufficient /lib64/security/$ISA/pam_krb5.soaccount required /lib64/security/$ISA/pam_unix.soaccount sufficient /lib64/security/$ISA/pam_succeed_if.so uid < 100 quietaccount required /lib64/security/$ISA/pam_deny.so

password requisite /lib64/security/$ISA/pam_cracklib.so retry=3password sufficient /lib64/security/$ISA/pam_unix.so nullok use_authtok md5 shadowpassword required /lib64/security/$ISA/pam_deny.so

session required /lib64/security/$ISA/pam_limits.sosession required /lib64/security/$ISA/pam_unix.so

Luego de esta modificación es posible ingresar al servidor GNU/Linux con una cuenta deusuario MS Windows Active Directory. No hay que preocuparse si no es posible abrir unasesión SSH (es preciso recordar que los usuarios no tienen shell, escogimos /bin/false)

Por ejemplo si algún usuario de MS Windows Active Directory intenta ingresar vía SSH alsistema GNU/Linux vera algo similar a:

ssh [email protected]@10.2.1.234's password: Last login: Mon Jul 4 23:23:07 2011 from 192.168.2.190Connection to 10.2.1.234 closed.

En los logs del sistema GNU/Linux veremos la explicación de ese rechazo de logueo:

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

IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

6 de 7 19/07/11 14:57

Page 7: 60330798 Integrar Samba 3 X Con Active Directory

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

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 [email protected]@10.2.1.234's password: Last login: Mon Jul 4 22:28:30 2011 from 192.168.2.190[root@samba02 ~]#

Prácticamente esta terminada la configuración e integración entre MS Windows ActiveDirectory y Samba sobre GNU/Linux. Solo restaría crear los directorios de usuario de sistemaMS Windows Active Directory en el sistema GNU/Linux, hay dos opciones:

Crearlos manualmente bajo /home/DOMINIO/Crearlos automáticamente cuando el usuario ingresa

Si queremos escoger la segunda opción (por supuesto sin dejar al margen la primera)debemos editar nuevamente el archivo "/etc/pam.d/system-auth" y añadir la siguiente línea,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/Linuxejecutamos en una shell:

chkconfig --level 235 smb on chkconfig --level 235 winbind on chkconfig --level 235 ntpd on

Llegados a este punto, la configuración e integración está completa.

IntegraADconSamba – Documentacion tecnico | i-transfer http://10.2.1.3/trac/docutec/wiki/IntegraADconSamba

7 de 7 19/07/11 14:57