Mostrando entradas con la etiqueta openldap. Mostrar todas las entradas
Mostrando entradas con la etiqueta openldap. Mostrar todas las entradas

lunes, 16 de febrero de 2009

perl-ldap

Si queremos utilizar los script de perl para ldap. Debemos instalar los siguientes paquetes.

libnet-ph-perl
libdbd-ldap-perl

Una vez instalado, podemos almacenar nuestra carpeta perl_ldap en cualqueir parte del disco duro
y ejecutarla.

Por ejemplo:

debian:/isp/openldap/ldap_perl# ./ldap_management_ies.sh ADD user54 domain usuario54 apellido54 user54
uid= user54,ou=Alumnos, dc=iesperemaria, dc=comdebian:/isp/openldap/ldap_perl#

IO::Socket::INET: connect: Conexión rehusada at ./ldap_add.pl line 70,

Si al intentar introducir una entrada desde perl, en el árbol de directorios de ldap, sale el siguiente error:

debian:/isp/openldap/ldap_perl# ./ldap_management_ies.sh ADD user54 domain usuario54 apellido54 user54
IO::Socket::INET: connect: Conexión rehusada at ./ldap_add.pl line 70, <DATA> line 225.
uid= user54,ou=Alumnos, dc=iesperemaria, dc=comsystem ./ldap_add.pl user54 domain usuario54 apellido54 user54 failed: 28416 at ./ldap_management_ies.sh line 30.

Posiblemente es que no hayas iniciado el servicio ldap.

Comprobamos si está iniciado ( y comprobamos que no).

debian:/isp/openldap/ldap_perl# ps -ef | grep slapd
root 9581 9195 0 14:09 pts/1 00:00:00 grep slapd


Arrancamos el servicio, bien desde /etc/init.d.... o si lo hemos instalado desde los fuentes, de la siguiente forma:
debian:/isp/openldap# /isp/openldap/libexec/slapd -f /isp/openldap/etc/openldap/slapd.conf

Si probamos a insertar de nuevo, vemos que nos deja:
debian:/isp/openldap/ldap_perl# ./ldap_management_ies.sh ADD user54 domain usuario54 apellido54 user54
uid= user54,ou=Alumnos, dc=iesperemaria, dc=comdebian:/isp/openldap/ldap_perl#



viernes, 13 de febrero de 2009

ldap-utils

Crear la raíz del árbol
Establecemos tanto la raíz dc=iesperemaria,dc=com, como el administrador de LDAP, Manager.
Tanto la raíz como el administrador deben estar definidos en slapd.conf

---archivo inicial.ldif

dn: dc=iesperemaria, dc=com
objectclass: dcObject
objectclass: organization
o: IESPEREMARIA
dc: iesperemaria

dn: cn=Manager,dc=iesperemaria, dc=com
objectclass: organizationalRole
cn:Manager

---- fin archivo inicial.ldif

ldapadd ­x ­D "cn=Manager,dc=iesperemaria,dc=com" ­W ­f inicial.ldif


Crear las distintas entradas.
Creamos por ejemplo una organización que sea alumnos, y dentro de ella un alumno.
Hay que dejar una linea en blanco entre cada entrada del árbol

--- archivo nodos.ldif
dn:ou=Alumnos,dc=iesperemaria,dc=com
objectClass: organizationalUnit
ou: Alumnos

dn: uid=alu001 ,ou=Alumnos,dc=iesperemaria,dc=com
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
uid: alu001
cn: Alumno 001
givenname: Alumno
sn: 001
mobileTelephoneNumber: 666666666
mail: alu001@gmail.com

----fin nodos.ldif

ldapadd ­x ­D "cn=Manager,dc=iesperemaria,dc=com" ­W ­f nodos.ldif

LDAPMODIFY - AÑADIR ATRIBUTO / MODIFICAR VALOR ATRIBUTO / ELIMINAR ATRIBUTO
Por ejemplo:
1.-Modificar el email
2.-Añadir el atributo código postal.
3.-Eliminar el teléfono.

Me creo un archivo modificar.ldif que contiene:
-----
dn: uid=alu001 ,ou=Alumnos,dc=iesperemaria,dc=com
changetype: modify
replace: mail
mail: alu@gmail.com

dn: uid=alu001 ,ou=Alumnos,dc=iesperemaria,dc=com
changetype: modify
add: postalCode
postalCode: 03503

dn: uid=alu001 ,ou=Alumnos,dc=iesperemaria,dc=com
changetype: modify
delete: mobile
------

debian:/isp/openldap/bin# ./ldapmodify -x -D "cn=Manager,dc=iesperemaria, dc=com" -W -f modificar.ldif
Enter LDAP Password:
modifying entry "uid=acoloma,ou=Profesores,dc=iesperemaria,dc=com"


Para comprobar que las modificaciones se han echo podemos ejecutar:
debian:/isp/openldap/sbin# ./slapcat

LDAPMODIFY - MODIFICAR EL RDN

----rdn.ldif
dn:
uid=alu001,ou=Profesores,dc=iesperemaria,dc=com
changetype: modrdn
newrdn:
uid=Alumno 001
deleteoldrdn:1
----

La opción deleteoldrdn:
Si = 0 --> mantiene la entrada anterior.
Si = 1 --> modifica la entrada.


debian:/isp/openldap/bin# ./ldapmodify -x -D "cn=Manager,dc=iesperemaria, dc=com" -W -f rdn.ldif

LDAPDELETE
Elimina una entrada del directorio.

debian:/isp/openldap/bin# ./ldapdelete -W -D "cn=Manager,dc=iesperemaria,dc=com" uid=alu002,ou=Alumnos,dc=iesperemaria,dc=com
Enter LDAP Password:

Si ejecutamos slapcat comprobamos que el alumno alu002 ha sido eliminado del árbol de directorio.




ldap_bind: Invalid credentials (49)

debian:/isp/openldap/bin# ./ldapadd -x -D "cn=Manager, dc=iesperemaria,dc=com" -W -f personas.ldif
Enter LDAP Password:
ldap_bind: Invalid credentials (49)

Posiblemente sea error de la contraseña. Debes configurar en /etc/openldap/slapd.conf lo siguiente:

#Con esto, estoy asignado al usuario Manager como administrador. (ese usuario no tiene porque existir en el sistema Linux, le pongo ese nombre como otro cualquiera).
rootdn "cn=Manager,dc=iesperemaria,dc=com"

#Luego nos faltaría asignarle una contraseña.
#PRIMERA OPCIÓN: ASIGNARLE UNA CONTRASEÑA PLANA.
#Esto quiero decir que la contraseña será la palabra secret
rootpw secret

#SEGUNDA OPCION: ASIGNALE CONTRASEÑA ENCRIPTADA.
#con pasword-hash le indico el tipo de encriptación
#con rootpw y el tipo de encriptación, le añado la clave encriptada.
password-hash {MD5}
rootpw {MD5}5XJsaCEF5IJSIJkJjIbXBA==

------- /Fin de modificaciones en slapd.conf

Para gener una clave encriptada hacemos:

/usr/sbin/slappasswd -h {tipo de encriptacion}

Por ejemplo:
debian:/isp/openldap/sbin# ./slappasswd -h {MD5}
New password:
Re-enter new password:
{MD5}5XJsaCEF5IJSIJkJjIbXBA==


Este es la contraseña encriptada que añadiremos al slapd.conf


Puedes ver los archivos de logs para comprobar los errores
cat /var/log/messages
cat /var/log/syslog

ldap_add: Server is unwilling to perform (53)

Comprueba el archivo .ldif, que posiblemente esté indicando mal al árbol de directorios.
Fijate si, dn: dc=iesperemaria, dc=com, se corresponde con el dc del /etc/openldap/ slapd.conf

Puedes ver los archivos de logs para comprobar los errores
cat /var/log/messages
cat /var/log/syslog
palyginti kainas