Miércoles, 24. Febrero 2010
Voy a reproducir aqui el proceso de instalación del OpenLDAP, para ver si es idéntico al que tu haces Patxi, o si por el contrario hago algo que provoque que no se instale bien.
Paso 1: intento desinstalar cualquier resto anterior de ldaps.
sudo apt-get purge slapd ldap-utils
sudo rm -R /etc/ldap
Paso 2: Comienzo con la instalación siguiendo los pasos de la guía que tu me dijiste que te funcionó.
apt-get -y install slapd ldap-utils
cd /etc/ldap
Paso 3: incluyo los schemas
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
Paso 4: Me creo el db.ldif
sudo gedit db.ldif
y le escribo esto:
# Load dynamic backend modules
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb
# Create the database
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=sidelab,dc=es
olcRootDN: cn=admin,dc=sidelab,dc=es
olcRootPW: granja212
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
A continuación cargo el archivo:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif
Paso 5: Creo la constraseña cifrada:
sudo slappasswd -h {MD5}
New password: granja212
Re-enter new password: granja212
{MD5}W/6iC2WR4vVHcARN90b5nw==
Paso 6: Creo el fichero base.ldif
sudo gedit base.ldif
Lo edito con este texto:
dn: dc=sidelab,dc=es
objectClass: dcObject
objectclass: organization
o: sidelab.es
dc: sidelab
description: My LDAP Root
dn: cn=admin,dc=sidelab,dc=es
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {MD5}W/6iC2WR4vVHcARN90b5nw==
description: LDAP administrator
Cargo el archivo:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif
Aqui ya sucede algo, me dice que la base de datos ya existe, lo cual no debería de ser malo, pero vete tu a saber…
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "dc=sidelab,dc=es"
ldap_add: Already exists (68)
Paso 7: Modifico el acl’s system
sudo gedit config.ldif
Contenido de config.ldif:
dn: cn=config
changetype: modify
delete: olcAuthzRegexp
dn: olcDatabase={-1}frontend,cn=config
changetype: modify
delete: olcAccess
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcRootDN
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}W/6iC2WR4vVHcARN90b5nw==
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess
Aqui sólo modifico la contraseña cifrada, entiendo que no tengo que sustituir nada más. Cargo a continuación el fichero:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f config.ldif
Me devuelve el siguiente mensaje:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
modifying entry "olcDatabase={-1}frontend,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
Paso 8: Set the ldap acl’s
sudo gedit acl.ldif
Contenido del acl.ldif:
dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=admin,{MD5}W/6iC2WR4vVHcARN90b5nw== by dn=”cn=admin,dc=sidelab,dc=es” write by anonymous auth by self write by * none
olcAccess: to dn.base=”" by * read
olcAccess: to * by dn=”cn=admin,dc=sidelab,dc=es” write by * read
A partir de tu comentario, he introducido aqui también la contraseña cifrada, la linea original de la guía era:
olcAccess: to attrs=userPassword,shadowLastChange by dn=”cn=admin,dc=example,dc=com” write by anonymous auth by self write by * none
Cargo el fichero:
sudo ldapmodify -x -D cn=admin,cn=config -W -f acl.ldif
y sucede esto:
Enter LDAP Password: granja212
modifying entry "olcDatabase={1}hdb,cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
additional info: <olcAccess> handler exited with 1
No creo que se haya instalado bién. Si encuentras algún fallo dimelo.
De todas formas, al realizar una búsqueda:
ldapsearch -x -b 'dc=sidelab,dc=es'
El Resultado es:
# extended LDIF
#
# LDAPv3
# base <dc=sidelab,dc=es> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# sidelab.es
dn: dc=sidelab,dc=es
objectClass: dcObject
objectClass: organization
o: sidelab.es
dc: sidelab
description: Tree root
# admin, sidelab.es
dn: cn=admin,dc=sidelab,dc=es
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword:: Z3JhbmphMjAwOQ==
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Esto parece indicar que algo si que funciona, que te parece a ti todo esto??
PD. He subido al servidor un curso bastante completo, lo llegamos a encontrar de pasada el día que estuvimos aqui:
http://blog.sidelab.es/wp-content/curso_openldap.pdf
Que pena que no podamos reproducir lo que diga ningun ****** manual. He ido a verte esta mañana, me ha dicho Mica que has tenido que irte, ¿el Viernes por la mañana podemos juntarnos e ir al laboratorio? De momento voy a seguir investigando los modulos para generar grupos en Drupal y los demás puntos que tengo pendientes, si no te parece mal, hasta que me ayudes con esto. Gracias por todo.