Servidor de comunicacions Institut les Planes
El primer que farem serà instal·lar aquest paquet, en la màquina en la que volem tenir una còpia del servidor Ldap.
# apt-get install slapd ldap-utils
També aturarem el servei Ldap en el servidor:
# service slapd stop
Ara farem una còpia de les carpetes necessàries, amb:
# mv /var/lib/ldap /var/lib/ldap.backup # mv /etc/ldap /etc/ldap.backup
Després còpiem els arxius al client
# scp -pr [email protected]:/var/lib/ldap.backup /var/lib/ # scp -pr [email protected]:/etc/ldap.backup /etc/
Ara arreglem els permisos:
# chown -R openldap:openldap /var/lib/ldap.backup # chown -R openldap:openldap /etc/ldap.backup/slapd.d
Finalment ja podem provar la còpia, en el client activem Ldap:
# service slapd start
El primer que farem serà instal·lar aquest paquet, en la màquina en la que volem tenir una còpia del servidor Ldap.
# apt-get install slapd ldap-utils
També aturarem el servei Ldap en el servidor:
# service slapd stop
Amb aquesta comanda fem una còpia del servidor Ldap.
# slapcat > ldapbackup.ldif
Ara farem una còpia de les carpetes necessàries, amb:
# mv /etc/ldap /etc/ldap.copia
Després còpiem els arxius a la màquina que farà de servidor de replica.
# scp -pr [email protected]:/etc/ldap.copia /etc
# chown -R openldap:openldap /etc/ldap.copia/slapd.d
# apt-get install backupninja
# ninjahelper
$ sudo nano /etc/backup.d/30.ldap
method = ldapsearch compress = yes restart = no binddn = cn=admin,dc=inslesplanes,dc=santabarbara,dc=cat passwordfile = /etc/backup.d/.password.ldap ssl = no tls = no # backupdir = /var/backups/ldap # conf = /etc/ldap/slapd.conf # databases = all databases = dc=inslesplanes,dc=santabarbara,dc=cat
Tot seguit veurem la configuració del servidor mestre (master o provider).
Servidor Master
Configuració amb cn=config
$ mkdir /etc/ldap/configurarreplica/ $ cd /etc/ldap/configurarreplica/
$ sudo nano provider_sync.ldif
# Add indexes to the frontend db. dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: entryCSN eq - add: olcDbIndex olcDbIndex: entryUUID eq #Load the syncprov and accesslog modules. dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: syncprov - add: olcModuleLoad olcModuleLoad: accesslog # Accesslog database definitions dn: olcDatabase={2}hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {2}hdb olcDbDirectory: /var/lib/ldap/accesslog olcSuffix: cn=accesslog olcRootDN: cn=admin,dc=inslesplanes,dc=santabarbara,dc=cat olcDbIndex: default eq olcDbIndex: entryCSN,objectClass,reqEnd,reqResult,reqStart # Accesslog db syncprov. dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpNoPresent: TRUE olcSpReloadHint: TRUE # syncrepl Provider for primary db dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpNoPresent: TRUE # accesslog overlay definitions for primary db dn: olcOverlay=accesslog,olcDatabase={1}hdb,cn=config objectClass: olcOverlayConfig objectClass: olcAccessLogConfig olcOverlay: accesslog olcAccessLogDB: cn=accesslog olcAccessLogOps: writes olcAccessLogSuccess: TRUE # scan the accesslog DB every day, and purge entries older than 7 days olcAccessLogPurge: 07+00:00 01+00:00
Hem de tindre en compte que hem de canviar la línia olcRootDN: cn=admin,dc=inslesplanes,dc=santabarbara,dc=cat i adaptar-la a la del nostre servidor
$ sudo -u openldap mkdir /var/lib/ldap/accesslog $ sudo -u openldap cp /var/lib/ldap/DB_CONFIG /var/lib/ldap/accesslog/
$ sudo nano /etc/apparmor.d/usr.sbin.slapd
/var/lib/ldap/accesslog/ r, /var/lib/ldap/accesslog/** rwk,
Al final del fitxer (abans però del }).
$ sudo /etc/init.d/apparmor reload
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f provider_sync.ldif
$ sudo ldapadd -x -D cn=admin,cn=config -W -f provider_sync.ldif
Servidor Slave (Esclau o Consumer)
Ldap#Instal.C2.B7laci.C3.B3
$ sudo mkdir /etc/ldap/configurareplica/ $ cd /etc/ldap/configurareplica/
$ sudo nano consumer_sync.ldif
#Load the syncprov module. dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: syncprov
# syncrepl specific indices dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: entryUUID eq - add: olcSyncRepl olcSyncRepl: rid=0 provider=ldap://ldap.inslesplanes.santabarbara.cat bindmethod=simple binddn="cn=admin,dc=inslesplanes,dc=santabarbara,dc=cat" credentials=secret searchbase="dc=inslesplanes,dc=santabarbara,dc=cat" logbase="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on type=refreshAndPersist retry="60 +" syncdata=accesslog - add: olcUpdateRef olcUpdateRef: ldap://ldap.inslesplanes.santabarbara.cat
{0}rid=0 provider=ldap://ldap.inslesplanes.santabarbara.cat bindmethod=simple starttls=critical binddn="cn=admin,dc=inslesplanes,dc=santabarbara,dc=com" credentials=PASSWORD searchbase="dc=inslesplanes,dc=santabarbara,dc=com" logbase="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=off type=refreshAndPersist retry="60 +" syncdata=accesslog
$ sudo ldapadd -c -Y EXTERNAL -H ldapi:/// -f consumer_sync.ldif
$ sudo ldapadd -x -D cn=admin,cn=config -W -f consumer_sync.ldif