unir equipo linux dominio windows

10
1 Unir cliente Linux a un Dominio Windows Contenido Descripción de paquetes de instalación............................................................................... 1 Kerberos........................................................................................................................... 1 Como funciona ............................................................................................................. 2 Samba .............................................................................................................................. 3 Winbind ............................................................................................................................ 4 PAM.................................................................................................................................. 5 Escenario ............................................................................................................................. 5 Pre-requisitos ....................................................................................................................... 5 DNS - Domain Name System........................................................................................... 5 NTP .................................................................................................................................. 5 Hostname ......................................................................................................................... 6 Configurar parámetros de red .......................................................................................... 6 Proceso de Instalación......................................................................................................... 6 Instalando Kerberos ......................................................................................................... 6 Configuración de Kerberos ........................................................................................... 7 Instalando Samba ............................................................................................................ 8 Resolver nombres de usuarios y grupos de dominio .................................................... 9 Pruebas ............................................................................................................................... 9 Verificar la integración del dominio ................................................................................... 9 Verificar winbind ............................................................................................................. 10 Referencias........................................................................................................................ 10 Descripción de paquetes de instalación Kerberos Es un protocolo de autenticación de redes de ordenador que permite a dos computadores en una red insegura demostrar su identidad mutuamente de manera segura. Sus diseñadores se concentraron primeramente en un modelo de cliente-servidor, y brinda autenticación mutua: tanto cliente como servidor verifican la identidad uno del otro. Los mensajes de autenticación están protegidos para evitar eavesdropping y ataques de Replay.

Upload: sosajohnny

Post on 02-Jul-2015

1.145 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Unir Equipo Linux Dominio Windows

1

Unir cliente Linux a un Dominio Windows

Contenido Descripción de paquetes de instalación............................................................................... 1

Kerberos ........................................................................................................................... 1

Como funciona ............................................................................................................. 2

Samba .............................................................................................................................. 3

Winbind ............................................................................................................................ 4

PAM .................................................................................................................................. 5

Escenario ............................................................................................................................. 5

Pre-requisitos ....................................................................................................................... 5

DNS - Domain Name System ........................................................................................... 5

NTP .................................................................................................................................. 5

Hostname ......................................................................................................................... 6

Configurar parámetros de red .......................................................................................... 6

Proceso de Instalación......................................................................................................... 6

Instalando Kerberos ......................................................................................................... 6

Configuración de Kerberos ........................................................................................... 7

Instalando Samba ............................................................................................................ 8

Resolver nombres de usuarios y grupos de dominio .................................................... 9

Pruebas ............................................................................................................................... 9

Verificar la integración del dominio ................................................................................... 9

Verificar winbind ............................................................................................................. 10

Referencias ........................................................................................................................ 10

Descripción de paquetes de instalación

Kerberos Es un protocolo de autenticación de redes de ordenador que permite a dos computadores en una red insegura demostrar su identidad mutuamente de manera segura. Sus diseñadores se concentraron primeramente en un modelo de cliente-servidor, y brinda autenticación mutua: tanto cliente como servidor verifican la identidad uno del otro. Los mensajes de autenticación están protegidos para evitar eavesdropping y ataques de Replay.

Page 2: Unir Equipo Linux Dominio Windows

2

Kerberos es un protocolo de seguridad creado por MIT (Instituto Tecnológico de Massachusetts) que usa una criptografía de claves simétricas para validar usuarios con los servicios de red, evitando así tener que enviar contraseñas a través de la red. Al validar los usuarios para los servicios de la red por medio de Kerberos, se frustran los intentos 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: Key Distribution Center), el cual consiste de dos partes lógicas separadas: un "servidor de autenticación" (AS o Authentication Server) y un "servidor emisor de tiquets" (TGS o Ticket Granting Server). Kerberos trabaja sobre la base de "tickets", los cuales sirven para demostrar la identidad de los usuarios. Mantiene una base de datos de claves secretas; cada entidad en la red —sea cliente o servidor— comparte una clave secreta conocida únicamente por él y Kerberos. El conocimiento de esta clave sirve para probar la identidad de la entidad. Para una comunicación entre dos entidades, Kerberos genera una clave de sesión, la cual pueden usar para asegurar sus interacciones.

Como funciona A continuación se describe someramente el protocolo. Se usaran las siguientes abreviaturas: � AS = Authentication Server � TGS = Ticket Granting Server � SS = Service Server. En resumen el funcionamiento es el siguiente: el cliente se autentica a sí mismo contra el AS, así demuestra al TGS que está autorizado para recibir un ticket de servicio (y lo recibe) y ya puede demostrar al SS que ha sido aprobado para hacer uso del servicio 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

Page 3: Unir Equipo Linux Dominio Windows

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.

Samba Es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos 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.

Page 4: Unir Equipo Linux Dominio Windows

4

Winbind Es un componente de la suite de programas Samba que resuelve los problemas de inicio de sesión unificados. Winbind usa una implementación UNIX de las llamdas RPC de Microsoft, PAM (Pluggable Authentication Modules), y el servicio de nombres (NSS, Name Service Switch) para permitir a los usuarios de dominios NT aparecer y operar como usuarios 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 la información local de /etc/passwd y de /etc/group no podrá realizar asociaciones dinámicas. Winbind unifica la gestión de cuentas UNIX y Windows NT permitiendo a una máquina Unix volverse un miembro completo de un dominio NT. Una vez hecho, la máquina Unix verá a los usuarios y grupos NT como si fueran usuarios y grupos nativos permitiendo usar el dominio NT usarse de la misma forma que se usa NIS+ en entorno exclusivos UNIX. El resultado final es que cuando cualquier programa en la máquina Unix solicita al sistema operativo que busque un nombre usuario o un grupo, la consulta se resuelve preguntando al controlador de dominio NT del dominio correspondiente. Como winbind enlaza con el sistema operativo a bajo nivel (vía módulo de resolución NSS de la biblioteca C), la redirección al controlador de dominio NT es completamente transparente. Los usuarios de la máquina Unix pueden utilizar los nombres de usuarios y grupos NT como si fueran nombres nativos. Se pueden cambiar propietarios de ficheros para que sean propiedad de usuarios de usuarios del dominio NT o incluso iniciar una sesión en la má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 y grupos tienen la forma DOMAIN\user and DOMAIN\group. Esto es necesario para permitir a Winbind determinar a qué controlador de dominio hay que redireccionar para la búsqueda particular y qué dominios de confianza se están referenciando. Adicionalmente, Winbind proporciona un servicio de autenticación que engancha con el sistema PAM (Pluggable Authentication Modules) (PAM) para proporcionar autenticación vía dominio NT a cualquier aplicación con soporte PAM. Esta capacidad resuelve el problema de sincronizar las contraseñas entre sistema ya que todas las contraseñas se almacenan en una sola ubicación, en el controlador de dominio.

Page 5: Unir Equipo Linux Dominio Windows

5

PAM PAM (Pluggable Authentication Module) no es un modelo de autenticación en sí, sino que se trata de un mecanismo que proporciona una interfaz entre las aplicaciones de usuario y diferentes métodos de autenticación, tratando de esta forma de solucionar uno de los problemas clásicos de la autenticación de usuarios: el hecho de que una vez que se ha definido e implantado cierto mecanismo en un entorno, es difícil cambiarlo. Mediante PAM podemos comunicar a nuestra aplicaciones con los métodos de autenticación que deseemos de una forma transparente, lo que permite integrar las utilidades de un sistema Unix clásico (login, ftp, telnet...) con esquemas diferentes del habitual password: claves de un solo uso, biométricos, tarjetas inteligentes y otros.

Escenario

Nombre del dominio MIDOMINIO.COM.VE

Nombre del server AD ad = miserver.midominio.com.ve IP del server AD 192.168.0.1 Nombre del cliente Linux miequipo IP del cliente Linux 192.168.0.50

Pre-requisitos

DNS - Domain Name System

Edite el archivo /etc/resolv.conf y verifique que su Sistemas de Nombres de Domino (DNS) son los

correctos.

NTP

Verificar configuración de hora (NTP - Network Time Protocol, puerto 123 udp y tcp). Son muchos los problemas de seguridad relacionados con un tiempo correcto. La sincronización es muy importante en modelos de autenticación como Kerberos, que utiliza marcas de tiempo como pruebas de frescura para evitar ataques por reenvío.

1. Instale el servicio NTP. # yum install ntp

2. 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.org

4. Edite el archivo /etc/ntp/step-tickers y coloque la ip del servidor de hora. 192.168.0.1

192.168.0.x

5. Inicie los servicios de hora. # service ntpd restart

# chkconfig –level 345 ntpd on

Page 6: Unir Equipo Linux Dominio Windows

6

Hostname 1. 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 miequipo

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 miserver.midominio.com.ve

Proceso de Instalación

Instalando Kerberos # yum list | grep krb5

krb5-devel.i386 1.6.1-36.el5_5.6 installed

krb5-libs.i386 1.6.1-36.el5_5.6 installed

krb5-workstation.i386 1.6.1-36.el5_5.6 installed

pam_krb5.i386 2.2.14-15 installed

freeradius2-krb5.i386 2.1.7-7.el5 base

krb5-auth-dialog.i386 0.7-1 base

krb5-server.i386 6.1-36.el5_5.6 updates

root-net-krb5.i386 5.28.00-1.el5.1 epel

En el ejemplo anterior usted puede observar el krb5-workstation, lo cual puede ser una opción para

la autenticación.

En caso de no estar instalado el krb5, entonces:

# yum install krb5-libs pam

Para autentificar los clientes linux contra el dominio ocuparemos Kerberos, por lo que iniciaremos configurándolo y obteniendo un ticket de seguridad.

Page 7: Unir Equipo Linux Dominio Windows

7

Configuración de Kerberos Modificar el archivo krb5.conf, ubicado en "/etc", adecuándolo al caso particular de cada 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 [email protected]

password for [email protected]:

Si todo a salido bien tendremos un ticket kerberos para verificar usamos el comando klist, el cual muestra todos los ticket actuales almacenados en nuestra maquina linux. Ticket cache: FILE:/tmp/krb5cc_0

Default principal: [email protected]

Valid starting Expires Service principal

06/22/06 09:14:36 06/22/06 19:17:59 krbtgt/[email protected]

renew until 06/23/06 09:14:36

Kerberos 4 ticket cache: /tmp/tkt0

klist: You have no tickets cached

El paso siguiente es modificar algunos archivos del sistema. Dos de los problemas más comunes por los que no se puede obtener un ticket son: � Porque, en el archivo krb5.conf algo a quedado mal escrito (verificar muy bien

Page 8: Unir Equipo Linux Dominio Windows

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-winbind

Editar /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 = 3

En security=ads le dice que va a ser miembro de un Active Directory, winbind es el servicio que va a mapear (idmap uid y idmap gid) los usuarios y grupos del dominio a ID de 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 ciertos parámetros en el fichero smb.conf. Todos los parámetros se deben especificar en la sección [global] de smb.conf. Iniciamos samba: # service smb start

# chkconfig –level 345 smbd on

# service winbind start

# chkconfig --level 345 winbind on

0Unimos el cliente Linux al dominio Windows # net ads join -S miserver.midominio.com.ve -U administrador

Nos deberá mostrar un mensaje como el siguiente: Using short domain name -- MIDOMINIO

Joined 'MIEQUIPO' to realm 'MIDOMINIO.COM.VE'

Page 9: Unir Equipo Linux Dominio Windows

9

Otra manera de realizar lo anterior es como sigue: # net join -S PDC -U Administrador El usuario tras el -U puede ser cualquier usuario del dominio que tenga privilegios administrativos en la máquina. Sustituya el nombre o IP de su PDC por "PDC".

Resolver nombres de usuarios y grupos de dominio Editar "/etc/nsswitch.conf" y modificar las siguientes líneas dejándolas de la siguiente forma:

passwd: files winbind

group: files winbind

shadow: files winbind

hosts: files dns winbind

Reiniciamos winbind # service winbind restart

Gracias a lo anterior los usuarios y grupos del dominio pueden ser resueltos.

Pruebas

Verificar la integración del dominio # net rpc testjoin

Mostrará 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 que

pertenece, número de usuarios, grupos, etc.)

Domain Name: MIDOMINIO

Domain SID: x-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx

Sequence number: xx

Num users: xx

Page 10: Unir Equipo Linux Dominio Windows

10

Num domain groups: xx

Num local groups: xx

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

Referencias http://www.lgs.com.ve/ http://www.bdat.com/documentos/samba/html/winbind.html http://www.patricioleon.cl/articulos/53-unir-samba-a-un-dominio-de-windows

http://www.kerberos-walkthrough.de/

http://www.youtube.com/watch?v=b2BdTXb5nds http://www.esdebian.org/articulos/24000/unir-debian-dominio-active-directory