Introducción a Open Ldap

Embed Size (px)

DESCRIPTION

Introducción al uso de Open Ldap. Esta presentación se utilizó en los curso del GUL de la Universidad Carlos III de Madrid.

Citation preview

  • 1. Introduccin a OpenLDAP Javier Turgano Molina [email_address]

2. INDICE INDICE

      • Introduccin
    • 3. Qu es LDAP?
  • 4. En qu casos puedo usar OpenLdap?

5. Instalando OpenLDAP 6. Gestionar nuestro OpenLDAP 7. Configuraciones avanzadas con OpenLDAP 8. Integracin de servicios con OpenLDAP 9. Preguntas 10. Qu es LDAP? 11. Qu es LDAP? L ightweightD irectoryA ccessP rotocol Es un protocolo a nivel de aplicacin que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa informacin en un entorno de red. 12. Comparacin BDD Entonces... LDAP es una base de datos? 13. Ejemplos de directorios

  • Directorio de telfonos/direcciones

14. Directorio de empresas 15. Directorio de nombres de dominio 16. Directorio de pginas web 17. Directorio de usuarios/grupos 18. Directorio de aplicaciones/servicios 19. Directorio de equipos 20. Implementaciones de LDAP

  • Microsoft Active Directory

21. Red Hat Directory Server / Fedora Directory Server 22. Novell Directory Services 23. Sun Directory Server 24. OpenLdap 25. Etc... 26. http://www.openldap.org/ 27. En qu casos podemos usar OpenLdap? Un ejemplo: Andago 28. En los servidores 29. En las aplicaciones corporativas 30. En el proceso de desarrollo 31. En nuestras soluciones Opencities OpenCitizen ADA OpenLicita PIEL 32. Cmo punto de unin 33. Estructura de contenidos en OpenLdap 34. Estructura de un rbol LDAP uid=jturegano uid=clozano dn:uid=jturegano,ou=Usuarios,o=Andago,c=es c=es o=Andago ou=Usuarios ou=Grupos ou=Clientes 35. Estructura de un objeto

  • dn: uid=jturegano,ou=Usuarios,o=Andago,c=es

objectClass: top objectClass: person objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount objectClass: sambaSamAccount uid: jturegano cn:: Javier sn:: Turegano Molina givenName: Javier uidNumber: 30001 loginShell: /bin/bash gidNumber: 30001 homeDirectory: /home/usuarios/jturegano sambaPrimaryGroupSID: S-1-5-21-1674037526-2636053846-3178386930-513 sambaSID: S-2-6-21-2324037526-2636053332-31784523930-30117 mail: [email protected] mobile: 666555444 36. Instalando OpenLdap 37. Instalacin # apt-get install slapd 38. Configuracin /etc/ldap/slapd.confConfiguracin del servidor de LDAP /etc/ldap/ldap.confConfiguracin global LDAP del sistema 39. Gestionar nuestro OpenLdap 40. Utilidades ldap Para instalas las utilidades de ldap ejecutamos: # apt-get install ldap-utils Disponemos de dos tipos de utilidades: - Con acceso directo al backend de datos - Con acceso a travs del protocolo ldap 41. Ficheros ldiff El LDAP Data Interchange Format (LDIF) es un fichero con formato texto ASCII para las entradas LDAP. Los ficheros que exportan e importan datos de un servidor LDAP deben estar en formato LDIF. 42. Utilidades ldap MANIPULACIN DIRECTA DE DATOS slapaddNos permite introducir datos en el ldap: # /etc/init.d/slapd stop # slapadd -l file.ldif # /etc/init.d/slapd stop slapcatNos volcar el contenido del ldap por la salida estandar: # slapcat 43. Utilidades ldap UTILIZANDO EL PROTOCOLO LDAP ldapaddNos permite introducir datos dentro del directorio desde un fichero ldif: # ldapadd -x -W -f file.ldif -D cn=admin,dc=andago,dc=com ldapsearchNos permite realizar bsquedas en el directorio: # ldapsearch -x -W -b dc=com -D cn=admin,dc=andago,dc=com '(uid=pepito)' cn uid 44. Clientes grficos para LDAP Disponemos de mltiples herramientas grficas para gestionar Open LDAP. Veremos dos de ellas: GQ PHPLDAPADMIN 45. GQ GQes un navegador ldap grfico basado en GTK+ Para instalarlo nicamente tenemos que ejecutar: # apt-get install gq 46. GQ 47. Phpldapadmin PHPLdapAdmines un cliente ldap basado en web. Puedes usarlo remotamente con un interfaz sencillo. Para instalarlo nicamente tenemos que ejecutar: # apt-get install phpldapadmin 48. Phpldapadmin 49. Configuraciones Avanzadas con OpenLDAP 50. Cifrado de conexiones Openldap soporta el cifrado mediante TLS para las comunicaciones. Para ello necesitamos un certificado que podemos generar fcilmente con openssl y aadir a la configuracin: [/etc/ldap/slapd.conf]... TLSCertificateFile /etc/ssl/cert.pem TLSCertificateKeyFile /etc/ssl/key.pem TLSCertificate /etc/ssl/cacert.pem Para realizar una consulta desde lnea de comandos utilizando el puerto cifrado utilizaremos: # ldapsearch -x -b dc=andago,dc=com -H 'ldaps://localhost:636' 51. Control de Accesos OpenLdap dispone de mecanismos de seguridad para el control de acceso a la informacin dependientes del usuario utilizado. Se establecen a travs deACLsoACIs . Ejemplo: Un usuario puede modificar algunos de sus datos. access to attrs=entry,telephoneNumber,mobile,facsimileTelephoneNumber by self write by * break Tambin podemos ver las ACLs que se establecen por defecto en OpenLdap. 52. Replicacin OpenLDAP nos va a permitir realizar replicas de nuestro directorio en otros servidores ldap. Para ello utilizamos el demonio slurp en el servidor maestro. Hay que cuidar que slo se realicen escrituras sobre el servidor maestro, ya que sino perderamos la coherencia entre los servidores ldap. Existen otros mtodos de replicacin que permiten configuraciones maestro-maestro pero no son confiables totalmente en estos momentos. 53. Replicacin con Slurp Escritura Escritura Escritura MAESTRO Exclavo 1 SLAPD SLURP LOG REP Exclavo 2 SLAPD SLAPD Cliente 54. Lectura en el maestro Lectura Datos MAESTRO SLAPD SLURP LOG REP Cliente 55. Lectura en los exclavos Lectura Escritura Datos Cliente Exclavo 1 Exclavo 2 SLAPD SLAPD 56. Configurar la replicacin En el servidor maestro indicamos los servidores de rplica en el fichero de configuracin. Por ejemplo: [/etc/ldap/slapd.conf]... replica uri=ldaps://ldapslave1.andago.com:636 starttls=yes binddn=cn=admin,dc=andago,dc=com bindmethod=simple credentials=password replica uri=ldaps://ldapslave2.andago.com:636 starttls=yes binddn=cn=admin,dc=andago,dc=com bindmethod=simple credentials=password 57. Aadir un esquema [/etc/ldap/slapd.conf]... # Esquemas por defecto include/etc/openldap/schema/core.schema include/etc/openldap/schema/cosine.schema include/etc/openldap/schema/nis.schema include/etc/openldap/schema/inetorgperson.schema #Hemos aadido el esquema de rediris include/etc/ldap/schema/iris.schema 58. Corrupcin del backend bdb En algunos casos puede producirse una corrupcin de datos del backend bdb.PROCEDMIENTO DE RECUPERACIN # /etc/init.d/slapd stop # cd /var/lib/ldap # db_recover # /etc/init.d/slapd start Debemos tener instalado el paquete de las utilidades de bdb. 59. Modo Debug Distintos niveles de debug.Podemos encontrarlos en el man de slapd.conf. Podemos invocar en consola el demonio de slapd en modo debug de la siguiente manera: # /usr/lib/slapd -h "ldap:/// ldaps:///" -d 256 60. Indexacin Es recomendable indexar los atributos por los que vayamos a realizar las bsquedas. [/etc/ldap/slapd.conf]... index objectClasseq,pres index ou,cn,mail,surname,givennameeq,pres,sub index uidNumber,gidNumber,loginShelleq,pres Si hemos aadido un indice debemos reconstruirlos, para ello con slapd parado ejecutamos: # slapindex -v 61. Alta disponibilidad en Openldap Alta disponibilidad mediante heartbeat. El nodo maestro de heartbeat tiene levantado el servicio de ldap cmo maestro y la IP de servicio. Los nodos exclavos tienen levantado el servicio de slapd pero slo podremos realizar consultas sobre ellos. En caso de cada cualquiera de los nodos exclavos puede recuperar el servicio en modo maestro y apropiarse de la IP . 62. Integracin de Servicios con LDAP 63. Pam-ldap Instalamos los paquetes necesarios: # apt-get install libnss-ldap libpam-ldap Editamos el fichero de configuracin nsswitch.confpara que utilice ldap: [/etc/nsswitch.conf] passwd: compat ldap group: compat ldap shadow: compat ldap 64. Pam-ldap Editamos el fichero de configuracin pam_ldap.conf: [/etc/pam_ldap.conf] host localhost base dc=andago,dc=net urildap://localhost/ ldap_version 3 rootbinddn cn=admin,dc=andago,dc=net pam_passwdord crypt Y aadimos la clave en el fichero ldap.secret [/etc/ldap.secret] admin_password 65. Postfix ldap Instalamos el paquete de postfix-ldap: # apt-get install postfix-ldap Configuramos postfix para que use ldap, por ejemplo: [/etc/postfix/main.cf]... virtual_maps= ldap:valiases valiases_server_host= localhost valiases_search_base= ou=Usuarios, o=Andago, c=es valiases_query_filter= (mail=%s) valiases_result_attribute = uid 66. Perl-ldap Integrar Ldap dentro de nuestros desarrollos es muy sencillo. Ldap dispone de APIs para la mayora de lenguajes de programacin. Ejemplo: libnet-ldap-perl 67. Preguntas ? jturegano (at) andago.com www.turegano.net www.twitter.com/setoide