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

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
2 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.