0
Introducción a OpenLDAP Javier Turégano Molina [email_address]
INDICE INDICE <ul><ul><ul><li>Introducción
¿Qué es LDAP?
¿En qué casos puedo usar OpenLdap?
Instalando OpenLDAP
Gestionar nuestro OpenLDAP
Configuraciones avanzadas con OpenLDAP
Integración de servicios con OpenLDAP
Preguntas </li></ul></ul></ul>
¿Qué es LDAP?
¿Qué es LDAP? L ightweight  D irectory  A ccess  P rotocol Es un protocolo a nivel de aplicación que permite el acceso a u...
Comparación BDD Entonces... ¿LDAP es una base de datos?
Ejemplos de directorios <ul><li>Directorio de teléfonos/direcciones
Directorio de empresas
Directorio de nombres de dominio
Directorio de páginas web
Directorio de usuarios/grupos
Directorio de aplicaciones/servicios
Directorio de equipos </li></ul>
Implementaciones de LDAP <ul><li>Microsoft Active Directory
Red Hat Directory Server / Fedora Directory Server
Novell Directory Services
Sun Directory Server
OpenLdap
Etc... </li></ul>
http://www.openldap.org/
¿En qué casos podemos usar OpenLdap? Un ejemplo: Andago
En los servidores
En las aplicaciones corporativas
En el proceso de desarrollo
En nuestras soluciones Opencities OpenCitizen ADA OpenLicita PIEL
Cómo punto de unión
Estructura de contenidos en OpenLdap
Estructura de un árbol LDAP uid=jturegano uid=clozano dn:  uid=jturegano,ou=Usuarios,o=Andago,c=es c=es o=Andago ou=Usuari...
Estructura de un objeto <ul><li>dn: uid=jturegano,ou=Usuarios,o=Andago,c=es </li></ul>objectClass: top objectClass: person...
Instalando OpenLdap
Instalación # apt-get install slapd
Configuración /etc/ldap/slapd.conf  Configuración del servidor de LDAP /etc/ldap/ldap.conf  Configuración global LDAP del ...
Gestionar nuestro OpenLdap
Utilidades ldap Para instalas las utilidades de ldap ejecutamos: # apt-get install ldap-utils Disponemos de dos tipos de u...
Ficheros ldiff El LDAP Data Interchange Format (LDIF) es un fichero con formato texto ASCII para las entradas LDAP. Los fi...
Utilidades ldap MANIPULACIÓN DIRECTA DE DATOS slapadd  Nos permite introducir datos en el ldap: # /etc/init.d/slapd stop #...
Utilidades ldap UTILIZANDO EL PROTOCOLO LDAP ldapadd  Nos permite introducir datos dentro del directorio desde un fichero ...
Clientes gráficos para LDAP Disponemos de múltiples herramientas gráficas para gestionar Open LDAP. Veremos dos de ellas: ...
GQ GQ  es un navegador ldap gráfico basado en GTK+ Para instalarlo únicamente tenemos que ejecutar: # apt-get install gq
GQ
Phpldapadmin PHPLdapAdmin  es un cliente ldap basado en web. Puedes usarlo remotamente con un interfaz sencillo. Para inst...
Phpldapadmin
Configuraciones Avanzadas con OpenLDAP
Upcoming SlideShare
Loading in...5
×

Introducción a Open Ldap

7,276

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,276
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
325
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Introducción a Open Ldap"

  1. 1. Introducción a OpenLDAP Javier Turégano Molina [email_address]
  2. 2. INDICE INDICE <ul><ul><ul><li>Introducción
  3. 3. ¿Qué es LDAP?
  4. 4. ¿En qué casos puedo usar OpenLdap?
  5. 5. Instalando OpenLDAP
  6. 6. Gestionar nuestro OpenLDAP
  7. 7. Configuraciones avanzadas con OpenLDAP
  8. 8. Integración de servicios con OpenLDAP
  9. 9. Preguntas </li></ul></ul></ul>
  10. 10. ¿Qué es LDAP?
  11. 11. ¿Qué es LDAP? L ightweight D irectory A ccess P rotocol Es un protocolo a nivel de aplicación que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red.
  12. 12. Comparación BDD Entonces... ¿LDAP es una base de datos?
  13. 13. Ejemplos de directorios <ul><li>Directorio de teléfonos/direcciones
  14. 14. Directorio de empresas
  15. 15. Directorio de nombres de dominio
  16. 16. Directorio de páginas web
  17. 17. Directorio de usuarios/grupos
  18. 18. Directorio de aplicaciones/servicios
  19. 19. Directorio de equipos </li></ul>
  20. 20. Implementaciones de LDAP <ul><li>Microsoft Active Directory
  21. 21. Red Hat Directory Server / Fedora Directory Server
  22. 22. Novell Directory Services
  23. 23. Sun Directory Server
  24. 24. OpenLdap
  25. 25. Etc... </li></ul>
  26. 26. http://www.openldap.org/
  27. 27. ¿En qué casos podemos usar OpenLdap? Un ejemplo: Andago
  28. 28. En los servidores
  29. 29. En las aplicaciones corporativas
  30. 30. En el proceso de desarrollo
  31. 31. En nuestras soluciones Opencities OpenCitizen ADA OpenLicita PIEL
  32. 32. Cómo punto de unión
  33. 33. Estructura de contenidos en OpenLdap
  34. 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. 35. Estructura de un objeto <ul><li>dn: uid=jturegano,ou=Usuarios,o=Andago,c=es </li></ul>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: javier.turegano@andago.com mobile: 666555444
  36. 36. Instalando OpenLdap
  37. 37. Instalación # apt-get install slapd
  38. 38. Configuración /etc/ldap/slapd.conf Configuración del servidor de LDAP /etc/ldap/ldap.conf Configuración global LDAP del sistema
  39. 39. Gestionar nuestro OpenLdap
  40. 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 través del protocolo ldap
  41. 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. 42. Utilidades ldap MANIPULACIÓN DIRECTA DE DATOS slapadd Nos permite introducir datos en el ldap: # /etc/init.d/slapd stop # slapadd -l file.ldif # /etc/init.d/slapd stop slapcat Nos volcará el contenido del ldap por la salida estandar: # slapcat
  43. 43. Utilidades ldap UTILIZANDO EL PROTOCOLO LDAP ldapadd Nos permite introducir datos dentro del directorio desde un fichero ldif: # ldapadd -x -W -f file.ldif -D “cn=admin,dc=andago,dc=com” ldapsearch Nos permite realizar búsquedas en el directorio: # ldapsearch -x -W -b “dc=com” -D “cn=admin,dc=andago,dc=com” '(uid=pepito)' cn uid
  44. 44. Clientes gráficos para LDAP Disponemos de múltiples herramientas gráficas para gestionar Open LDAP. Veremos dos de ellas: GQ PHPLDAPADMIN
  45. 45. GQ GQ es un navegador ldap gráfico basado en GTK+ Para instalarlo únicamente tenemos que ejecutar: # apt-get install gq
  46. 46. GQ
  47. 47. Phpldapadmin PHPLdapAdmin es un cliente ldap basado en web. Puedes usarlo remotamente con un interfaz sencillo. Para instalarlo únicamente tenemos que ejecutar: # apt-get install phpldapadmin
  48. 48. Phpldapadmin
  49. 49. Configuraciones Avanzadas con OpenLDAP
  50. 50. Cifrado de conexiones Openldap soporta el cifrado mediante TLS para las comunicaciones. Para ello necesitamos un certificado que podemos generar fácilmente con openssl y añadir a la configuración: [/etc/ldap/slapd.conf]... TLSCertificateFile /etc/ssl/cert.pem TLSCertificateKeyFile /etc/ssl/key.pem TLSCertificate /etc/ssl/cacert.pem Para realizar una consulta desde línea de comandos utilizando el puerto cifrado utilizaremos: # ldapsearch -x -b “dc=andago,dc=com” -H 'ldaps://localhost:636'
  51. 51. Control de Accesos OpenLdap dispone de mecanismos de seguridad para el control de acceso a la información dependientes del usuario utilizado. Se establecen a través de ACLs o ACIs . Ejemplo: Un usuario puede modificar algunos de sus datos. access to attrs=entry,telephoneNumber,mobile,facsimileTelephoneNumber by self write by * break También podemos ver las ACLs que se establecen por defecto en OpenLdap.
  52. 52. Replicación 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 sólo se realicen escrituras sobre el servidor maestro, ya que sino perderíamos la coherencia entre los servidores ldap. Existen otros métodos de replicación que permiten configuraciones maestro-maestro pero no son confiables totalmente en estos momentos.
  53. 53. Replicación con Slurp Escritura Escritura Escritura MAESTRO Exclavo 1 SLAPD SLURP LOG REP Exclavo 2 SLAPD SLAPD Cliente
  54. 54. Lectura en el maestro Lectura Datos MAESTRO SLAPD SLURP LOG REP Cliente
  55. 55. Lectura en los exclavos Lectura Escritura Datos Cliente Exclavo 1 Exclavo 2 SLAPD SLAPD
  56. 56. Configurar la replicación En el servidor maestro indicamos los servidores de réplica en el fichero de configuración. 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. 57. Añadir 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 añadido el esquema de rediris include /etc/ldap/schema/iris.schema
  58. 58. Corrupción del backend bdb En algunos casos puede producirse una corrupción de datos del backend bdb. PROCEDMIENTO DE RECUPERACIÓN # /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. 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 &quot;ldap:/// ldaps:///&quot; -d 256
  60. 60. Indexación Es recomendable indexar los atributos por los que vayamos a realizar las búsquedas. [/etc/ldap/slapd.conf]... index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres Si hemos añadido un indice debemos reconstruirlos, para ello con slapd parado ejecutamos: # slapindex -v
  61. 61. Alta disponibilidad en Openldap Alta disponibilidad mediante heartbeat. El nodo maestro de heartbeat tiene levantado el servicio de ldap cómo maestro y la IP de servicio. Los nodos exclavos tienen levantado el servicio de slapd pero sólo podremos realizar consultas sobre ellos. En caso de caída cualquiera de los nodos exclavos puede recuperar el servicio en modo maestro y apropiarse de la IP .
  62. 62. Integración de Servicios con LDAP
  63. 63. Pam-ldap Instalamos los paquetes necesarios: # apt-get install libnss-ldap libpam-ldap Editamos el fichero de configuración nsswitch.conf para que utilice ldap: [/etc/nsswitch.conf] passwd: compat ldap group: compat ldap shadow: compat ldap
  64. 64. Pam-ldap Editamos el fichero de configuración pam_ldap.conf: [/etc/pam_ldap.conf] host localhost base dc=andago,dc=net uri ldap://localhost/ ldap_version 3 rootbinddn cn=admin,dc=andago,dc=net pam_passwdord crypt Y añadimos la clave en el fichero ldap.secret [/etc/ldap.secret] admin_password
  65. 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. 66. Perl-ldap Integrar Ldap dentro de nuestros desarrollos es muy sencillo. Ldap dispone de APIs para la mayoría de lenguajes de programación. Ejemplo: libnet-ldap-perl
  67. 67. Preguntas ¿ ? jturegano (at) andago.com www.turegano.net www.twitter.com/setoide
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×