Unir Debian a un dominio de Active Directory

01.--> Introducción

A continuación se presenta una guía de todos los pasos que seguí para unir Debian GNU/Linux a un dominio de Active Directory de Windows Server 2003. Para referirnos al equipo Debian GNU/LINUX, de aquí en adelante lo llamaremos "Linux", al equipo con Windows Server 2003 con Active Directory de aquí en lo adelante lo llamaremos "Server".

02.-->Información con la que contamos

Contamos con los siguientes datos:

	- Dominio: 			pruebas.local
	- Nombre del Server AD: 	ad = ad.pruebas.local
	- IP del Server AD: 		192.168.1.254
	- Nombre del Cliente Linux: 	debian
	- Ip del Cliente Linux: 	192.168.1.20


NOTA: En los archivos de configuración utilizaremos estos datos por lo que usted deberá sustituirlos por los apropiados.

03.--> Configurar parámetros de red

Antes de continuar asegúrese de que el equipo con Linux cuente con la siguiente configuración:

	- IP del mismo rango que el Server Active Directory
	- DNS utilizado por el Server Active Directory
	- Debe responder el ping a ad.pruebas.local

04.--> Instalar la paquetería necesaria:

 # aptitude install samba smbclient winbind krb5-user krb5-config 

05.--> Resolver equipos de la red

Agregar la IP de nuestro equipo Linux y la del Server Active Directory a "/etc/hosts":

       192.168.1.20    debian.pruebas.local    debian
       192.168.1.254   ad.pruebas.local      	ad

06.--> 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 = 192.168.1.254
  		default_domain = pruebas.local
  		admin_server = 192.168.1.254
  	}
	pruebas.local = {
  		kdc = 192.168.1.254
	  	default_domain = pruebas.local
  		admin_server = 192.168.1.254
  	}
  	pruebas = {
  		kdc = 192.168.1.254
	  	default_domain = pruebas
  		admin_server = 192.168.1.254
  	}
  
[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
  	}

07.--> Crear tickets Kerberos

Para crear los tickets kerberos ejecutamos el siguiente comando:

 # kinit administrador@pruebas.local  

Nos pedirá el password de la cuenta administrador del dominio. Puede utilizarse cualquier cuenta con permisos administrativos en el dominio.

08.--> Configurar samba

Editamos "/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

##compartir el home del usuario solo para él cuando se encuentre en otro equipo de la red
  [homes]
  	comment = Home Directories
  	valid users = %S
  	browseable = No
  	read only = No
  	inherit acls = Yes
  [profiles]
  	comment = Network Profiles Service
  	path = %H
  	read only = No
  	store dos attributes = Yes
  	create mask = 0600
  	directory mask = 0700
##compartir una carpeta para todos los usuarios
  [users]
  	comment = All users
  	path = /alguna/carpeta
  	read only = No
  	inherit acls = Yes
  	veto files = /aquota.user/groups/shares/
##compartir carpeta solo para el usuario spruebas
[UnUsuario]
  	comment = prueba con usuario del dominio
  	inherit acls = Yes
  	path = /ruta/de/alguna/carpeta/
  	read only = No
        available = Yes
  	browseable = Yes
  	valid users = pruebas+spruebas

09.--> Reiniciamos samba:

	# testparm
	# /etc/init.d/samba restart

10.--> Agregar Linux al dominio:

 	# net ads join -S ad.pruebas.local  -U administrador

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:

Administrador'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 pool.ntp.org

Después de hacer esto ya se debería de poder unir al dominio.

11.--> 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.

12.--> Reiniciamos winbind:

	 # /etc/init.d/winbind restart

13.0--> Hacer pruebas para ver si todo salio bien

13.1.--> Verificar la integración del dominio:

- "net rpc testjoin" muestra si esta correctamente integrada al dominio:

	Join to 'PRUEBAS' is OK

- "net ads info" muestra información del dominio:

	LDAP server: 192.168.1.254
	LDAP server name: ad.pruebas.local
	Realm: PRUEBAS.LOCAL
	Bind Path: dc=PRUEBAS,dc=LOCAL
	LDAP port: 389
	Server time: dom, 26 ago 2007 14:57:04 MDT
	KDC server: 192.168.1.254
	Server time offset: 11

- "net rpc info -U Usuario_de_dominio" muestra el dominio al que pertenece,
numero de usuarios, grupos, etc:

	Domain Name: PRUEBAS
	Domain SID: x-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx
	Sequence number: xx
	Num users: xx
	Num domain groups: xx
	Num local groups: xx

13.2.--> Verificar que winbind este funcionando:

- "wbinfo -u" lista usuarios del dominio.

- "wbinfo -g" lista grupos del dominio.

- "getent passwd" muestra usuarios locales y del dominio.

- "getent group" muestra grupos locales y del dominio.


* "su usuario-de-dominio" nos convertimos en usuario-de-dominio.

Si todo lo anterior funciona vamos por buen camino.

14.--> 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

El modulo "pam_winbind.so" le indica a pam que los usuarios y grupos los obtenga mediante winbind. El modulo "pam_mkhomedir.so" nos crea el directorio home del usuario en caso de no existir.

15.--> Creamos el directorio "/home/PRUEBAS" (Nombre del dominio en MAYÚSCULA) que es donde tendrán sus home los usuarios:

	# mkdir /home/PRUEBAS

16.--> Comentarios finales

- Ya podemos iniciar sesión con usuarios locales o del dominio de Active Directory en nuestro Linux.

- Para iniciar sesión con un usuario del dominio se hace tecleando solo el nombre de usuario o especificando el dominio+usuario(ejemplo: pruebas+usuariopruebas).

- La guía anterior ha sido probada con éxito en un equipo con Debian GNU/Linux como cliente y en un Windows Server 2003 con Active Directory.

- En el WinServer2003 no fue necesario instalar ninguna aplicación para que en el Administrador de
"Usuarios y equipos de Active Directory" en las propiedades de un usuario aparezca la pestaña "Atributos UNIX". La pestaña "Atributos UNIX" no es necesaria.

- No fue necesario configurar nada sobre LDAP.

17.--> FUENTE:

http://www.es.opensuse.org/Active_Directory_Integracion
http://www.ssl.ull.es/node/68
http://adminspotting.net/articles/windows/linux-and-active-directory.htm...

Enviado por Otilio el 7 Septiembre, 2007 - 18:40.

Buen tutorial, bien explicado y detallado.
Saludos scs_calleros

Enviado por cejodrake el 11 Septiembre, 2007 - 16:35.

Respuesta a Buen tutorial, bien explicado y

hey hize todo lo que apece en el tutorial pero al momento de loguiarme me dice q loging faild ,,,, q puede ser ? y ahora ni con los usuarios locales puedo entrar

saludos

Enviado por cejodrake el 11 Septiembre, 2007 - 17:31.

Respuesta a hey hize todo lo que

puedo regresar a mi configuracion anterior ???

Enviado por scs_calleros el 11 Septiembre, 2007 - 19:15.

Respuesta a puedo regresar a mi configuracion

Si seguiste los pasos tal cual se mencionan deberás poderte loguear. Haz todas las pruebas que se indican en el paso 13. Si todo está correcto probablemente el problema lo tengas en la configuración de pam.

Para regresar a como estabas antes inicia con un liveCD y regresa los archivos de pam a como los tenias antes.

NOTA: Esta guía la probé en dos computadoras con Debian Etch y funciona perfecto.
Saludos.

---
Debian -> La mejor distro

Enviado por cejodrake el 11 Septiembre, 2007 - 20:37.

Respuesta a Si seguiste los pasos tal

todo hize lo del paso 13 y me muestra todo los grupos y los usuarios algo q no tengo claro es para inciciar secion

se coloca el sigo + o / entre el dominio y el usuario osea aso

ejemplo+usuario.ejemplo o solo
ejemplo+usuario +ejemplo ??? ahi es q no entiendo esa parte man

saludos

Enviado por cejodrake el 11 Septiembre, 2007 - 20:38.

Respuesta a todo hize lo del paso

se me olvidaba algo y si no tengo Live cd puedo con los DVD q tengo de Etch ???

Enviado por scs_calleros el 11 Septiembre, 2007 - 22:03.

Respuesta a todo hize lo del paso

También puedes iniciar sesión con el usuario sin especificar el dominio. Ejemplo:
- Dominio: ejemplo.com
- Usuario del dominio: pruebas
En gdm tecleas "pruebas" o "ejemplo+pruebas" y su respectivo password. Es importante crear la carpeta "/home/DOMINIO/" ya que pam solo crea la carpeta "/home/DOMINIO/usuario" si existe la carpeta "/home/DOMINIO/".
Saludos.

---
Debian -> La mejor distro

Enviado por cejodrake el 11 Septiembre, 2007 - 22:50.

Respuesta a También puedes iniciar sesión con

habia q creear la carpeta del usuario antes de ingresar ??? por q yo solamente cree la del dominio ejemplo
mi dominio es : cejo
mi usuario es cejodrake

entonces en home/cejo tenia q crear la carpeta cejodrake??? o no es necesario ???

Enviado por cejodrake el 14 Septiembre, 2007 - 15:05.

Respuesta a habia q creear la carpeta

Hola que tal ,, ya puede hacer que se me autenticara , tube un problema en lo que es el Kbr5.conf , pero listo es de mucha utilidad el manuel

saludos a todos

Enviado por cejodrake el 14 Septiembre, 2007 - 20:08.

Respuesta a Hola que tal ,, ya

bueno amigo , fijate q estado probando correo un server mail con cyrus ,, pero creo q tengo un error al momento de crear los usuarios en curys ,, sera por q tengo la autenticacion con winbin ??? , me gustaria q me explicaras un poco por q a parte de eso cree un post aqui con el problema