Table of Contents

Replicações Master-Slave

O OpenLDAP suporta replicações master-slave também, em que o master receberá as requisições de leitura e gravação e o slave receberá somente requisições de leitura, não sendo possível gravar dados nesta base.

Configurando Servidor Master

A configuração do servidor master se faz da maneira que fizemos aqui Replicação LDAP utilizando SyncRepl

Configurando Servidor Slave

# apt-get install slapd ldap-utils

Antes de continuar teremos que definir uma senha para o superusuário da base cn=config:

# slappasswd -h {SSHA}
New password: 
Re-enter new password: 
{SSHA}kA9brSEK/lQr53YaiWB1TNgrTLCf3/JO
# cat admin.ldif 
dn: cn=config
changetype: modify
 
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}kA9brSEK/lQr53YaiWB1TNgrTLCf3/JO
 
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess
# ldapadd -H ldapi:/// -Y EXTERNAL -f admin.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
 
modifying entry "olcDatabase={0}config,cn=config"
 
modifying entry "olcDatabase={0}config,cn=config"

Agora vamos copiar o certificado do master

# mkdir /etc/ldap/tls
# scp 192.0.2.110:/etc/ldap/tls/cacert.pem /etc/ldap/tls/

Arquivo de replicação:

# cat repica-slave.ldif
dn: olcdatabase={1}hdb,cn=config
changetype: modify
replace: olcsyncRepl
olcsyncrepl: rid=003 provider=ldap://ldapmaster01.laboratorio.com.br type=refreshAndPersist interval=00:00:00:10 searchbase=dc=laboratorio,dc=com,dc=br filter="(objectClass=*)" scope=sub attrs="*" schemachecking=off bindmethod=simple starttls=yes tls_cacert=/etc/ldap/tls/cacert.pem binddn=cn=Replicator,dc=laboratorio,dc=com,dc=br credentials=senha retry="10 +"
# ldapmodify -x -D cn=admin,cn=config -w senha -f repica-slave.ldif 
modifying entry "olcdatabase={1}hdb,cn=config"

Configuração do cliente

# cat /etc/ldap/ldap.conf 
#
# LDAP Defaults
#
 
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
 
#BASE	dc=example,dc=com
#URI	ldap://ldap.example.com ldap://ldap-master.example.com:666
BASE    dc=laboratorio,dc=com,dc=br
URI     ldap://ldapmaster01.laboratorio.com.br
#SIZELIMIT	12
#TIMELIMIT	15
#DEREF		never
 
# TLS certificates (needed for GnuTLS)
#TLS_CACERT	/etc/ssl/certs/ca-certificates.crt
TLS_CACERT      /etc/ldap/tls/cacert.pem
TLS_REQCERT	allow

Testando a Replicação

Para testar a Replicação no servidor LDAP Filial, pare o servidor e remova a base.

# service slapd stop
# rm -rf /var/lib/ldap/*

Reinicie o LDAP do servidor ldapmaster01 e veja que nossa base no slave já está populada.

# service slapd start
# ldapsearch -ZZ -LLL -D cn=admin,cn=config -w senha -b dc=laboratorio,dc=com,dc=br