backup e restore di ldap

Le informazioni residenti in ldap sono in genere importantissime. Infatti, in genere, riguardano informazioni su persone/contatti/amici/clienti/fornitori o addirittura sono account dai quali dipendono il login ed i livelli di accesso a importanti risorse come samba. Come proteggersi dalle perdite di dati?
Backup
Ho trovato almeno 3 modi per effettuare il backup di ldap:
Il modo più semplice per effettuare un backup manuale di ldap è quello di utilizzare phpldapadmin che, oltre ad essere un buon editor per le entries di ldap è anche un tool per esportare ed importarne le entries.
Si clicca su export e nel form che appare si indica la base DN (~ il ramo) dalla quale partire per fare il backup. Chiaramente per fare il backup di tutti i dati presenti in ldap dobbiamo indicare la base DN del server (~ la radice dell'albero).


Il secondo ed il terzo metodo sono scriptabili e non richiedono di fermare il servizio:
parametri usati:
- il server è: spippolo
- base DN è: dc=spippolo,dc=2v,dc=ntw]
- utente amministratore: admin
- password di amministratore: pippo
da console sul server su cui gira ldap
slapcat -f /etc/ldap/slapd.conf -b "dc=spippolo,dc=2v,dc=ntw" -l bck.ldif
da console anche su un server remoto rispetto a quello su cui gira ldap
ldapsearch -x -b "dc=spippolo,dc=2v,dc=ntw" -h spippolo -D "cn=admin,dc=spippolo,dc=2v,dc=ntw" -w pippo "(objectclass=*)" > bck.ldif
Restore
Similmente alla procedura di backup, il restore dei dati contenuti nel file bck.ldip può essere fatto con phpldapadmin selezionando la voce import e uploadando il file bck.ldif. (nota: se il file ldif è molto grosso l'upload potrebbe andare in timeout: in tal caso va modificato il file php.ini)
Ho notato che phpldapadmin consente di esportare le entry in formato ldif includendo anche gli attributi di sistema (tra i quali entryUUID) poi però provando a esportare, eliminare e importare una entry si ottiene il seguente errore:
LDAP said: Constraint violation Error number: 0x13 (LDAP_CONSTRAINT_VIOLATION) Description: Some constraint would be violated by performing the action. This can happen when you try to add a second value to a single-valued attribute, for example.
L'importazione fallisce e l'entry non ricompare.
Si risolve con usando slapaddsul server che ospita ldap
/etc/init.d/slapd stop slapadd -c < bck.ldif /etc/init.d/slapd start
è importante che l'ldif file all'inizio non contenga righe vuote, mentre ciascuna entry deve essere separata dalla successiva con una riga vuota.
Se il file ldif è stato creato con phpldapadmin va eliminata la riga: version: 1 che phpldapadmin aggiunge all'inizio del file
- dam's blog
- 874 reads

Post new comment