Administración de Usuarios con LDAP y GNU/Linux

37
Administraci ´ on de Usuarios con LDAP y GNU/Linux Dr. Luis Gerardo de la Fraga Departamento de Computaci´ on Cinvestav Correo-e: [email protected] 23 de noviembre de 2006 Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administraci´ on de Usuarios con LDAP y GNU/Linux 1/52

Transcript of Administración de Usuarios con LDAP y GNU/Linux

Page 1: Administración de Usuarios con LDAP y GNU/Linux

Administracion de Usuarios con LDAPy GNU/Linux

Dr. Luis Gerardo de la Fraga

Departamento de ComputacionCinvestav

Correo-e: [email protected]

23 de noviembre de 2006

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 1/52

Page 2: Administración de Usuarios con LDAP y GNU/Linux

Motivacion

En esta charla se presenta la implanta-cion de un servidor con OpenLDAP paraautenticar a todos los usuarios de unared.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 2/52

Page 3: Administración de Usuarios con LDAP y GNU/Linux

Servidor NOCAT para la red inalambrica

eth0 eth1

192.168.36.1 Punto de Acceso

Etherswitch

Internet

10.100.24.4/24

Cortafuegos

Servidor

Autenticación

LDAP

Punto de Acceso

DHCPDNS

M. Kershaw, Linux-Powered Wireless Hot Spots, Linux Journal , 133, Sep 2003.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 3/52

Page 4: Administración de Usuarios con LDAP y GNU/Linux

LDAP (1/4)

El Protocolo Ligero de Acceso a Directorio(Lightweight Directory Access Protocol) pue-de ser visto como un repositorio donde pode-mos colocar informacion para despues consul-tarla para su procesamiento. El repositorio seasemeja a una base de datos, pero en LDAP hasido disenada y optimizada para realizar opera-ciones de consulta.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 4/52

Page 5: Administración de Usuarios con LDAP y GNU/Linux

LDAP (2/4)

Las principales caracterısticas de LDAP son:

I Esta basado en el modelo cliente-servidor

I Organiza la informacion de modojerarquico, utilizando directorios.

I Es capaz de propagar sus directorios aotros servidores LDAP

I Tiene un API de programacion biendefinido

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 5/52

Page 6: Administración de Usuarios con LDAP y GNU/Linux

LDAP (3/4)

Un directorio LDAP puede contener cualquiertipo de informacion, desde imagenes, direccio-nes de correo electronico, contrasenas y referen-cias html, hasta certificados digitales, direccio-nes IP, etc.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 6/52

Page 7: Administración de Usuarios con LDAP y GNU/Linux

LDAP (4/4)

La gran diversidad de informacion que puede seralmacenada en estos directorios los hace aptospara utilizarse en aplicaciones como:

I Directorios de paginas blancas o amarillas

I Servidor de direcciones electronicas

I Servidores de nombres de dominio (DNS)

I Repositorio para certificados digitales

I Repositorios de cuentas de usuario

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 7/52

Page 8: Administración de Usuarios con LDAP y GNU/Linux

Objetivo

Se presentara la configuracion del servicio deLDAP como un repositorio de la informacion decuentas de usuario y una medicion de su rendi-miento en redes IPv6.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 8/52

Page 9: Administración de Usuarios con LDAP y GNU/Linux

Ventajas/Desventajas

1. Ventaja: Facilita la administracion de unared al centralizar la informacion.

2. Desventaja: LDAP resulta complicado deconfigurar ya que es un sistema complejo.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 9/52

Page 10: Administración de Usuarios con LDAP y GNU/Linux

Internet

Cortafuegos

Puerta

ServidorLDAPPrimario

ServidorWEB

Cliente2

Secundario

LDAP

Servidor

Cliente110.10.10.2/32

10.10.10.1/32

ZonaMilitarizada

ZonaDesmilitarizada

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 10/52

Page 11: Administración de Usuarios con LDAP y GNU/Linux

El servicio de autenticacion nos permitira:

I Administrar mejor la red. Se centraliza eldar de alta, baja o cambiar las cuentas ycontrasenas de usuarios.

I Un usuario podra cambiar su contrasenadesde cualquier maquina cliente.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 11/52

Page 12: Administración de Usuarios con LDAP y GNU/Linux

Pasos de la configuracion

1. Organizacion del directorio

2. Configuracion del servidor LDAP primario

3. Configuracion de los clientes

4. Creacion y mantenimiento de la base de datos

5. Autenticacion

6. Replicacion del servidor LDAP

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 12/52

Page 13: Administración de Usuarios con LDAP y GNU/Linux

Organizacion del directorio

uid=ldap cn=profsuid=pepe cn=users

dc=sc

dc=cinvestav

dc=mx

ou=People ou=Group

Nuestro reino es “dc=sc,dc=cinvestav,dc=mx”

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 13/52

Page 14: Administración de Usuarios con LDAP y GNU/Linux

Configuracion del servidor LDAP primario(1/4)

El software necesario se instalo de los RPMS de RedHat:

I openldap

I openldap-clients

I openldap-servers

El archivo que mantiene la configuracion del servidor LDAP es:

/etc/openldap/slapd.conf

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 15/52

Page 15: Administración de Usuarios con LDAP y GNU/Linux

Configuracion del servidor LDAP primario(2/4)

idletimeout 60

TLSCertificateFile /usr/share/ssl/certs/slapd.pem

TLSCertificateKeyFile /usr/share/ssl/certs/slapd.pem

Para encriptar las comunicaciones

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 17/52

Page 16: Administración de Usuarios con LDAP y GNU/Linux

Configuracion del servidor LDAP primario(3/4)

# Control de acceso a la base de datos

access to dn=".*,dc=sc,dc=cinvestav,dc=mx" attr=userPassword

by dn="cn=Manager,dc=sc,dc=cinvestav,dc=mx" write

by dn="cn=replicator,dc=sc,dc=cinvestav,dc=mx" write

by dn="cn=proxyuser,dc=sc,dc=cinvestav,dc=mx" auth

by self write

by anonymous auth

by * none

access to *

by dn="cn=Manager,dc=sc,dc=cinvestav,dc=mx" write

by dn="cn=replicator,dc=sc,dc=cinvestav,dc=mx" write

by * read

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 19/52

Page 17: Administración de Usuarios con LDAP y GNU/Linux

Configuracion del servidor LDAP primario(4/4)

#####################################

# Definiciones de la base de datos

database ldbm

suffix "dc=sc,dc=cinvestav,dc=mx"

rootdn "cn=Manager,dc=sc,dc=cinvestav,dc=mx"

# rootpw secret

rootpw {SSHA}CipB6+P3iqIeV+XVZ2Tn8xbmhUk/MOnc

# The database directory MUST exist prior to running slapd AND

# should only be accessible by the slapd/tools. Mode 700 recommended.

directory /var/lib/ldap

# Indices to maintain

index objectClass,uid,uidNumber,gidNumber,memberUid eq

index cn,mail,surname,givenname eq,subinitial

Contrasena generada con el comando /usr/sbin/slappasswd.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 21/52

Page 18: Administración de Usuarios con LDAP y GNU/Linux

Levantar el servidor LDAP

/etc/rc.d/init.d/ldap start|stop|restart

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 23/52

Page 19: Administración de Usuarios con LDAP y GNU/Linux

Configuracion de un cliente (1/2)

El archivo de configuracion

/etc/ldap.conf

es usado para aplicar los valores por defecto alos parametros usados por los clientes de ldap.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 25/52

Page 20: Administración de Usuarios con LDAP y GNU/Linux

Configuracion de un cliente (2/2)

host 10.200.100.1

base dc=sc,dc=cinvestav,dc=mx

uri ldaps://servidor.sc.cinvestav.mx

pam_login_attribute uid

# Specify a minimum or maximum UID number allowed

pam_min_uid 100

pam_max_uid 9000

pam_password md5

nss_base_passwd ou=People,dc=sc,dc=cinvestav,dc=mx?one

nss_base_shadow ou=People,dc=sc,dc=cinvestav,dc=mx?one

nss_base_group ou=Group,dc=sc,dc=cinvestav,dc=mx?one

ssl start_tls

ssl on

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 27/52

Page 21: Administración de Usuarios con LDAP y GNU/Linux

Prueba del servidor LDAP

Para probar el servidor podemos agregar un usuario a la base dedatos y realizar la consulta. Para la prueba debemos agregar unusuario que no aparezca en /etc/passwd y realizar

ldapsearch -x uid=prueba

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 29/52

Page 22: Administración de Usuarios con LDAP y GNU/Linux

Creacion y mantenimiento de la base de datos(1/7)

Se usaron las herramientas de migracion, que en realidad sonscripts hechos en perl, que vienen en la distribucion de OpenLDAPen /usr/share/openldap/migration.Se usaron los scripts

I migrate base.pl

I migrate group.pl

I migrate passwd.pl

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 30/52

Page 23: Administración de Usuarios con LDAP y GNU/Linux

Creacion y mantenimiento de la base de datos(2/7)

Usando el script migrate base.pl se generan los primerosregistros de la base de datos:

./migrate_base.pl > base.ldif

y el contenido del archivo base.ldif debe de editarse ya que nonecesitamos toda la informacion.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 32/52

Page 24: Administración de Usuarios con LDAP y GNU/Linux

Creacion y mantenimiento de la base de datos(3/7)

Para que el archivo base.ldif refleje la informacion del diseno deldirectorio, su contenido debe ser:

dn: dc=sc,dc=cinvestav,dc=mx

dc: sc

objectClass: top

objectClass: domain

dn: ou=People,dc=sc,dc=cinvestav,dc=mx

ou: People

objectClass: top

objectClass: organizationalUnit

dn: ou=Group,dc=sc,dc=cinvestav,dc=mx

ou: Group

objectClass: top

objectClass: organizationalUnit

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 34/52

Page 25: Administración de Usuarios con LDAP y GNU/Linux

Creacion y mantenimiento de la base de datos(4/7)

El script migrate group.pl cambia la informacion en/etc/group a formato LDIF.El script migrate passwd.pl cambian la informacion de losarchivos /etc/passwd y /etc/shadow a formato LDIF.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 35/52

Page 26: Administración de Usuarios con LDAP y GNU/Linux

Creacion y mantenimiento de la base de datos(5/7)

Archivo LDIF para el usuario prueba

# prueba, People, cs, cinvestav, mx

dn: uid=prueba,ou=People,dc=sc,dc=cinvestav,dc=mx

uid: prueba

cn: Cuenta de prueba

objectClass: account

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword:: e2NyeXB0fXg=

shadowLastChange: 12661

shadowMax: 99999

shadowWarning: 7

loginShell: /bin/bash

uidNumber: 700

gidNumber: 700

homeDirectory: /home/prueba

gecos: Cuenta de prueba

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 37/52

Page 27: Administración de Usuarios con LDAP y GNU/Linux

Creacion y mantenimiento de la base de datos(6/7)

Ahora podemos agredar los archivos %.ldif creados para llenar labase de datos. Esto se realiza con el comando ldapadd:

ldapadd -x -W -D ’cn=Manager,dc=sc,dc=cinvestav,dc=mx’ -f base.ldif

ldapadd -x -W -D ’cn=Manager,dc=sc,dc=cinvestav,dc=mx’ -f group.ldif

ldapadd -x -W -D ’cn=Manager,dc=sc,dc=cinvestav,dc=mx’ -f usuarios.ldif

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 39/52

Page 28: Administración de Usuarios con LDAP y GNU/Linux

Creacion y mantenimiento de la base de datos(7/7)

Para generar automaticamente una contrasen para el usuario pruebarealizamos;

ldappasswd -x -W -D ’cn=Manager,dc=sc,dc=cinvestav,dc=mx’ \

’uid=prueba,ou=People,dc=sc,dc=cinvestav,dc=mx’

Para borrar el usuario prueba realizamos:

ldapdelete -x -v -W -D ’cn=Manager,dc=sc,dc=cinvestav,dc=mx’ \

’uid=prueba,ou=People,dc=sc,dc=cinvestav,dc=mx’

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 41/52

Page 29: Administración de Usuarios con LDAP y GNU/Linux

Autenticacion (1/3)

La informacion del usuario consiste del mapeo entre los numerosde identificacion de usuario y los nombres de usuario (que se usa,por ejemplo, al realizar el comando ls -l) o la localizacinon de losdirectios de casa (usado, por ejemplo, al realizar cd ~. La consultaa tal informacion es manejada por el subsistema del Servicio deConmutacion de Nombres (NSS, Nameservice Switch).La autenticacion, que es el chequeo de las contrasenas, esmanejada por el subsistema PAM (plugable authenticationmodule). Estos dos subsistemas se configuran de forma separada,pero los requerimos para trabajar con LDAP.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 42/52

Page 30: Administración de Usuarios con LDAP y GNU/Linux

Autenticacion (2/3)

El NSS se configura en el archivo /etc/nsswitch.conf. Debende modificarse las lıneas siguientes:

# /etc/nsswitch.conf# con permisos 644passwd: files ldapshadow: files ldapgroup: files ldap

Prueba: finger prueba

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 44/52

Page 31: Administración de Usuarios con LDAP y GNU/Linux

Autenticacion (3/3)

La forma facil de configurar la autenticacion en RedHat es usandoel comandoauthconfigEste comando abre una interfaz grafica y modifica los archivos/etc/ldap.conf y/etc/pam.d/system-auth

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 45/52

Page 32: Administración de Usuarios con LDAP y GNU/Linux

Internet

Cortafuegos

Puerta

ServidorLDAPPrimario

ServidorWEB

Cliente2

Secundario

LDAP

Servidor

Cliente110.10.10.2/32

10.10.10.1/32

ZonaMilitarizada

ZonaDesmilitarizada

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 46/52

Page 33: Administración de Usuarios con LDAP y GNU/Linux

Replicacion del servidor LDAP

La configuracion del servidor secundario LDAP se realiza de lamisma forma que la configuracion del servidor primario. Ademas sedebe agregar la siguiente informacion en el archivo/etc/openldap/slapd.conf del servidor primario:

# Replicas to which we should propagate changes

replogfile /var/lib/ldap/replog

replica host=replicador:389 tls=yes

binddn="cn=replicator,dc=sc,dc=cinvestav,dc=mx"

bindmethod=simple credentials=a890linux

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 48/52

Page 34: Administración de Usuarios con LDAP y GNU/Linux

Rendimiento de un servidor LDAP

0

0.002

0.004

0.006

0.008

0.01

100 200 300 400 500 600 700 800 900 1000

Tie

mpo (

seg)

Transaciones

SolarisWindows

Mac

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 49/52

Page 35: Administración de Usuarios con LDAP y GNU/Linux

Conclusiones

1. Se ha presentado la configuracion de un servicio paracentralizar la informacion y autenticacion de usuarios usandoLDAP.

2. El proceso de configuracion resulto una tarea ardua de variassemanas, conllevo la activacion y revision de los archivos deauditorıa para la verificacion del funcionamiento de cada partede la configuracion.

3. El funcionamiento en IPv6 es eficiente por lo que se podrıamigrar este servicio a una red IPv6 sin ningun problema.

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 50/52

Page 36: Administración de Usuarios con LDAP y GNU/Linux

Trabajo a futuro

Probar realizaciones del servidor de autenticacion con RADIUS ykerberos.

Esta presentacion puede encontrarse en:http://delta.cs.cinvestav.mx/˜fraga/Charlas/

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 51/52

Page 37: Administración de Usuarios con LDAP y GNU/Linux

El Departamento de Computacion, Cinvestav

Ofrecemos:

1. Maestrıa en Ciencias en Computacion

2. Doctorado en Ciencias en Computacion

http://www.cs.cinvestav.mx

Dr. Luis Gerardo de la Fraga CUI 3er CI Ing. Comp. Administracion de Usuarios con LDAP y GNU/Linux 52/52