Tu sei qui: Portale > LPI > LPIC-301 > Primo file di configurazione di OpenLDAP

Primo file di configurazione di OpenLDAP

Il contenuto qui presente viene distribuito sotto la licenza CC BY-NC-SA v3.0. Per maggiori dettagli http://creativecommons.org/licenses/by-nc-sa/3.0/. Content on this page is licensed under Creative Commons Attribution Non Commercial Share Alike v3.0. For details visit http://creativecommons.org/licenses/by-nc-sa/3.0/
— archiviato sotto: , , , , ,

Il primo passo per avere un server LDAP funzionante, modificandone il file di configurazione principale slapd.conf

Premessa

Una volta installato OpenLDAP, bisognerà iniziare a configurarlo per testarne il corretto funzionamento ed anche per iniziare a capire quali sono le direttive lo governano; per fare questo inizieremo con una configurazione molto semplice e di facile utilizzo, ma di cui si sconsiglia il suo utilizzo in ambienti produttivi.

slapd.conf

Di seguito il file di configurazione slapd.conf che dovrà essere posto nella directory /usr/local/etc/openldap

########
# Base #
########
include		/usr/local/etc/openldap/schema/core.schema
include		/usr/local/etc/openldap/schema/cosine.schema
include		/usr/local/etc/openldap/schema/inetorgperson.schema

pidfile		/usr/local/var/run/slapd.pid
argsfile	/usr/local/var/run/slapd.args
loglevel	none
modulepath	/usr/local/libexec/openldap
moduleload	back_hdb

###############################
# Configurazione del Database #
###############################
database	hdb
suffix		"dc=example,dc=com"
rootdn		"cn=Admin,dc=example,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw		passwordSegreta
# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory	/usr/local/var/openldap-data
# Indices to maintain
index	objectClass	eq
index	cn	sub,eq

#######
# ACL #
#######
access to attrs=userPassword
 by anonymous auth
 by self write
 by * none

access to *
 by self write
 by * none

Analisi del contenuto

Come potete vedere il file slapd.conf viene suddiviso in tre macrosezioni che corrispondono:

  • Base
  • Configurazione del database
  • Access Control List

Dove nella base saranno contenute le direttive che regolano il comportamento del nostro demone slapd; nella sezione di configurazione del database saranno incluse quelle relative allo storage utilizzato; in ultimo invece avremo le direttive relative al controllo degli accessi. Comunque di seguito una spiegazione per punti delle tre istanze incontrate.

Base

Con include potremo includere altri file di configurazione all'interno del nostro file principale, per fare questo si dovrà utilizzare un path assoluto e non relativo. Nel nostro esempio vengono caricati gli schemi del core, del cosine e l'inetorgperson (il significato degli schemi verrà affrontato più avanti).
Con pidfile verrà indicato il file utilizzato dal nostro demone per scriverci il numero del nostro process identification (PID) utile ad esempio agli script di init per riconoscere univocamente il PID del demone. Ad esempio per effettuare il kill del demone potremmo eseguire il comando

$ sudo cat /usr/local/etc/openldap/slapd.conf | egrep '^pidfile' | \
    awk '{print $2}' | xargs sudo cat | xargs sudo kill

Con argsfile indicheremo il file testuale che conterrà i parametri passati al nostro demone slapd all'avvio, che equivale a quello che potreste trovare nel file cmdline del proc file system associato al processo slapd.
Con modulepath si indicherà, sempre tramite percorso assoluto, dove il demone slapd andrà a ricercare i moduli che dovrà caricare.
Con moduleload indicheremo i moduli che si dovranno caricare. Per fare questo si potrà indicare il solo nome del modulo, e nel qual caso verrà ricercato nelle directory indicate nella direttiva modulepath, oppure si potrà immettere il percorso assoluto del modulo.

Configurazione del database

Con database indicheremo la tipologia di database utilizzata dal nostro demone per storicizzare i record, e nel nostro caso è impostata a hdb che equivale a Hierarchical DataBase.
Con suffix andremo ad indicare il nostro "Distinguished Names" che servirà il nostro server LDAP.
Con rootdn andremo ad indicare il nostro Directory Manager, che è l'utente speciale privilegiato che potrà essere utilizzato per l'amministrazione del nostro server LDAP.
Con rootpw indicheremo la password dell'utente definito nella direttiva rootdn, nel nostro caso viene utilizzata una password in chiaro nel file, ed anche per questo motivo la presente configurazione non dovrà essere utilizzata in produzione.
Con directory indicheremo la directory dove verrà storicizzato il database vero e proprio.
Con index indicheremo quali indici far costruire al nostro server e su quali campi.

Controllo degli accessi

In ultimo andremo ad inserire le regole di accesso al contenuto presente nel nostro server, ma per ora ci basta sapere che con il primo gruppo di regole andremo a definire il cosidetto "binding" dell'utente, ovvero se questo cerca di accedere all'attriburo userPassword, se non si è ancora autenticato (anonymous) gli verrà richiesta l'autenticazione; nel caso si sia già autenticato potrà modificare il suo attributo userPassword (self) potendo così effettuare il cambio password; ed in ultimo per tutti gli altri casi verrà negato l'accesso.
Metre la seconda acl andrà a definire i permessi di default, dove il possessore avrà il permesso di scrittura, in caso contrario invece non potrà accederci.

Avvio del servizio

A questo punto non ci resta che avviare il demone slapd in modo tale che possa rispondere alle richieste dei client e verificarne così la correttezza della configurazione, per fare questo da terminale potremmo lanciare:

$ sudo /usr/local/libexec/slapd -f /usr/local/etc/openldap/slapd.conf
Azioni sul documento