Introducción a Open Ldap
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Introducción a Open Ldap

on

  • 10,331 views

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

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

Statistics

Views

Total Views
10,331
Views on SlideShare
10,223
Embed Views
108

Actions

Likes
1
Downloads
313
Comments
0

3 Embeds 108

http://www.turegano.net 54
http://www.slideshare.net 53
http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introducción a Open Ldap Presentation Transcript

  • 1. Introducción a OpenLDAP Javier Turégano Molina [email_address]
  • 2. INDICE INDICE
        • Introducción
        • 3. ¿Qué es LDAP?
        • 4. ¿En qué casos puedo usar OpenLdap?
        • 5. Instalando OpenLDAP
        • 6. Gestionar nuestro OpenLDAP
        • 7. Configuraciones avanzadas con OpenLDAP
        • 8. Integración de servicios con OpenLDAP
        • 9. Preguntas
  • 10. ¿Qué es LDAP?
  • 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. Comparación BDD Entonces... ¿LDAP es una base de datos?
  • 13. Ejemplos de directorios
    • Directorio de teléfonos/direcciones
    • 14. Directorio de empresas
    • 15. Directorio de nombres de dominio
    • 16. Directorio de páginas 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. Cómo punto de unión
  • 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: javier.turegano@andago.com mobile: 666555444
  • 36. Instalando OpenLdap
  • 37. Instalación # apt-get install slapd
  • 38. Configuración /etc/ldap/slapd.conf Configuración del servidor de LDAP /etc/ldap/ldap.conf Configuración 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 través 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 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. 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. Clientes gráficos para LDAP Disponemos de múltiples herramientas gráficas para gestionar Open LDAP. Veremos dos de ellas: GQ PHPLDAPADMIN
  • 45. GQ GQ es un navegador ldap gráfico basado en GTK+ Para instalarlo únicamente tenemos que ejecutar: # apt-get install gq
  • 46. GQ
  • 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. 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 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. 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. 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. Replicación 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 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. 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. 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. 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. 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. 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. Integración de Servicios con LDAP
  • 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. 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. 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 mayoría de lenguajes de programación. Ejemplo: libnet-ldap-perl
  • 67. Preguntas ¿ ? jturegano (at) andago.com www.turegano.net www.twitter.com/setoide