Pular para o conteúdo

Replicação no LDAP com slurp

Dica publicada em Linux / Introdução
Andre Luiz Facina netbug
Hits: 11.824 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

Replicação no LDAP com slurp

No presente artigo irei explicar como fazer uma replicação da Base do OpenLDAP, bem como deixar um servidor como slave, para qualquer evento em que o servidor master ficar indisponível o servidor slave assuma a posição de master. :)

Primeiramente deve-se instalar o openldap tanto no servidor master, quanto no servidor slave (o arquivo de configuração slapd.conf deve ser o mesmo para os dois), exceto por algumas diretivas (veja passo 2).

Configurações:

1. Servidor master: após a criação da entrada admin na base, deve-se adicionar as seguintes diretivas no arquivo de configuração /etc/ldap/slapd.conf (atenção à indentação! Se estiver errada, a diretiva falhará):

replica uri=ldap://192.168.1.2:389
          binddn="cn=admin,dc=facina,dc=com,dc=br"
          bindmethod=simple
          credentials=senha_da_conta_admin

replogfile  /var/lib/ldap/replog.ldif

A primeira linha especifica o servidor slave, com a porta padrão utilizada pelo LDAP. A segunda linha define a conta administrativa do LDAP, nesse caso a conta administrativa é admin, do domínio facina.com.br.

O método "bindmethod=" quando especificada como "simple" orienta o slurp para autenticar com a senha definida em "credentials". A última linha define o arquivo de log. :)

2. Servidor slave: adicionar as seguintes diretivas no arquivo de configuração /etc/ldap/slapd.conf (a diretiva updatedn deve coincidir com a utilizada na configuração do master)

access to *
        by dn="cn=admin,dc=facina,dc=com,dc=br" write

updatedn "cn=admin,dc=facina,dc=com,dc=br"
updateref ldap://192.168.1.1

3. Agora deve-se fazer um backup ou tirar um snapshot da base master:

# slapcat > base.ldif

4. No servidor slave, basta fazer a cópia da base:

# ldapadd -x -D "cn=admin,dc=facina,dc=com,dc=br" -f base.ldif

ou

# slapadd -l base.ldif

(Antes, pare o serviço do ldap: /etc/init.d/slapd stop)

5. Iniciar os serviços slapd e slurpd no servidor master e slapd no servidor slave, para Debian (veja /etc/default/slapd):

# /etc/init.d/slapd start

6. Pronto! Agora é só fazer os testes e verificar se a réplica está funcionando. Muitos serviços como o SAMBA e autenticação PAM, permitem a utilização de 2 ou mais servidores LDAP.

O samba permite a utilização de múltiplos servidores LDAP, basta adicionar uma diretiva como essa:

passdb backend = ldapsam:"ldap://192.168.1.1/ ldap://192.168.1.2/"

Assim se o servidor LDAP master cair o samba irá buscar as informações no servidor slave, sendo um processo totalmente transparente para o usuário.

Pronto, :)

André Luiz Facina

AIX - Montar imagem ISO

Configurando o Nagios com NagiosQL

Cisco - Reload, um comando simples que pode salvar sua vida

Renomeando arquivos com caracteres especiais

Centralizando logs de dispositivos Cisco com o Syslog-ng

VNC entre Windows e Linux com Hamachi e Haguichi

Icecast2 - Criando servidor de mídia básico

Como instalar o Insigne Momentum 5.5

Colocando o XRDP para funcionar

Instalando o comando sudo no Debian

#1 Comentário enviado por cadoman em 05/06/2008 - 11:19h
Como faço a configuração para que o slave assuma no caso da autenticação PAM?
#2 Comentário enviado por jairus em 28/07/2008 - 08:33h
Olá !!!

Gostei da dica, irei utilizar . Agora e nos clientes devo configurar os arquivos que direcionam para o master, por exemplo o arquivo ldap.conf ? Isso nos clientes .


Me responda.

Abraços
Jairus Lopes
#3 Comentário enviado por makebabies em 02/09/2008 - 09:21h
Seguinte, eu estou tentando usar o tutorial porém acontece o seguinte erro:

Error: Malformed "replica" line in slapd config file, line 144
Warning: failed to add replica "192.168.0.2:389 - ignoring replica.


no final do arquivo slapd.conf do servidor Master tenho:

replogfile /var/lib/ldap/replog
replica uri=ldap://192.168.0.2:389
binddn="cn=admin,dc=projeto,dc=com"
bindmethod=simple credentials=123456

no Slave slapd.conf:

updatedn "cn=admin,dc=projeto,dc=com"
updateref ldap://192.168.0.1


Ja procurei no google e nao encontrei nenhuma resposta, apenas várias pessoas com o mesmo problema!
#4 Comentário enviado por makebabies em 03/09/2008 - 11:40h
resolvi, na linha replica é preciso que todos os parâmetros estejam em uma unica linha:
replica uri=ldap://192.168.0.2:389 binddn="cn=admin,dc=projeto,dc=com" bindmethod=simple credentials=123456

Depois disso o slurpd não deu nenhum erro, mas nao estava replicando nada...
Fiz algumas modificacoes na base e estava com tail -f /var/lib/ldap/replog porem nada era escrito no arquivo...

Consegui replicar usando o syncrepl (pelo que li é mais atual que o slurpd, posso estar enganado)

Contribuir com comentário

Entre na sua conta para comentar.