Como configurar a replicação LDAP mestre-escravo

3

Como faço para configurar o servidor LDAP mestre-escravo no Ubuntu com a replicação de sessão.

Por exemplo, se o cliente ldap alterar sua senha no servidor mestre. Eu quero que a nova senha seja sincronizada automaticamente para o servidor escravo

    
por Ishan Mate 17.10.2013 / 11:50

2 respostas

3

Mestre escravo no ldap atende pelo nome de provedor e consumidor. Você não especifica o servidor ldap que está usando, então presumo que estamos falando de openLDAP.

Em configurações mais antigas do openLDAP foi salvo em arquivos conf. Hoje em dia todas as configurações são armazenadas no próprio servidor ldap. Então você precisa criar a configuração e injetá-la no servidor ldap, então vamos começar criando esses arquivos. Esta instrução irá replicar todas as entradas para o seu servidor escravo automaticamente.

Digamos que o nome da sua empresa seja acme e o domínio seja com. e que o seu administrador do servidor ldap atual está localizado em: cn = admin, dc = acme, dc = com

Primeiro precisamos criar um usuário ldap com permissão para ler todas as entradas do ldap para replicá-lo para o servidor do consumidor.

crie o arquivo "create_repl_user.ldif"

dn: cn=ldaps2,dc=acme,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: ldaps2
description: LDAP server2 replicator

Segundo precisamos ativar o serviço do provedor no servidor master ldap e dar ao usuário ldaps2 acesso de leitura ao servidor ldap inteiro.

crie o arquivo "enable_sync_prov.ldif"

dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn="cn=admin,dc=acme,dc=com write
  by * none
-
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by self write
  by dn="cn=admin,dc=acme,dc=com" write
  by dn="cn=ldaps2,dc=acme,dc=com" read
  by anonymous auth
  by * none
-
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcDbIndex
olcDbIndex: entryCSN eq

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: {1}syncprov

dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpCheckpoint: 100 10
olcSpSessionlog: 100

Terceiro : Precisamos ativar a replicação de um servidor especificado para nosso consumidor de ldap. crie o arquivo enable_sync_consumer.ldif substituindo a linha provider="ldap: //yourldapservername.com: 389 /", com o ip do seu servidor master ldap. e credentials = yourencryptedldap2spassword, com a senha que você escolheu para o seu usuário ldap2s.

dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats

dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn="cn=admin,dc=acme,dc=com" write
  by * none
-
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by anonymous auth
  by * none
-
delete: olcAccess
olcAccess: {2}to *
  by self write
  by dn="cn=admin,dc=acme,dc=com" write
  by * read
-
add: olcAccess
olcAccess: {2}to *
  by * read
-
replace: olcRootDN
olcRootDN: cn=manager
-
delete: olcRootPW
-
add: olcDbIndex
olcDbIndex: entryCSN eq
-
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcDbIndex
olcDbIndex: uid eq
-
add: olcDbIndex
olcDbIndex: cn eq
-
add: olcDbIndex
olcDbIndex: ou eq
-
add: olcDbIndex
olcDbIndex: dc eq


add: olcSyncrepl
olcSyncrepl: rid=123
  provider="ldap://yourldapservername.com:389/"
  type=refreshAndPersist
  retry="60 30 300 +"
  searchbase="dc=acme,dc=com"
  bindmethod=simple
  binddn="cn=ldaps2,dc=acme,dc=com"
  credentials=yourencryptedldap2spassword

Agora que criamos os arquivos de configuração, precisamos injetá-los no provedor e no servidor do consumidor

no servidor do provedor crie o usuário de replicação:

run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f  create_repl_user.ldif

ativar o serviço do provedor:

run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f  enable_sync_prov.ldif

no servidor do consumidor, adicione as configurações de sincronização do consumidor:

run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f enable_sync_consumer.ldif
    
por tomodachi 07.11.2013 / 10:50
1

ótimo artigo, me ajudou muito, existem alguns erros nos ldifs, por exemplo: enable_sync_prov.ldif

  

por dn="cn = admin, dc = acme, dc = ncom escrever

deve ser

  

por dn="cn = admin, dc = acme, dc = com" escrever

Em seguida, o ldapadd / ldapmodify deve ser executado na parte cn = admin, cn = config da árvore, e não em cn = admin, dc = acme, dc = com.

    
por VincentKersten 17.01.2014 / 11:22

Tags