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

Commenti

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.

Ulteriori informazioni sulle opzioni di formattazione

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
Image CAPTCHA
Scrivi ció che vedi nella immagine.