Integración de servicios con LDAP

24
Integración de servicios con LDAP Universidad de Navarra Centro de Tecnología Informática Ignacio Coupeau Borrás 011023.01

description

Integración de servicios con LDAP. Universidad de Navarra Centro de Tecnología Informática. Ignacio Coupeau Borrás 011023.01. Integración de servicios con LDAP. Evolución histórica de nuestra instalación Objetivos finales Servicios integrados con el LDAP en la actualidad - PowerPoint PPT Presentation

Transcript of Integración de servicios con LDAP

Page 1: Integración de servicios con LDAP

Integración de servicios con LDAP

Universidad de NavarraCentro de Tecnología Informática

Ignacio Coupeau Borrás011023.01

Page 2: Integración de servicios con LDAP

CTI

Integración de servicios con LDAP

Evolución histórica de nuestra instalación Objetivos finales Servicios integrados con el LDAP en la actualidad Descripción del sistema Estructura y configuración El cambio a OpenLdap v2.x Seguridad en LDAP Experiencias

Page 3: Integración de servicios con LDAP

CTI

Objetivos finales

Centralización/coordinación

Repositorio de perfiles de usuario para el acceso a distintos

servicios/sistemas

Autentificación/autorización para el acceso a recursos

Page 4: Integración de servicios con LDAP

CTI

Servicios integrados con el LDAP

Inicio de sesión NT (perfiles, policies, etc.). Samba 2.2.2 Acceso a recursos compartidos SMB (Samba):

impresoras: sistema de cuotas; faxserver discos (shares)

Autentificación y accounting de usuarios de correo (POP, IMAP y SMTP) y servicios (TELNET, WEB, FTP, SSH, etc.) en máquinas unix: pam y nsswitch

Libro de direcciones (y routing/addressing del correo smtp [RFC822]) Validación para Acceso Remoto (Radius) Acceso a espacios Web restringidos mod_auth_ldap Validación para acceso a Internet en los proxies (Squid-ldap_aut) Almacenamiento de certificados digitales para firma electrónica (X509v3)

[RFC2377] Calendario: Netscape vs Steltor.

Page 5: Integración de servicios con LDAP

CTI

Servicios integrados con el LDAP

servidor de correo

SMTPencam inam iento

Mail HUB

Servidor de archivos

Usuarionavegador W eb

(Netscape, Explorer, etc.)

Servidores w eb y proxies

POP/IMAP user

PD C

Mbox

Hom e user

RadiusLDAP

POP/IMAPvalidación

acceso buzones

centro de correo

Equipos NT 4Salas de ordenadores

Sam baPDC-LDAP

Controlador dedom inio

rlog inLogin?

Directorio electrónicoFirm a digital (PKI)

SAMBA

SAMBASAMBA

SAMBA

?

CachéW EB

In ternet

LDAP

LDAP

LDAP

LDAP

Calendar

Sala deordenadores

Correoelectrónico

Acceso remoto

1 3

4

5

6

7

LDAPvalidación

acceso http

2

---------------------

Oracleaprint

PrintQuota

8

Sistema de cuota de impresión

$?

Lightw eigthDirectory AccessProtocol

Rev. 20010908.01

Page 6: Integración de servicios con LDAP

CTI

El cambio a OpenLdap v2.x

Open Source code (Netscape, iPlanet, ...) con muy buen soporte en listas y en proyectos relacionados;

cambio de protocolo; de LDAPv2 a LDAPv3 [] esquema de directorio distribuido; soporte de referrals [RFC3088] definición de clases y atributos con sintáxis según Attribute Syntax

Definitions según [RFC2252] ldap seguro: protección de datos (TLS y SSL) [RFC2830] soporte de backends DBBerkeley 3.x y gdbm, y threads POSIX. posibilidad de cambios menos traumáticos en la estructura,

organización y distribución de las bases de datos. diacríticos

Page 7: Integración de servicios con LDAP

CTI

Descripción del sistema

4 servidores linux RH6.2, kernel 2.4.x; Intel 2x450; 1 sparc

software- OpenLdap 2.x

- OpenSSL 0.9x

- ldbm backend: Berkeley DB 3.x y gdbm

o=<people>,dc=unav,dc=es : 20.815 usuarios, 2 LDAP

samba: 2 LDAP, 10 PDC linux; 450 NT4.0-SP3+; raid de discos; 26.844 usuarios; cuota de impresión y discos, acceso a las aulas/equipos públicos.

gestión centralizada vía web

Page 8: Integración de servicios con LDAP

CTI

Estructura

dc=unav,dc=es o=Universidad de Navarra, c=ES

sistema#1

sistema#2

LDAP 1.1master

LDAP 1.2slave

LDAP 2.2slave

LDAP 2.1master

slurpdslupd

o=sm b o=webo=alum nio=people

referraldependencia

Page 9: Integración de servicios con LDAP

CTI

Configuración: Schemas, password, TLS

#include /usr/local/etc2/openldap_2/etc/openldap/schema/core.schemainclude /usr/local/etc2/openldap_2/etc/openldap/schema/cosine.schemainclude /usr/local/etc2/openldap_2/etc/openldap/schema/nis.schemainclude /usr/local/etc2/openldap_2/etc/openldap/schema/unav.schemainclude /usr/local/etc2/openldap_2/etc/openldap/schema/samba.schema

# Define global ACLs to disable default read access# before ldbm’s ACL# Do not enable referrals until AFTER you have a working directory# service AND an understanding of referrals.#referral ldap://arcos.cti.unav.es

pidfile /usr/local/etc2/openldap_2/var/slapd.pidargsfile /usr/local/etc2/openldap_2/var/slapd.args

#The <hash> to use for userPassword generation. One#of {SSHA}, {SHA}, {SMD5}, {MD5}, {CRYPT},#KERBEROS}, {SASL}, and {UNIX}. The default is {SSHA}.password-hash {CRYPT}

#CertificadosTLSCertificateFile /usr/local/etc2/openldap_2/etc/openldap/ssl/arcos-cert.pemTLSCertificateKeyFile /usr/local/etc2/openldap_2/etc/openldap/ssl/arcos-key.pemTLSCACertificateFile /usr/local/etc2/openldap_2/etc/openldap/ssl/CAcerts

# ldbm database definitions comes after ...

Page 10: Integración de servicios con LDAP

CTI

Configuración: TLS

CAcerts (Chain: CA concatenados) -----BEGIN CERTIFICATE-----MIIDmjCCAwOgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBj...OAx+35dmVo9gu/elsCquZcToV7g+OzTbutAE+GXlzB8lE/yKzOk9l3Bk=-----END CERTIFICATE----------BEGIN CERTIFICATE-----MIIDqzCCAxSgAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBjEDAOBgNVBAgTB05hdmFycmExETAPBgNVBAcTCFBhbXBsbbml2ZXJzaWRhZCBkZSBOYXZhcnJhMQwwCgYDVQQLEwNDV...IikjnIYcPaUmFGZTybHJ09zgO5zxWrnLDlMS1uAVqazNAfY3+gYo6vvQE1prJNFm4ZqoFHAv2s61AA+5RVa+84A==-----END CERTIFICATE-----

arcos-cert.pem -----BEGIN CERTIFICATE-----MIIEKDCCA5GgAwIBAgICAngwDQYJKoZIhvcNAQEEBQAwgZ....Ma+5+DaA3l9Gi2lwHVNUMbAHbW+RGHHRRNJHJHKJKJ9908t5axwx531IiE2ecB1f0CghU673a81tRFSTYSGStIKJ0Ml5cS6de24tQ/1kgWEk-----END CERTIFICATE-----

arcos-key.pem -----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQjejejjeL9H9Ey9vTcjmHEoANQjVAESc1v+7c1H2sGwUURHVdqc...xF/rVGPVcnflmatarileYg0CQFu+/iIAb4uTRv4dhGhHw4GKg431M2Hj27tnCGHi=-----END RSA PRIVATE KEY-----

Page 11: Integración de servicios con LDAP

CTI

Configuración: ACL (no ACIs)

# UNAV SMB########################################################################database ldbmsuffix "o=smb,dc=unav,dc=es"rootdn "cn=diradmin,dc=unav,dc=es"rootpw <passwd_diradmin>directory /usr/local/etc2/openldap_2/unav-smbreplogfile /usr/tmp/slurpd.replogreplica host=saruman.cti.unav.es binddn="cn=replicador,dc=unav,dc=es" bindmethod=simple credentials=<passwd_replicador>#index ntuid,grouprid,rid eqindex cn,sn,uid,mail sub,eqindex sambaMember eq,subindex objectClass eqindex default sub#access to dn=".*,o=smb,dc=unav,dc=es" by dn="cn=replicator,dc=unav,dc=es" write by self write by * readaccess to dn="o=smb,dc=unav,dc=es" by dn="cn=replicator,dc=unav,dc=es" write by self write by * read

Page 12: Integración de servicios con LDAP

CTI

Configuración: slapd.conf (parcial)

######################################################################### UNAV PEOPLE-ORGANIZATION #######################################################################database ldbmsuffix "o=Universidad de Navarra, c=ES"rootdn "cn=dirman, o=Universidad de Navarra, c=ES"rootpw {crypt}mejor_crypteddirectory /usr/local/etc2/openldap_2/unav-old##index ...########################################################################## UNAV PEOPLE ######################################################################## database ldbm suffix "dc=unav,dc=es" rootdn "cn=dirman,dc=unav,dc=es" rootpw {crypt}que_plain_textdirectory /usr/local/etc2/openldap_2/unav-person#replogfile /usr/tmp/slurpd.replogreplica host=arcos.cti.unav.es:8011 binddn="cn=replicator,dc=unav,dc=es" bindmethod=simple credentials={crypt}mejor_crypted#

referral

Page 13: Integración de servicios con LDAP

CTI

Configuración: ldif tree

unav-ldif.tree

dn: dc=unav, dc=esdc: unavobjectClass: dcObjectobjectClass: organizationo: Universidad de Navarra

dn: o=people, dc=unav, dc=eso: peopleobjectClass: organization

dn: o=smb,dc=unav,dc=esobjectClass: referralobjectClass: extensibleObjecto: smbref: ldap://arcos.cti.unav.es:8002/o=smb,dc=unav,dc=es

unav-ldif-organization

dn: o=Universidad de Navarra, c=ESo: Universidad de Navarraobjectclass: organizationobjectClass: referralobjectClass: extensibleObjectref: ldap://arcos.cti.unav.es:8001/o=people,dc=unav,dc=es

Page 14: Integración de servicios con LDAP

CTI

Configuración: 1 ldif y n objectClass

dn: uid=099147, o=smb, dc=unav, dc=esobjectClass: sambaAccountobjectClass: posixAccountuid: 037148ntuid: 037148rid: 3ecuidNumber: 17603gecos: Ignacio Coupeaucn: Ignacio CoupeauhomeDirectory: /usr/local/etc3/disco2/037148loginShell: /bin/bashlmPassword: 58AE48B2A256C127A17527F32FFC1D17ntPassword: 27F32FFC1E250389860B1658AE48B2A2pwdLastSet: 3BCC0486acctFlags: [U ]profile: \\%L\profiles\prn1homeDrive: U:smbHome: \\saco5\disco2pwdCanChange: 00000000pwdMustChange: FFFFFFFFgidNumber: 203grouprid: 207

objectclass ( 1.3.6.1.4.1.9183.2.2.1 NAME 'sambaAccount' DESC 'Provisional sambaAccount' SUP top STRUCTURAL MUST ( ObjectClass $ uid $ uidNumber $ ntuid $ rid ) MAY ( gidNumber $ grouprid $ ou $ cn $ description $ lmPassword $ ntPassword $ pwdLastSet $ pwdCanChange $ pwdMustChange $ logonTime $ logoffTime $ kickoffTime $ smbHome $ homeDrive $ script $ profile $ acctFlags ) )

objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY DESC 'Account with POSIX attributes' MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) )

Page 15: Integración de servicios con LDAP

CTI

Evolución: 1997/1998

septiembre 1997 Inicio de nuestra experiencia con ldapv2 con el servidor ldap de la Univ. de Michigan. La idea inicial era la recogida en Slapd Administration Guide: un servicio de directorio y una pasarela para X500: 100% puro directorio electrónico.

Se habló por primera vez del LDAP en las JT de 1997, en Zaragoza (cfr. Javier Masa)

Page 16: Integración de servicios con LDAP

CTI

Evolución: 1998/1999

De Umich a OpenLdap; ldap+samba; certificados x509 y Netscape calendar server diciembre de 1999: Sendmail+ldap

Page 17: Integración de servicios con LDAP

CTI

Evolución: 1999/2000

samba+aprint (sistema de impresión con cuotas) autentificación proxy-cache

- directa

- indirecta vía samba (pam-squid samba|ldap) autentificación espacios web

Page 18: Integración de servicios con LDAP

CTI

Evolución: 2000/2001

desarrollo de los servicios de accounting basados en pam y nsswitch;

febrero de 2001: primeros contactos con el OpenLdap v2.0a gateway oracle-ldap; radius de telefónica radiusddll agosto/septiembre de 2001 migramos a LDAPv3 y cambiamos el

esquema y distribución de las bases

Page 19: Integración de servicios con LDAP

CTI

Evolución: 2001/2002

Integración con DNS [RFC1034] Conexiones seguras ldaps y slurpds de forma "nativa" sin

wrappers (stunnel, etc). Los acentos Posibilidad de utilización de diversos métodos de autentificación

en LDAP para centralizar/coordinar diversos mecanismos/api de (pam, MIT Kerberos, SASL/GSSAPI, etc.).

Page 20: Integración de servicios con LDAP

CTI

Seguridad en LDAP

Seguridad: Autentificación, integridad, confidencialidad y autorización. El protocolo no contempla el nivel de autorización que debe desarrollarse con ACL y similares.

El LDAP v2 define tres tipos de autentificacion: anonymous, simple (clear-text password), y Kerberos V4.

The LDAP v3 soporta autentificacion: anonymous, simple y SASL.- mecanismos sasl [RFC2222] :

- GSSAPI (MIT Kerberos 5 or Heimdal Kerberos 5) - EXTERNAL (requiere TLS: X509 [ietf-draft])- DIGEST-MD5 [RFC2831] - ANONYMOUS [RFC2245]

- LDAPv3-HOWTO- IBM RedBooks pp. 42-49

Page 21: Integración de servicios con LDAP

CTI

Autentificación ... autorización en LDAP

pam _ldap

nsswitch_ldapnsswitch_files

...

ID?

account?user logged

user login

user rejected

user rejected

TLS

TLS

no

si

si

kerberoskerberized?

no

si

ldapldapslave

SASL

TLS

MD5

p la in

TLS

S A S L d rive r

K erberized

GSSAPI

The Simple Authentication and Security Layer (SASL) is a method for adding authentication support to connection-based protocols. To use this specification, a protocol includes a command for identifying and authenticating a user to a server and for optionally negotiating a security layer for subsequent protocol interactions.

Page 22: Integración de servicios con LDAP

CTI

Experiencias (1)

El GB: lo mejor Log y debug

slapd -f slapd-4.conf -H "ldap://arcos/ ldaps://arcos.cti.unav.es/" -l LOCAL4syslog.conf/var/log/messages

Usuarios administrativos De la Redundancia: si pero... ¿24x7?

slapd-1.conf -d 16 -o -r /tmp/slurpd.replog Saltos entre jerarquías: referrals (subordinate, superior) y ciclos:

-M[M] Enable manage DSA IT control-C Automatically chase referrals.

ACL: dónde y como

Page 23: Integración de servicios con LDAP

CTI

Experiencias (2)

exportar/importar/reindexar

slapcat slapadd vs ldapaddslapindex

si todo va mal: C Utilidades para mantenimiento y desarrollo: perl+módulos Net-

LDAPapi y C+libldap vs wrappers No olvide sus aplicaciones: bases, sintáxis de comandos: -x, –LL,

-H, ldif, der... (userCertificate;binary:< file:///<derfile>)

Del ldappasswdy del bind../../bin/ldappasswd -D "cn=Ejemplo,o=people,dc=unav,dc=es" -w pepe -H

"ldap://ldap/" -s pepe01

Page 24: Integración de servicios con LDAP

CTI

Experiencias (3)

Indices: qué, cómo, cuándoOct 23 14:46:46 trancos slapd[2031]: conn=25926 op=1 SRCH base="o=smb, dc=unav,

dc=es" scope=1 filter="(&(uid=D8$)(objectClass=sambaAccount))" Oct 23 14:50:39 boromir slapd[7877]: conn=9426 op=1 SRCH

base="o=people,dc=unav,dc=es" scope=2 filter="(cn=*estibaliz*)" Base64

perl <<EOF

use MIME::Base64;

print decode_base64('SWduYWNpbyBDb3VwZWF1IEJvcnLDoXM=') . "\n";

EOF

Acentos

---add: ouou: Centro de Tecnología Informática - CTI---

./Latin1_to_UTF8 < ldif-modify-acentos > ldif-modify-acentos.utf8

ldapmodify -d 256 -H "ldap://arcos:8001/" -D "cn=diradmin,dc=unav, dc=es" -W -crf ldif-modify-acentos.utf8