GNU/Linux >> Znalost Linux >  >> Cent OS

Nakonfigurujte replikaci OpenLDAP Multi-Master v systému Linux

V této příručce nakonfigurujeme replikaci multimaster serveru OpenLDAP na CentOS 7 / RHEL 7 . Toto nastavení replikace Multi-Master má překonat omezení typické replikace Master-Slave, kde změny v adresáři LDAP provádí pouze hlavní server. .

ČTĚTE:Jak nakonfigurovat replikaci OpenLDAP Master-Slave

V replikaci Multi-Master fungují dva nebo více serverů jako hlavní a všechny tyto jsou autoritativní pro jakoukoli změnu v adresáři LDAP. Dotazy od klientů jsou distribuovány na více serverů pomocí replikace.

Životní prostředí

Pro replikaci Multi-Master použijeme tři OpenLDAP servery. Podrobnosti jsou uvedeny níže.

ldpsrv1.itzgeek.local (192.168.12.10)
ldpsrv2.itzgeek.local (192.168.12.20)
ldpsrv3.itzgeek.local (192.168.12.30)

Nainstalovat LDAP

Nainstalujte balíčky LDAP na všechny své servery.
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel

Spusťte službu LDAP a povolte ji pro automatické spouštění při spouštění systému.

systemctl start slapd.service
systemctl enable slapd.service

Konfigurace protokolování LDAP

Nakonfigurujte syslog pro povolení protokolování LDAP.

echo "local4.* /var/log/ldap.log" >> /etc/rsyslog.conf
systemctl restart rsyslog

Konfigurace replikace OpenLDAP Multi-Master Replication

Zkopírujte konfigurační soubor ukázkové databáze do /var/lib/ldap adresář a aktualizujte oprávnění k souboru. Pokud není uvedeno jinak, budete muset provést níže uvedené kroky na všech vašich serverech OpenLDAP.

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*

Povolíme modul syncprov.

vi syncprov_mod.ldif

Zkopírujte a vložte níže uvedené řádky do výše uvedeného syncprov_mod.ldif soubor.

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la

Nyní odešlete konfiguraci na server LDAP.

ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov_mod.ldif

Výstup:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config"

Povolit replikaci konfigurace

Změňte olcServerID na všech serverech . Například pro ldpsrv1 nastavte olcServerID na 1, pro ldpsrv2 nastavte olcServerID na 2 a pro ldpsrv3 nastavte na 3.

vi olcserverid.ldif

Zkopírujte a vložte níže uvedený text do výše uvedeného souboru.

dn: cn=config
changetype: modify
add: olcServerID
olcServerID: 1

Aktualizujte konfiguraci na serveru LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f olcserverid.ldif

Výstup:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

Potřebujeme vygenerovat heslo pro replikaci konfigurace LDAP.

slappasswd

Výstup:

New password:
Re-enter new password:
{SSHA}MAfw/QNizKx4NxueW7CpCSN6jeDB5Z+C

Na každém serveru byste měli vygenerovat heslo spuštěním příkazu slappasswd.

Nastavte heslo pro konfigurační databázi.

vi olcdatabase.ldif

Zkopírujte a vložte níže uvedený text do výše uvedeného souboru. Do tohoto souboru musíte vložit heslo, které jste vygenerovali v předchozím kroku.

dn: olcDatabase={0}config,cn=config
add: olcRootPW
olcRootPW: {SSHA}MAfw/QNizKx4NxueW7CpCSN6jeDB5Z+C

Aktualizujte konfiguraci na serveru LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f olcdatabase.ldif

Výstup:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

Nyní nastavíme replikaci konfigurace na všech serverech.

vi configrep.ldif

Zkopírujte a vložte níže uvedený text do výše uvedeného souboru.

### Update Server ID with LDAP URL ###

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 ldap://ldpsrv1.itzgeek.local
olcServerID: 2 ldap://ldpsrv2.itzgeek.local
olcServerID: 3 ldap://ldpsrv3.itzgeek.local

### Enable Config Replication###

dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

### Adding config details for confDB replication ###

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001 provider=ldap://ldpsrv1.itzgeek.local binddn="cn=config"
  bindmethod=simple credentials=x searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncRepl: rid=002 provider=ldap://ldpsrv2.itzgeek.local binddn="cn=config"
  bindmethod=simple credentials=x searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncRepl: rid=003 provider=ldap://ldpsrv3.itzgeek.local binddn="cn=config"
  bindmethod=simple credentials=x searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE

Nyní odešlete konfiguraci na server LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f configrep.ldif

Výstup:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

adding new entry "olcOverlay=syncprov,olcDatabase={0}config,cn=config"

modifying entry "olcDatabase={0}config,cn=config"

Povolit replikaci databáze

Do této doby jsou všechny vaše konfigurace LDAP replikovány. Nyní povolíme replikaci skutečných dat, tedy databáze uživatelů. Proveďte níže uvedené kroky na kterémkoli z uzlů, protože ostatní uzly jsou v replikaci.

Potřebovali bychom povolit syncprov pro databázi hdb.

vi syncprov.ldif

Zkopírujte a vložte níže uvedený text do výše uvedeného souboru.

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

Aktualizujte konfiguraci na serveru LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f syncprov.ldif

Výstup:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"

Nastavení replikace pro databázi hdb.

vi olcdatabasehdb.ldif

Zkopírujte a vložte níže uvedený obsah do výše uvedeného souboru. Pokud je již v konfiguraci máte, může se zobrazit chyba pro olcSuffix, olcRootDN a olcRootPW. Odeberte položky, pokud nejsou vyžadovány.

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=itzgeek,dc=local
-
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=itzgeek,dc=local
-
replace: olcRootPW
olcRootPW: {SSHA}xtbbtC/1pJclCPzo1n3Szac9jqavSphk
-
add: olcSyncRepl
olcSyncRepl: rid=004 provider=ldap://ldpsrv1.itzgeek.local binddn="cn=ldapadm,dc=itzgeek,dc=local" bindmethod=simple
  credentials=x searchbase="dc=itzgeek,dc=local" type=refreshOnly
  interval=00:00:00:10 retry="5 5 300 5" timeout=1
olcSyncRepl: rid=005 provider=ldap://ldpsrv2.itzgeek.local binddn="cn=ldapadm,dc=itzgeek,dc=local" bindmethod=simple
  credentials=x searchbase="dc=itzgeek,dc=local" type=refreshOnly
  interval=00:00:00:10 retry="5 5 300 5" timeout=1
olcSyncRepl: rid=006 provider=ldap://ldpsrv3.itzgeek.local binddn="cn=ldapadm,dc=itzgeek,dc=local" bindmethod=simple
  credentials=x searchbase="dc=itzgeek,dc=local" type=refreshOnly
  interval=00:00:00:10 retry="5 5 300 5" timeout=1
-
add: olcDbIndex
olcDbIndex: entryUUID  eq
-
add: olcDbIndex
olcDbIndex: entryCSN  eq
-
add: olcMirrorMode
olcMirrorMode: TRUE

Po aktualizaci souboru odešlete konfiguraci na server LDAP.

ldapmodify -Y EXTERNAL  -H ldapi:/// -f olcdatabasehdb.ldif

Výstup:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"

Proveďte změny v souboru olcDatabase={1}monitor.ldif k omezení přístupu k monitoru pouze na kořenový adresář LDAP (ldapadm ) uživateli, nikoli ostatním.

# vi monitor.ldif

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=itzgeek,dc=local" read by * none

Po aktualizaci souboru odešlete konfiguraci na server LDAP.

ldapmodify -Y EXTERNAL  -H ldapi:/// -f monitor.ldif

Přidejte schémata LDAP.

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

Vygenerujte base.ldif soubor pro vaši doménu.

# vi base.ldiff

dn: dc=itzgeek,dc=local
dc: itzgeek
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=itzgeek,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou=People,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: Group

Vytvořte adresářovou strukturu.

ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f base.ldif

Výstup:

Enter LDAP Password:
adding new entry "dc=itzgeek,dc=local"

adding new entry "cn=ldapadm ,dc=itzgeek,dc=local"

adding new entry "ou=People,dc=itzgeek,dc=local"

adding new entry "ou=Group,dc=itzgeek,dc=local"

Otestujte replikaci LDAP

Pojďme vytvořit uživatelský LDAP s názvem „ldaptest “ na kterémkoli z vašich hlavních serverů vytvořte soubor .ldif soubor na ldpsrv1.itzgeek.local (v mém případě).

[root@ldpsrv1 ~]# vi ldaptest.ldif

Aktualizujte výše uvedený soubor obsahem níže.

dn: uid=ldaptest,ou=People,dc=itzgeek,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldaptest
uid: ldaptest
uidNumber: 9988
gidNumber: 100
homeDirectory: /home/ldaptest
loginShell: /bin/bash
gecos: LDAP Replication Test User
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

Přidejte uživatele na server LDAP pomocí ldapadd příkaz.

[root@ldpsrv1 ~]# ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f ldaptest.ldif

Výstup:

Enter LDAP Password:
adding new entry "uid=ldaptest,ou=People,dc=itzgeek,dc=local"

Vyhledejte „ldaptest ” na jiném hlavním serveru (ldpsrv2.itzgeek.local ).

[root@ldpsrv2 ~]# ldapsearch -x cn=ldaptest -b dc=itzgeek,dc=local

Výstup:

# extended LDIF
#
# LDAPv3
# base <dc=itzgeek,dc=local> with scope subtree
# filter: cn=ldaptest
# requesting: ALL
#

# ldaptest, People, itzgeek.local
dn: uid=ldaptest,ou=People,dc=itzgeek,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldaptest
uid: ldaptest
uidNumber: 9988
gidNumber: 100
homeDirectory: /home/ldaptest
loginShell: /bin/bash
gecos: LDAP Replication Test User
userPassword:: e2NyeXB0fXg=
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Nyní nastavte heslo pro uživatele vytvořené na ldpsrv1.itzgeek.local přechodem na ldpsrv2.itzgeek.local . Pokud můžete nastavit heslo, znamená to, že replikace funguje podle očekávání.

[root@ldpsrv2 ~]# ldappasswd -s password123 -W -D "cn=ldapadm,dc=itzgeek,dc=local" -x "uid=ldaptest,ou=People,dc=itzgeek,dc=local"

Kde,

-s zadejte heslo pro uživatelské jméno

-x uživatelské jméno, pro které je změněno heslo

-D Rozlišovací název pro ověření na serveru LDAP.

V topologii replikace Master-Slave nemůžete nastavit heslo pro uživatele LDAP na podřízeném serveru.

Doplňky

Nakonfigurujte klienta LDAP, aby se také vázal na nový hlavní server.

authconfig --enableldap --enableldapauth --ldapserver=ldpsrv1.itzgeek.local,ldpsrv2.itzgeek.local,ldpsrv3.itzgeek.local --ldapbasedn="dc=itzgeek,dc=local" --enablemkhomedir --update

To je vše.


Cent OS
  1. Jak nakonfigurovat replikaci MySQL Multi-Master Replication na Oracle Linux

  2. Jak nainstalovat a nakonfigurovat Redis 6 na Rocky Linux/Centos 8

  3. Nakonfigurujte replikaci zdrojové repliky MySQL

  1. Nakonfigurujte svůj server OpenVPN v systému Linux

  2. Nakonfigurujte replikaci zdroje MySQL

  3. Služba Linux OS „ldap“

  1. Krok za krokem Konfigurace serveru OpenLDAP na CentOS 7 / RHEL 7

  2. Nakonfigurujte OpenVPN LDAP Based Authentication

  3. Jak nainstalovat a nakonfigurovat OpenLDAP na CentOS / RHEL Linux