replicação de ldap usando Syncrepl [RESOLVIDO]

1. replicação de ldap usando Syncrepl [RESOLVIDO]

Stefano Geovani Esmeris
stefano.esmeris

(usa Slackware)

Enviado em 05/05/2011 - 17:55h

Pessoal tenho 2 servidores CentOS 5, um deles possui um servidor LDAP ativo e funcional, o outro quero deixa-lo como redundancia, usando o Syncrepl como mecanismo de replicação. Ja tentei varias configuraçoes, tiradas do suporte oficial e de foruns de lingua inglesa sem sucesso. Se alguem puder contribuir com alguma dica, agradeço.

Stefano



  


2. MELHOR RESPOSTA

Daniel Magalhães Bicalho
danielmb

(usa Gentoo)

Enviado em 30/05/2011 - 10:26h

Stephano,
segue o arquivo sem comentários para enxugar a resposta:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/qmail.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/breduperson.schema

pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args

loglevel 256
logfile /var/log/ldap.log

modulepath /usr/lib/ldap
moduleload back_hdb
moduleload syncprov.la

sizelimit 500
tool-threads 1
serverID 001
backend hdb
database hdb
suffix "dc=dominio"
rootdn "cn=admin,dc=dominio"
rootpw "senha"

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

directory "/var/lib/ldap"

dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500

index objectClass eq
index entryCSN,entryUUID eq
index cn,sn,givenName eq,sub,approx
index mail eq,sub
index brPersonCPF eq

lastmod on
checkpoint 512 30
replogfile /var/log/ldap.log

syncrepl rid=001
provider=ldap://ip_do_servidor_2
type=refreshAndPersist
interval=00:00:00:10
searchbase="dc=dominio"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=admin,dc=dominio"
credentials="senha"
retry="60 +"
mirrormode on

access to dn.exact="dc=dominio"
by * read
access to dn.subtree="ou=pessoas,dc=dominio"
by dn="uid=mgu,ou=aplicacoes,dc=dominio" write
by anonymous auth
by self write
by * read
access to attrs=userPassword,shadowLastChange
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to attrs=loginShell
by dn="cn=samba,dc=dominio" write
by self write
by * read
access to attrs=gecos
by dn="cn=samba,dc=dominio" write
by self write
by * read
access to * by * read


3. Re: replicação de ldap usando Syncrepl [RESOLVIDO]

Daniel Magalhães Bicalho
danielmb

(usa Gentoo)

Enviado em 06/05/2011 - 07:54h

Stephano, você poderia deixar algum exemplos de configuração que você utilizou para que a gente possa começar a opinar sobre. Eu tenho um modelo de replicação funcional, espelhando as configurações e permitindo alta-disponibilidade. Segue o modelo de configuração. Quaisquer dúvidas estou a disposição.

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100


# Where to store the replica logs for database #1
#replogfile /var/lib/ldap/replog
replogfile /var/log/ldap.log

syncrepl rid=001
provider=ldap://<ip_do_servidor>
type=refreshAndPersist
interval=00:00:00:10
searchbase="dc=alguma,dc=empresa"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=admin,dc=alguma,dc=empresa"
credentials="senha_do_ldap"
retry="60 +"

mirrormode on



4. replicação de ldap usando Syncrepl

Stefano Geovani Esmeris
stefano.esmeris

(usa Slackware)

Enviado em 06/05/2011 - 08:23h

Prezado amigo, usei sua configuração sugerida, porem ainda ocorrem alguns erros. aqui esta meu slapd.conf do slave:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema

schemacheck on

allow bind_v2

pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

database bdb
suffix "dc=capile,dc=net"
rootdn "cn=root,dc=capile,dc=net"

rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
password-hash {SSHA}

directory /var/lib/ldap

index cn,sn,uid,displayName pres,sub,eq
index uidNumber,gidNumber eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index objectClass pres,eq
index default sub

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100


replogfile /var/log/ldap.log

syncrepl rid=001
provider=ldap://192.175.100.223
type=refreshAndPersist
interval=00:00:00:10
searchbase="dc=capile,dc=net"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=root,dc=capile,dc=net"
credentials='mypasswordhere'
retry="60 +"

mirrormode on


Com este arquivo ele ainda da 2 erros:
Conferindo arquivos de configuração para slapd: [FALHOU]
overlay "syncprov" not found
slaptest: bad configuration file!

e este outro:
Iniciando o slurpd: No replicas in slapd.conf file "/etc/openldap/slapd.conf"!
[FALHOU]
este ultimo relacionado a linha
replogfile /var/log/ldap.log

Alguma ideia destes erros? Ainda existe algo a ser configurado no servidor "Provider"?

Grato




5. Re: replicação de ldap usando Syncrepl [RESOLVIDO]

Daniel Magalhães Bicalho
danielmb

(usa Gentoo)

Enviado em 06/05/2011 - 10:10h

Bom stephano,
Na minha infraestrutura estão definidos o seguinte adicionalmente

slapd.conf Provedor
serverID 001
syncrepl rid=001
provider=ldap://ip_replicador
ype=refreshAndPersist
interval=00:00:00:10
searchbase="dc=alguma,dc=empresa"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=admin,dc=alguma,dc=empresa"
credentials="senha_do_ldap"
retry="60 +"


mirrormode on


slapd.conf Replicador
serverID 002
syncrepl rid=002
provider=ldap://ip_provedor
ype=refreshAndPersist
interval=00:00:00:10
searchbase="dc=alguma,dc=empresa"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=admin,dc=alguma,dc=empresa"
credentials="senha_do_ldap"
retry="60 +"

mirrormode on


Basicamente, altera as configurações de identificação de cada servidor permitindo a sua execução.

Em relação ao erro do arquivo de log, você vai precisar criá-lo manualmente e dar as permissões adequadas ao usuário que executa o ldap.

Sobre o erro do overlay, qual a versão do openldap que você está utilizando?


6. replicação de ldap usando Syncrepl

Stefano Geovani Esmeris
stefano.esmeris

(usa Slackware)

Enviado em 06/05/2011 - 11:38h

Bom a versao do provider é slapd 2.3.43 (Mar 30 2011 19:59:52) e a versao do consumer é slapd 2.3.39 (Jul 2 2008 06:19:36)( este é que da o erro de overlay)

Quanto ao erro do log precisei adicionar em AMBOS servidores a configuração:

replica uri=ldap://192.175.100.xxx
binddn="cn=root,dc=capile,dc=net"
bindmethod=simple
credentials='mypassword'

Isto esta correto? No entanto aparentemente nao esta ocorrendo a sincronização.

detalhe, no servidor "slave" eu havia feito uma carga previa da base de dados do servidor principal. No entanto nao estou percebendo sincronização entre eles.




7. Re: replicação de ldap usando Syncrepl [RESOLVIDO]

Daniel Magalhães Bicalho
danielmb

(usa Gentoo)

Enviado em 25/05/2011 - 09:47h

Stefano,
posta o log para gente depurar juntos


8. Re: replicação de ldap usando Syncrepl [RESOLVIDO]

Stefano Geovani Esmeris
stefano.esmeris

(usa Slackware)

Enviado em 25/05/2011 - 14:41h

Daniel, a principio o problema do erro de overlay esta resolvido, era bug da copia que eu tinha instalado. No entanto continua a nao replicar, tambem aparentemente o log fica zerado, e tambem o servidor fica indisponivel para atualizações, dando uma mensagem de "Server is unwilling to perform"

Outra coisa, nao sei se esta correto, mas apenas o serviço slapd esta rodando, o serviço slurpd parado.

segue abaixo um copia exata de como esta configurado meu servidor LDAP principal. Apenas as senhas foram alteradas para "xxx" por questoes de segurança.

# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
#include /etc/openldap/schema/redhat/autofs.schema
include /etc/openldap/schema/samba.schema
include /etc/openldap/schema/misc.schema
schemacheck on

# Allow LDAPv2 client connections. This is NOT the default.
allow bind_v2

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org


pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

# Load dynamic backend modules:
modulepath /usr/lib/openldap

#moduleload back_bdb
#moduleload back_monitor
#moduleload syncprov

# Modules available in openldap-servers-overlays RPM package
# Module syncprov.la is now statically linked with slapd and there
# is no need to load it here
# moduleload accesslog.la
# moduleload auditlog.la
# moduleload denyop.la
# moduleload dyngroup.la
# moduleload dynlist.la
# moduleload lastmod.la
# moduleload pcache.la
# moduleload ppolicy.la
# moduleload refint.la
# moduleload retcode.la
# moduleload rwm.la
# moduleload smbk5pwd.la
# moduleload translucent.la
# moduleload unique.la
# moduleload valsort.la

# modules available in openldap-servers-sql RPM package:
# moduleload back_sql.la

# The next three lines allow use of TLS for encrypting connections using a
# dummy test certificate which you can generate by changing to
# /etc/pki/tls/certs, running "make slapd.pem", and fixing permissions on
# slapd.pem so that the ldap user or group can read it. Your client software
# may balk at self-signed certificates, however.
# TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
# TLSCertificateFile /etc/pki/tls/certs/slapd.pem
# TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database monitor
database bdb
suffix "dc=capile,dc=net"
#rootdn "cn=admin,dc=oracle,dc=capile,dc=net"
rootdn "cn=root,dc=capile,dc=net"

# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw secret
rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
password-hash {SSHA}

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /var/lib/ldap

# Indices to maintain for this database
#index objectClass eq,pres
#index ou,cn,mail,surname,givenname eq,pres,sub
#index uidNumber,gidNumber,loginShell eq,pres
#index uid,memberUid eq,pres,sub
#index nisMapName,nisMapEntry eq,pres,sub
#index sambaSID eq
#
#index entryCSN eq
#index contextCSN eq
#index entryUUID eq
index cn,sn,uid,displayName pres,sub,eq
index uidNumber,gidNumber eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index objectClass pres,eq
index default sub

# linhas teste
#access to *
# by dn.base="cn=root,ou=People,dc=capile,dc=net" read
# by * break

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

lastmod on

# Replicas of this database
#replogfile /var/log/ldap.log
#serverID 001
#syncrepl rid=001
# provider=ldap://192.175.100.220
# type=refreshAndPersist
# interval=00:00:00:10
# searchbase="dc=capile,dc=net"
# scope=sub
# schemachecking=off
# bindmethod=simple
# binddn="cn=root,dc=capile,dc=net"
# credentials='xxxxxxxxxxxxxx'
# retry="60 +"
#mirrormode TRUE




9. Re: replicação de ldap usando Syncrepl [RESOLVIDO]

Emanuel C. Costa
emanuelc

(usa Debian)

Enviado em 19/03/2013 - 16:24h

danielmb escreveu:

Bom stephano,
Na minha infraestrutura estão definidos o seguinte adicionalmente

slapd.conf Provedor
serverID 001
syncrepl rid=001
provider=ldap://ip_replicador
ype=refreshAndPersist
interval=00:00:00:10
searchbase="dc=alguma,dc=empresa"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=admin,dc=alguma,dc=empresa"
credentials="senha_do_ldap"
retry="60 +"


mirrormode on


slapd.conf Replicador
serverID 002
syncrepl rid=002
provider=ldap://ip_provedor
ype=refreshAndPersist
interval=00:00:00:10
searchbase="dc=alguma,dc=empresa"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=admin,dc=alguma,dc=empresa"
credentials="senha_do_ldap"
retry="60 +"

mirrormode on


Basicamente, altera as configurações de identificação de cada servidor permitindo a sua execução.

Em relação ao erro do arquivo de log, você vai precisar criá-lo manualmente e dar as permissões adequadas ao usuário que executa o ldap.

Sobre o erro do overlay, qual a versão do openldap que você está utilizando?


Boa tarde Daniel.

Essa configuração é a master-master correto? No caso eu posso fazer alteração em qualquer um dos servidores que a informação é replicado pro outro automaticamente ???
No campo "provider" do ""master 1"" por exemplo, eu coloco o IP do ""master 2"" vise-versa?

Abç







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts