1 / 24

Integración de servicios con LDAP

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

alton
Download Presentation

Integración de servicios con LDAP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. Servicios integrados con el LDAP

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

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

  8. Estructura

  9. Configuración: Schemas, password, TLS # include /usr/local/etc2/openldap_2/etc/openldap/schema/core.schema include /usr/local/etc2/openldap_2/etc/openldap/schema/cosine.schema include /usr/local/etc2/openldap_2/etc/openldap/schema/nis.schema include /usr/local/etc2/openldap_2/etc/openldap/schema/unav.schema include /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.pid argsfile /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} #Certificados TLSCertificateFile /usr/local/etc2/openldap_2/etc/openldap/ssl/arcos-cert.pem TLSCertificateKeyFile /usr/local/etc2/openldap_2/etc/openldap/ssl/arcos-key.pem TLSCACertificateFile /usr/local/etc2/openldap_2/etc/openldap/ssl/CAcerts # ldbm database definitions comes after ...

  10. Configuración: TLS CAcerts (Chain: CA concatenados) -----BEGIN CERTIFICATE----- MIIDmjCCAwOgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBj ... OAx+35dmVo9gu/elsCquZcToV7g+OzTbutAE+ GXlzB8lE/yKzOk9l3Bk= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDqzCCAxSgAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBj EDAOBgNVBAgTB05hdmFycmExETAPBgNVBAcTCFBhbXBsb bml2ZXJzaWRhZCBkZSBOYXZhcnJhMQwwCgYDVQQLEwNDV ... IikjnIYcPaUmFGZTybHJ09zgO5zxWrnLDlMS1uAVqazNA fY3+gYo6vvQE1prJNFm4ZqoFHAv2s61AA+5RVa+84A== -----END CERTIFICATE----- arcos-key.pem -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQjejejjeL9H9Ey9vTcj mHEoANQjVAESc1v+7c1H2sGwUURHVdqc ... xF/rVGPVcnflmatarileYg0CQFu+/iIA b4uTRv4dhGhHw4GKg431M2Hj27tnCGHi= -----END RSA PRIVATE KEY----- arcos-cert.pem -----BEGIN CERTIFICATE----- MIIEKDCCA5GgAwIBAgICAngwDQYJKoZIhvcNAQEEBQAwgZ .... Ma+5+DaA3l9Gi2lwHVNUMbAHbW+RGHHRRNJHJHKJKJ9908 t5axwx531IiE2ecB1f0CghU673a81tRFSTYSGStIKJ0Ml5 cS6de24tQ/1kgWEk -----END CERTIFICATE-----

  11. Configuración: ACL (no ACIs) # UNAV SMB ####################################################################### # database ldbm suffix "o=smb,dc=unav,dc=es" rootdn "cn=diradmin,dc=unav,dc=es" rootpw <passwd_diradmin> directory /usr/local/etc2/openldap_2/unav-smb replogfile /usr/tmp/slurpd.replog replica host=saruman.cti.unav.es binddn="cn=replicador,dc=unav,dc=es" bindmethod=simple credentials=<passwd_replicador> # index ntuid,grouprid,rid eq index cn,sn,uid,mail sub,eq index sambaMember eq,sub index objectClass eq index default sub # access to dn=".*,o=smb,dc=unav,dc=es" by dn="cn=replicator,dc=unav,dc=es" write by self write by * read access to dn="o=smb,dc=unav,dc=es" by dn="cn=replicator,dc=unav,dc=es" write by self write by * read

  12. Configuración: slapd.conf (parcial) ######################################################################## # UNAV PEOPLE-ORGANIZATION ####################################################################### database ldbm suffix "o=Universidad de Navarra, c=ES" rootdn "cn=dirman, o=Universidad de Navarra, c=ES" rootpw {crypt}mejor_crypted directory /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_text directory /usr/local/etc2/openldap_2/unav-person # replogfile /usr/tmp/slurpd.replog replica host=arcos.cti.unav.es:8011 binddn="cn=replicator,dc=unav,dc=es" bindmethod=simple credentials={crypt}mejor_crypted # referral

  13. Configuración: ldif tree unav-ldif.tree dn: dc=unav, dc=es dc: unav objectClass: dcObject objectClass: organization o: Universidad de Navarra dn: o=people, dc=unav, dc=es o: people objectClass: organization dn: o=smb,dc=unav,dc=es objectClass: referral objectClass: extensibleObject o: smb ref: ldap://arcos.cti.unav.es:8002/o=smb,dc=unav,dc=es unav-ldif-organization dn: o=Universidad de Navarra, c=ES o: Universidad de Navarra objectclass: organization objectClass: referral objectClass: extensibleObject ref: ldap://arcos.cti.unav.es:8001/o=people,dc=unav,dc=es

  14. Configuración: 1 ldif y n objectClass dn: uid=099147, o=smb, dc=unav, dc=es objectClass: sambaAccount objectClass: posixAccount uid: 037148 ntuid: 037148 rid: 3ec uidNumber: 17603 gecos: Ignacio Coupeau cn: Ignacio Coupeau homeDirectory: /usr/local/etc3/disco2/037148 loginShell: /bin/bash lmPassword: 58AE48B2A256C127A17527F32FFC1D17 ntPassword: 27F32FFC1E250389860B1658AE48B2A2 pwdLastSet: 3BCC0486 acctFlags: [U ] profile: \\%L\profiles\prn1 homeDrive: U: smbHome: \\saco5\disco2 pwdCanChange: 00000000 pwdMustChange: FFFFFFFF gidNumber: 203 grouprid: 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 ) )

  15. 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)

  16. Evolución: 1998/1999 • De Umich a OpenLdap; • ldap+samba; • certificados x509 y • Netscape calendar server • diciembre de 1999:Sendmail+ldap

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

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

  19. 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.).

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

  21. Autentificación ... autorización en LDAP 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.

  22. Experiencias (1) • El GB: lo mejor • Log y debug slapd -f slapd-4.conf -H "ldap://arcos/ ldaps://arcos.cti.unav.es/" -l LOCAL4 syslog.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

  23. Experiencias (2) • exportar/importar/reindexar slapcat slapaddvsldapadd slapindex 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

  24. Experiencias (3) • Indices: qué, cómo, cuándo Oct 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: ou ou: 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

More Related