Post on 12-Jan-2016
description
Integración de servicios con LDAP
Universidad de NavarraCentro de Tecnología Informática
Ignacio Coupeau Borrás011023.01
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
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
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.
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
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
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
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
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 ...
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-----
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
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
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
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 ) )
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)
CTI
Evolución: 1998/1999
De Umich a OpenLdap; ldap+samba; certificados x509 y Netscape calendar server diciembre de 1999: Sendmail+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
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
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.).
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
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.
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
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
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