Alberto Garcia

Configuració del servei OpenLDAP

El primer que farem sera actualitzar els paquets instalats, i farem la instalacio del paquet de OpenLDAP

  sudo apt-get update && sudo apt-get install slapd ldap-utils db4.8-util -y
vagrant@debian:~$ sudo /usr/sbin/slapd -VV
$OpenLDAP: slapd 2.5.13+dfsg-5 (Feb  8 2023 01:56:12)

Ara el que farem amb la següent comanda configurarem el servei i seguirem la configuracio de les imatges 

sudo dpkg-reconfigure -plow slapd

Per organitzar el directori, crearem un arxiu amb format LDIF que servirà per definir les Unitats Organitzatives d’usuaris i grups.

vim estructura.ldif

Copia i enganxa aquest contingut exactament:

dn: ou=usuaris,dc=illa3,dc=es
objectClass: organizationalUnit
ou: usuaris

dn: ou=grups,dc=illa3,dc=es
objectClass: organizationalUnit
ou: grups

Utilitzarem la següent comanda per afegir aquestes unitats organitzatives, identificant-nos com a administradors del domini illa3.es

ldapadd -x -D "cn=admin,dc=illa3,dc=es" -W -f estructura.ldif
vagrant@debian:~$ ldapadd -x -D "cn=admin,dc=illa3,dc=es" -W -f estructura.ldif
Enter LDAP Password: 
adding new entry "ou=usuaris,dc=illa3,dc=es"

adding new entry "ou=grups,dc=illa3,dc=es"

Per demostrar que tot funciona, ara crearem un usuari anomenat ‘Joan’ dins de la unitat organitzativa d’usuaris.

vim usuari.ldif

Copia i enganxa aquest contingut dintre de l’arxiu creat

dn: uid=alvaro,ou=usuaris,dc=illa3,dc=es
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: alvaro
sn: Perez
givenName: Alvaro
cn: Alvaro Perez
displayName: Alvaro Perez
uidNumber: 10000
gidNumber: 10000
userPassword: {SSHA}hola1
# Contraseña d'exemple
loginShell: /bin/bash
homeDirectory: /home/Alvaro
vagrant@debian:~$ 

Executa la comanda per afegir-lo

ldapadd -x -D "cn=admin,dc=illa3,dc=es" -W -f usuari.ldif
vagrant@debian:~$ ldapadd -x -D "cn=admin,dc=illa3,dc=es" -W -f usuari.ldif
Enter LDAP Password: 
adding new entry "uid=alvaro,ou=usuaris,dc=illa3,dc=es"

Per acabar farem una prova, fem una cerca per veure l’usuari ‘Alvaro’ dins del directori, per veure si el servei permet gestionar usuaris correctament:

ldapsearch -x -b "ou=usuaris,dc=illa3,dc=es" "(uid=alvaro)"
vagrant@debian:~$ ldapsearch -x -b "ou=usuaris,dc=illa3,dc=es" "(uid=alvaro)"
# extended LDIF
#
# LDAPv3
# base <ou=usuaris,dc=illa3,dc=es> with scope subtree
# filter: (uid=alvaro)
# requesting: ALL
#

# alvaro, usuaris, illa3.es
dn: uid=alvaro,ou=usuaris,dc=illa3,dc=es
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: alvaro
sn: Perez
givenName: Alvaro
cn: Alvaro Perez
displayName: Alvaro Perez
uidNumber: 10000
gidNumber: 10000
loginShell: /bin/bash
homeDirectory: /home/Alvaro

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Per fer la prova final i veure que tot funciona bé, farem una cerca usant l’usuari acabat de crear, per veure que té accés a la base de dades i tot funciona correcte.

ldapsearch -x -D "uid=alvaro,ou=usuaris,dc=illa3,dc=es" -W -b "dc=illa3,dc=es" -s base
vagrant@debian:~$ ldapsearch -x -D "uid=alvaro,ou=usuaris,dc=illa3,dc=es" -W -b "dc=illa3,dc=es" -s base
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=illa3,dc=es> with scope baseObject
# filter: (objectclass=*)
# requesting: ALL
#

# illa3.es
dn: dc=illa3,dc=es
objectClass: top
objectClass: dcObject
objectClass: organization
o: illa3
dc: illa3

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1