Néha előfordulhat, hogy valamilyen oknál fogva helyre kell állítani az LDAP-t vagy a rendszert átköltöztetjük máshova. Ehhez szükségünk van az adatbázisunkra, amit egy működő rendszer esetén
a következő parancsal tudunk kinyerni egy ldif fájlba:
slapcat -l ldap.ldif
A konfig fájlok természetesen ugye megvannak, így kezdjünk is hozzá.
1.
Állítsuk le az ldap szervert:
/etc/init.d/slapd.stop
2.
Ha már az új cn=config szerkezetű fájljaink vannak a cél rendszeren és mi is ilyeneket birtoklunk, akkor egyszerűen írjuk felük őket és akkor máris az új beállításink lesznek érvényben.
Ha a régi slapd.conf fájlt szeretnénk használni, akkor törüljük a slapd.d mappát mindenestől és másoljuk simán a slapd.conf-ot az /etc/ldap mappa gyökerébe.
Amennyiben viszont slapd.conf-unk van és már az új szerkezetet szeretnénk használni, akkor először is csinálunk egy slapd.d mappát a az /etc/ldap mappába(vagy ha van, akkor a slapd.d tartalmát törüljük csak ki). Ezután pedig adjuk ki a következő parancsot:
slaptest -f slapd.conf -F slapd.d
Ha a mappában benne van a slapd.conf törüljük különben ez fog érvényes lenni nem az új fájlok.
3.
Ezután az adatbázist hozzuk létre a mentésünkből. A /var/lib/ldap mappának a tartalmát törüljük és töltsük fel a jó adatbázist:
slapadd -l ldap.ldif
Ha nincs ldif-ünk, akkor átmásolhatjuk a régi szerverről is az adatbázis fájlokat, de akkor azért érdemes ugyanolyan ldap verziónál és ugyanolyan konfig fájloknál maradni és ha működik, akkor felfrissíteni.
4.
Adjunk jogokat a fájlokra, hogy az openldap jogában fussanak különben nem fog működni.
chown -R openldap:openldap /etc/ldap/*
chown -R openldap:openldap /var/lib/ldap/*
5.
Elindíthatjuk a szervert:
/etc/init.d/slapd start
Ezután választ kell adni az ldapsearch -x parancsra.
Előfordul, hogy több szerverünk is van amiken ugyanazokat a felhasználói információkat szeretnénk elérni. Vagy egyszerűen csak szeretnénk ha redundáns lenne a címtárunk. Többféle lehetőség van, mi a mirrormod -os replikációt fogjuk használni. Ami egyszerűen tükrözni fogja az adatbázist a szerverek között. Ha valamelyiken megváltozik valakinek a jelszava, akkor az összese többin is megfog változni. Lehet állítani a frissítés idejét, hogy azonnal vagy mennyi időközönként történjen, így nem terheli folyamatosan a szervert.
A slapd.conf végére írhatjuk a következő paramétereket. A serverID a szervert azonosítja minden szerveren más azonosítóra van szükség. Be kell tölteni a modult syncprov modult a szinkronizáláshoz. Minden szerveren, minden egyes szervert fel kell venni, hogy eltudják érni egymást a replikáció során. Írjuk be az ldap jelszavát és a frissítési gyakoriságot is meghatározhatjuk. Engedélyezzük a tükrözéses módot.
serverID 1
moduleload syncprov
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
syncrepl rid=001
provider=ldap://10.0.0.1
bindmethod=simple
binddn="cn=replica,dc=ceg,dc=hu"
credentials="jelszó"
searchbase="dc=ceg,dc=hu"
schemachecking=on
type=refreshAndPersist
retry="60 +"
syncrepl rid=002
provider=ldap://10.0.0.2
bindmethod=simple
binddn="cn=replica,dc=ceg,dc=hu"
credentials="jelszó"
searchbase="dc=ceg,dc=hu"
schemachecking=on
type=refreshAndPersist
retry="60 +"
mirrormode on
Aki figyelt észrevett egy érdekességet, hogy még nincs replica felhasználónk. Hozzunk létre egy fájlt a következő tartalommal:
dn: cn=replicator,dc=ceg,dc=hu
cn: replicator
objectClass: top
objectClass: organizationalRole
objectClass: simpleSecurityObject
userPassword: {SSHA}JXkMpPzYB5N4W8ZhH9FpCuodrzcD2WGv
description: LDAP replicator
Az userPassword sorba ne ezt másoljuk be hanem adjuk ki slappasswd -h {SSHA} parancsot. Majd írjuk be az ldap jelszavát és a kapott jelszót másoljuk be ide.
Adjuk hozzá a replica felhasználót a következő paranccsal, majd adjuk meg az ldap jelszavát is.
ldapmodify -a -x -D 'cn=admin,dc=akarmi,dc=intra' -W -f replicator.ldif
Ezután a többi szerverünkön is megcsinálhatjuk ugyanezeket a metódusokat, vagy ha az adatbázist és a konfigurációs fájlokat másoljuk át, az is megfelelő út lehet. Kipróbálni egyszerűen csak változtassunk meg valamit az egyiken és nézzük meg a másikon, hogy ott megváltozott-e.