Unir cliente Linux a un Dominio WindowsContenidoDescripción de paquetes de instalación.......................................
Kerberos es un protocolo de seguridad creado por MIT (Instituto Tecnológico deMassachusetts) que usa una criptografía de c...
4.2. Mensaje B: Ticket-Granting Ticket (que incluye el ID de cliente, la dirección de red         del cliente, el período ...
WinbindEs un componente de la suite de programas Samba que resuelve los problemas de iniciode sesión unificados. Winbind u...
PAMPAM (Pluggable Authentication Module) no es un modelo de autenticación en sí, sino quese trata de un mecanismo que prop...
Hostname1. Verifique la configuración del hostname:   1.1. Edite el archivo /etc/sysconfig/network y verifique el hostname...
Configuración de KerberosModificar el archivo krb5.conf, ubicado en "/etc", adecuándolo al caso particular decada dominio,...
minúsculas y mayúsculas) o,    Porque la diferencia de hora entre el servidor kerberos y nuestra maquina supera los 5    m...
Otra manera de realizar lo anterior es como sigue:# net join -S PDC -U AdministradorEl usuario tras el -U puede ser cualqu...
Num domain groups: xx      Num local groups: xxVerificar winbind"wbinfo   -u" lista usuarios del dominio."wbinfo   -g" lis...
Upcoming SlideShare
Loading in...5
×

Unir cliente linux a Directorio Activo Windows 2003 Server

7,325

Published on

Unir cliente Linux (Centos 5.5) a un Dominio Windows 2003 Server

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,325
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
324
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Unir cliente linux a Directorio Activo Windows 2003 Server"

  1. 1. Unir cliente Linux a un Dominio WindowsContenidoDescripción de paquetes de instalación............................................................................... 1 Kerberos ........................................................................................................................... 1 Como funciona ............................................................................................................. 2 Samba .............................................................................................................................. 3 Winbind ............................................................................................................................ 4 PAM.................................................................................................................................. 5Escenario ............................................................................................................................. 5Pre-requisitos ....................................................................................................................... 5 DNS - Domain Name System ........................................................................................... 5 NTP .................................................................................................................................. 5 Hostname ......................................................................................................................... 6 Configurar parámetros de red .......................................................................................... 6Proceso de Instalación......................................................................................................... 6 Instalando Kerberos ......................................................................................................... 6 Configuración de Kerberos ........................................................................................... 7 Instalando Samba ............................................................................................................ 8 Resolver nombres de usuarios y grupos de dominio .................................................... 9Pruebas ............................................................................................................................... 9 Verificar la integración del dominio ................................................................................... 9 Verificar winbind ............................................................................................................. 10Referencias ........................................................................................................................ 10Descripción de paquetes de instalaciónKerberosEs un protocolo de autenticación de redes de ordenador que permite a dos computadoresen una red insegura demostrar su identidad mutuamente de manera segura. Susdiseñadores se concentraron primeramente en un modelo de cliente-servidor, y brindaautenticación mutua: tanto cliente como servidor verifican la identidad uno del otro. Losmensajes de autenticación están protegidos para evitar eavesdropping y ataques deReplay. 1
  2. 2. Kerberos es un protocolo de seguridad creado por MIT (Instituto Tecnológico deMassachusetts) que usa una criptografía de claves simétricas para validar usuarios conlos servicios de red, evitando así tener que enviar contraseñas a través de la red. Alvalidar los usuarios para los servicios de la red por medio de Kerberos, se frustran losintentos de usuarios no autorizados que intentan interceptar contraseñas en la red.Este se basa en el Protocolo de Needham-Schroeder. Usa un tercero de confianza,denominado "centro de distribución de claves" (KDC, por sus siglas en inglés: KeyDistribution Center), el cual consiste de dos partes lógicas separadas: un "servidor deautenticación" (AS o Authentication Server) y un "servidor emisor de tiquets" (TGS o TicketGranting Server). Kerberos trabaja sobre la base de "tickets", los cuales sirven parademostrar la identidad de los usuarios.Mantiene una base de datos de claves secretas; cada entidad en la red —sea cliente oservidor— comparte una clave secreta conocida únicamente por él y Kerberos. Elconocimiento de esta clave sirve para probar la identidad de la entidad. Para unacomunicación entre dos entidades, Kerberos genera una clave de sesión, la cual puedenusar para asegurar sus interacciones.Como funcionaA continuación se describe someramente el protocolo. Se usaran las siguientesabreviaturas: AS = Authentication Server TGS = Ticket Granting Server SS = Service Server.En resumen el funcionamiento esel siguiente: el cliente seautentica a sí mismo contra el AS,así demuestra al TGS que estáautorizado para recibir un ticketde servicio (y lo recibe) y yapuede demostrar al SS que hasido aprobado para hacer uso delservicio kerberizado.En más detalle:1. Un usuario ingresa su nombre. de usuario y password en el cliente.2. El cliente genera una clave hash a partir del password y la usará como la clave secreta del cliente.3. El cliente envía un mensaje en texto plano al AS solicitando servicio en nombre del usuario. Nota: ni la clave secreta ni el password son enviados, solo la petición del servicio.4. El AS comprueba si el cliente está en su base de datos. Si es así, el AS genera la clave secreta utilizando la función hash con la password del cliente encontrada en su base de datos. Entonces envía dos mensajes al cliente: 4.1. Mensaje A: Client/TGS session key cifrada usando la clave secreta del usuario 2
  3. 3. 4.2. Mensaje B: Ticket-Granting Ticket (que incluye el ID de cliente, la dirección de red del cliente, el período de validez y el Client/TGS session key) cifrado usando la clave secreta del TGS.5. Una vez que el cliente ha recibido los mensajes, descifra el mensaje A para obtener el client/TGS session key. Esta session key se usa para las posteriores comunicaciones con el TGS. (El cliente no puede descifrar el mensaje B pues para cifrar éste se ha usado la clave del TGS). En este momento el cliente ya se puede autenticar contra el TGS.6. Entonces el cliente envía los siguientes mensajes al TGS: 6.1. Mensaje C: Compuesto del Ticket-Granting Ticket del mensaje B y el ID del servicio solicitado. 6.2. Mensaje D: Autenticador (compuesto por el ID de cliente y una marca de tiempo), cifrado usando el client/TGS session key.7. Cuando recibe los mensajes anteriores, el TGS descifra el mensaje D (autenticador) usando el client/TGS session key y envía los siguientes mensajes al cliente: 7.1. Mensaje E: Client-to-server ticket (que incluye el ID de cliente, la dirección de red del cliente, el período de validez y una Client/Server session key) cifrado usando la clave secreta del servicio. 7.2. Mensaje F: Client/server session key cifrada usando el client/TGS session key.8. Cuando el cliente recibe los mensajes E y F, ya tiene suficiente información para autenticarse contra el SS. El cliente se conecta al SS y envía los siguientes mensajes: 8.1. Mensaje E del paso anterior. 8.2. Mensaje G: un nuevo Autenticador que incluye el ID de cliente, una marca de tiempo y que está cifrado usando el client/server session key.9. El SS descifra el ticket usando su propia clave secreta y envía el siguiente mensaje al cliente para confirmar su identidad: 9.1. Mensaje H: la marca de tiempo encontrada en el último Autenticador recibido del cliente más uno, cifrado el client/server session key.10. El cliente descifra la confirmación usando el client/server session key y chequea si la marca de tiempo está correctamente actualizada. Si esto es así, el cliente confiará en el servidor y podrá comenzar a usar el servicio que este ofrece.11. El servidor provee del servicio al cliente.SambaEs una implementación libre del protocolo de archivos compartidos de Microsoft Windows(antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipoUNIX. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix engeneral se vean como servidores o actúen como clientes en redes de Windows. Sambatambién permite validar usuarios haciendo de Controlador Principal de Dominio (PDC),como miembro de dominio e incluso como un dominio Active Directory para redesbasadas en Windows; aparte de ser capaz de servir colas de impresión, directorioscompartidos y autentificar con su propio archivo de usuarios.SAMBA nos ofrece múltiples posibilidades: Acceso a recursos de red (servidores de archivos, impresoras, etc.). Autenticación y Control de Accesos. Resolución de Nombres. Publicación de Servicios. 3
  4. 4. WinbindEs un componente de la suite de programas Samba que resuelve los problemas de iniciode sesión unificados. Winbind usa una implementación UNIX de las llamdas RPC deMicrosoft, PAM (Pluggable Authentication Modules), y el servicio de nombres (NSS, NameService Switch) para permitir a los usuarios de dominios NT aparecer y operar comousuarios UNIX en una máquina UNIX.Winbind proporciona tres funciones separadas: Autenticación para credenciales de usuario (vía PAM). Resolución de identidad (vía NSS). Winbind mantiene una base de datos llamada winbind_idmap.tdb en lacual guarda las asociaciones entre UNIX UIDs / GIDs y NT SIDs. Esta asociación se usa sólo para usuario y grupos que no tienen unos UID/GID locales.Guarda los UID/GID del rango uid/gid de idmap que ha asociado al SID NT. Si se ha especificado el backend idmap como ldapsam:url, entonces en lugar de usar de usar la asociación local Winbind la obtendrá de la base de datos LDAP.Si winbind no está en ejecución, smbd (que llama a winbind) tendrá que usar sólo lainformación local de /etc/passwd y de /etc/group no podrá realizar asociacionesdinámicas.Winbind unifica la gestión de cuentas UNIX y Windows NT permitiendo a una máquinaUnix volverse un miembro completo de un dominio NT. Una vez hecho, la máquina Unixverá a los usuarios y grupos NT como si fueran usuarios y grupos nativos permitiendousar el dominio NT usarse de la misma forma que se usa NIS+ en entorno exclusivosUNIX.El resultado final es que cuando cualquier programa en la máquina Unix solicita al sistemaoperativo que busque un nombre usuario o un grupo, la consulta se resuelve preguntandoal controlador de dominio NT del dominio correspondiente. Como winbind enlaza con elsistema operativo a bajo nivel (vía módulo de resolución NSS de la biblioteca C), laredirección al controlador de dominio NT es completamente transparente.Los usuarios de la máquina Unix pueden utilizar los nombres de usuarios y grupos NTcomo si fueran nombres nativos. Se pueden cambiar propietarios de ficheros para quesean propiedad de usuarios de usuarios del dominio NT o incluso iniciar una sesión en lamáquina Unix y lanzar una sesión X-Window como miembro del dominio.La única indicación obvia de que se está usando Winbind que los nombres de usuarios ygrupos tienen la forma DOMAINuser and DOMAINgroup. Esto es necesario para permitira Winbind determinar a qué controlador de dominio hay que redireccionar para labúsqueda particular y qué dominios de confianza se están referenciando.Adicionalmente, Winbind proporciona un servicio de autenticación que engancha con elsistema PAM (Pluggable Authentication Modules) (PAM) para proporcionar autenticaciónvía dominio NT a cualquier aplicación con soporte PAM. Esta capacidad resuelve elproblema de sincronizar las contraseñas entre sistema ya que todas las contraseñas sealmacenan en una sola ubicación, en el controlador de dominio. 4
  5. 5. PAMPAM (Pluggable Authentication Module) no es un modelo de autenticación en sí, sino quese trata de un mecanismo que proporciona una interfaz entre las aplicaciones de usuario ydiferentes métodos de autenticación, tratando de esta forma de solucionar uno de losproblemas clásicos de la autenticación de usuarios: el hecho de que una vez que se hadefinido e implantado cierto mecanismo en un entorno, es difícil cambiarlo. Mediante PAMpodemos comunicar a nuestra aplicaciones con los métodos de autenticación quedeseemos de una forma transparente, lo que permite integrar las utilidades de un sistemaUnix clásico (login, ftp, telnet...) con esquemas diferentes del habitual password: claves deun solo uso, biométricos, tarjetas inteligentes y otros.EscenarioNombre del dominio MIDOMINIO.COM.VENombre del server AD ad = miserver.midominio.com.veIP del server AD 192.168.0.1Nombre del cliente Linux miequipoIP del cliente Linux 192.168.0.50Pre-requisitosDNS - Domain Name SystemEdite el archivo /etc/resolv.conf y verifique que su Sistemas de Nombres de Domino (DNS) son loscorrectos.NTPVerificar configuración de hora (NTP - Network Time Protocol, puerto 123 udp y tcp). Sonmuchos los problemas de seguridad relacionados con un tiempo correcto. Lasincronización es muy importante en modelos de autenticación como Kerberos, que utilizamarcas de tiempo como pruebas de frescura para evitar ataques por reenvío.1. Instale el servicio NTP. # yum install ntp2. Use el comando date para observar si la fecha y hora son correctas. En caso de que no lo sea use el comando ntpdate ip_del_servidor_de_hora (Ej. ntpdate 192.168.0.1)3. Edite el archivo /etc/ntp.conf y configure los servidores para la sincronización de hora. server 0.centos.pool.ntp.org (colocar el nombre o ip de su servidor de hora) server 1.centos.pool.ntp.org4. Edite el archivo /etc/ntp/step-tickers y coloque la ip del servidor de hora. 192.168.0.1 192.168.0.x5. Inicie los servicios de hora. # service ntpd restart # chkconfig –level 345 ntpd on 5
  6. 6. Hostname1. Verifique la configuración del hostname: 1.1. Edite el archivo /etc/sysconfig/network y verifique el hostname (nombre del equipo). NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=miequipo.midominio.com.ve 1.2. Edite el archivo /etc/hosts y verifique el nombre del hostname. 127.0.0.1 miequipo.midominio.com.ve miequipo localhost.localdomain localhost 192.168.0.50 miequipo.midominio.com.ve miequipoConfigurar parámetros de redAntes de continuar asegúrese de que el equipo con Linux cuente con lasiguiente configuración: IP del mismo rango que el Server Active Directory DNS utilizado por el Server Active Directory Debe responder el ping a miserver.midominio.com.veProceso de InstalaciónInstalando Kerberos# yum list | grep krb5krb5-devel.i386 1.6.1-36.el5_5.6 installedkrb5-libs.i386 1.6.1-36.el5_5.6 installedkrb5-workstation.i386 1.6.1-36.el5_5.6 installedpam_krb5.i386 2.2.14-15 installedfreeradius2-krb5.i386 2.1.7-7.el5 basekrb5-auth-dialog.i386 0.7-1 basekrb5-server.i386 6.1-36.el5_5.6 updatesroot-net-krb5.i386 5.28.00-1.el5.1 epelEn el ejemplo anterior usted puede observar el krb5-workstation, lo cual puede ser una opción parala autenticación.En caso de no estar instalado el krb5, entonces:# yum install krb5-libs pamPara autentificar los clientes linux contra el dominio ocuparemos Kerberos, por lo queiniciaremos configurándolo y obteniendo un ticket de seguridad. 6
  7. 7. Configuración de KerberosModificar el archivo krb5.conf, ubicado en "/etc", adecuándolo al caso particular decada dominio, quedando con la siguiente configuración.[libdefaults] default_realm = MIDOMINIO.COM.VE dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h forwardable = yes[realms] MIDOMINIO.COM.VE = { kdc = miserver.midominio.com.ve:88 admin_server = miserver.midominio.com.ve:749 default_domain = midominio.com.ve }[domain_realm] .midominio.com.ve = MIDOMINIO.COM.VE midominio.com.ve = MIDOMINIO.COM.VE[appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }Una vez modificado el archivo krb5.conf debemos obtener un ticket, con el comando kinit,entonces ejecutamos el siguiente comando:# kinit usuario@MIDOMINIO.COM.VEpassword for usuario@MIDOMINIO.COM.VE:Si todo a salido bien tendremos un ticket kerberos para verificar usamos el comandoklist, el cual muestra todos los ticket actuales almacenados en nuestra maquina linux.Ticket cache: FILE:/tmp/krb5cc_0 Default principal: usuario@MIDOMINIO.COM.VE Valid starting Expires Service principal 06/22/06 09:14:36 06/22/06 19:17:59 krbtgt/MIDOMINIO.COM.VE@MIDOMINIO.COM.VE renew until 06/23/06 09:14:36Kerberos 4 ticket cache: /tmp/tkt0klist: You have no tickets cachedEl paso siguiente es modificar algunos archivos del sistema. Dos de los problemas máscomunes por los que no se puede obtener un ticket son: Porque, en el archivo krb5.conf algo a quedado mal escrito (verificar muy bien 7
  8. 8. minúsculas y mayúsculas) o, Porque la diferencia de hora entre el servidor kerberos y nuestra maquina supera los 5 minutos (para solucionar esto puedes utilizar ntp), también puede suceder que cliente linux no logra encontrar el servidor kerberos configurado.Si todo está bien, simplemente debería aparecer el promt (#).Instalando Samba# yum install samba3x samba3x-client samba3x-winbindEditar /etc/samba/smb.conf y cambiar las siguientes líneas:[global] workgroup = MIDOMINIO server string = Samba Server Version %v security = ads passdb backend = tdbsam realm = MIDOMINIO.COM.VE idmap uid = 50001-550000 idmap gid = 50001-550000 winbind separator = + winbind nested groups = Yes winbind enum users = no winbind enum groups = no log level = 3En security=ads le dice que va a ser miembro de un Active Directory, winbind es elservicio que va a mapear (idmap uid y idmap gid) los usuarios y grupos del dominio a IDde usuarios y grupos para que parezcan locales y que sean válidos para el nuestro Linux.Cabe aclarar que La configuración del demonio winbindd se realiza mediante ciertosparámetros en el fichero smb.conf. Todos los parámetros se deben especificar en lasección [global] de smb.conf.Iniciamos samba:# service smb start# chkconfig –level 345 smbd on# service winbind start# chkconfig --level 345 winbind on0Unimos el cliente Linux al dominio Windows# net ads join -S miserver.midominio.com.ve -U administradorNos deberá mostrar un mensaje como el siguiente: Using short domain name -- MIDOMINIO Joined MIEQUIPO to realm MIDOMINIO.COM.VE 8
  9. 9. Otra manera de realizar lo anterior es como sigue:# net join -S PDC -U AdministradorEl usuario tras el -U puede ser cualquier usuario del dominio que tenga privilegiosadministrativos en la máquina. Sustituya el nombre o IP de su PDC por "PDC".Resolver nombres de usuarios y grupos de dominioEditar "/etc/nsswitch.conf" y modificar las siguientes líneas dejándolas de la siguienteforma: passwd: files winbind group: files winbind shadow: files winbind hosts: files dns winbindReiniciamos winbind# service winbind restartGracias a lo anterior los usuarios y grupos del dominio pueden ser resueltos.PruebasVerificar la integración del dominio# net rpc testjoinMostrará el siguiente resultado: Join to MIDOMINIO is OK# net ads info (Muestra información del dominio) LDAP server: 192.168.0.1 LDAP server name: miserver.midominio.com.ve Realm: MIDOMINIO.COM.VE Bind Path: dc=MIDOMINIO,dc=COM,dc=VE LDAP port: 389 Server time: mar, 08 mar 2011 17:04:39 VET KDC server: 192.168.0.1 Server time offset: 1# net rpc info -U Usuario_de_dominio (Muestra el dominio al quepertenece, número de usuarios, grupos, etc.) Domain Name: MIDOMINIO Domain SID: x-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx Sequence number: xx Num users: xx 9
  10. 10. Num domain groups: xx Num local groups: xxVerificar winbind"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.Referenciashttp://www.lgs.com.ve/http://www.bdat.com/documentos/samba/html/winbind.htmlhttp://www.patricioleon.cl/articulos/53-unir-samba-a-un-dominio-de-windowshttp://www.kerberos-walkthrough.de/http://www.youtube.com/watch?v=b2BdTXb5ndshttp://www.esdebian.org/articulos/24000/unir-debian-dominio-active-directory 10

×