OpenLDAP (CentOS7)

Published by Lello on

LDAP (Lightweight Directory Access Protocol) è un protocollo per l’interrogazione e la modifica dei servizi di directory, intesi come raggruppamento di informazioni viste come record di dati ed organizzati in modo gerarchico.

Installiamo e configuriamo OpenLDAP sul nostro server; prima di tutto installiamo i packages essenziali:

# yum install -y openldap openldap-clients openldap-servers

Creiamo la struttura che conterrà il database ldap:

# mkdir -p /var/lib/ldap
# chown -R ldap.ldap /var/lib/ldap
# chmod 700 /var/lib/ldap

Scegliamo la password amministrativa per il database LDAP e generiamone l’hash:

# slappasswd
New password : passw0rd
Re-enter new password : passw0rd
{SSHA}axx0WbqYl+jtANWPe6mbldBsbjvpdSkb

Aggiungiamo l’utente amministratore con la sua password (anzi, con l’hash della sua password) alla configurazione ldap; editiamo il file /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif ed modifichiamolo nel seguente modo:

...
olcSuffix: dc=my-domain,dc=com
olcSuffix: dc=anthesia,dc=lan
...
olcRootDN: cn=Manager,dc=my-domain,dc=com
olcRootDN: cn=Manager,dc=anthesia,dc=lan
...
olcRootPW: {SSHA}axx0WbqYl+jtANWPe6mbldBsbjvpdSkb
...

NON usare l’utente root come amministratore dell’albero ldap (cn=root,dc=anthesia,dc=lan), in quanto OpenLDAP avrà dei problemi.

Modifichiamo l’accesso all’albero LDAP per dare all’utente cn=Manager,dc=anthesia,dc=lan  l’accesso come root; editiamo il file /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif:

# olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" read by dn.base="cn=Manager,dc=my-domain,dc=com" read by * none
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" read by dn.base="cn=Manager,dc=anthesia,dc=lan" read by * none

Avviamo ed abilitiamo il servizio:

# systemctl enable slapd
# systemctl start slapd

Creiamo manualmente la struttura radice del nostro albero LDAP; i nodi dell’albero LDAP vengono chiamate “entries” e possono rappresentare utenti, unità organizzative, domain controller o altro. Gli attributi di ogni entry sono determinati dallo schema LDAP, cioè un file dove vengono descritti gli attributi che quella entry può/deve avere. Per creare il nostro albero LDAP, dobbiamo cominciare dalla radice; tale radice viene chiamata “root entry”, che è un particolare tipo di entry chiamata domain controller (DC). Creeremo per il nostro scopo una entry domain controller chiamata dc=anthesia,dc=lan; per fare questo, creiamo il file /tmp/anthesia.ldif:

dn: dc=anthesia,dc=lan
objectClass: dcObject
objectClass: organization
dc: anthesia
o : Anthesia

Aggiungiamo il contenuto di questo file al nostro albero LDAP:

# ldapadd -f /tmp/anthesia.ldif -D cn=Manager,dc=anthesia,dc=lan -w passw0rd

Se è tutto andato bene, il nostro albero LDAP è stato creato (anzi, la nostra DC) e l’amministratore di tale albero è l’utente cn=Manager,dc=anthesia,dc=lan.

Facciamo una query all’albero per vedere se tutto funziona:

# ldapsearch -x -LLL -b dc=anthesia,dc=lan
dn: dc=anthesia,dc=lan
objectClass: dcObject
objectClass: organization
dc: anthesia
o: Anthesia

Il nostro OpenLDAP server è dunque operativo e funzionante.