OpenLDAP como Multi-Master MirrorMode
O que é OpenLDAP?
LDAP é uma sigla para Lightweight Directory Access Protocol. Este serviço é usado essencialmente para armazenar informações de usuários, grupos, sistemas etc.
O que não é OpenLDAP?
O OpenLDAP não é um serviço de autenticação. Este serviço é usado apenas para consultar as informações de usuário, como nome, senha etc. O mecanismo de autenticação de sistemas operacionais ou de sistemas, consultam essas informações para validar o acesso do usuário. Em outras palavras, o OpenLDAP apenas armazena estas informações e disponibiliza para os sistemas que vão decidir se liberam o acesso ou não.
Proposta de laboratório
Neste artigo criaremos um ambiente com 2 servidores OpenLDAP. Ambos os servidores têm as mesmas funções, que é receber tanto requisições de escrita e leitura. Sendo eles:
– Servidor Master Primário que aceita Leitura e Escrita e;
– Servidor Master Secundário, que ficará em standby caso o primário fique indisponível.
Pré-Requisitos
Para execução do laboratório proposto, é necessário:
- 2 Máquinas virtuais com Debian 10
- Acesso à internet a partir das VMs
- Os servidores devem ser acessíveis através da rede pela porta 389
- Para a resolução dos nomes dos servidores, adicionamos os IPs manualmente em /etc/hosts.
Instalação:
Para instalação do OpenLDAP é necessário executar os comandos abaixo. Os passos baixos serão executados no servidor lab01.4linux e depois em lab02.4linux.
# apt update
# apt install -y slapd ldap-utils
– slapd – é o daemon do serviço OpenLDAP
– ldap-utils – é um pacote de utilitários para administração do serviço.
Na instalação será solicitada a senha de administração do Ldap. No nosso caso usamos 4linux
Ao término da instalação, a saída no terminal será semelhante à tela abaixo:
Após a instalação, automaticamente é criada uma base com o FQDN da máquina, que no nosso caso é lab01.4linux (dc=4linux) e um usuário de administração (cn=admin,dc=4linux).
Com as configurações realizadas até este ponto, já temos o OpenLDAP funcional.
Para realizar a configuração de replicação entre os servidores serão necessários os seguintes passos:
1 – Habilitar o módulo de replicação
Crie um arquivo chamado syncmod.ldif com o seguinte conteúdo:
dn: cn=module{0},cn=config
changeType: modify
add: olcModuleLoad
olcModuleLoad: syncprov.la
O conteúdo acima irá adicionar na árvore de configuração do LDAP o módulo syncprov.la.
Salve o arquivo e execute o comando abaixo para importar o módulo
# ldapmodify -Y EXTERNAL -H ldapi:/// -f syncmod.ldif
A saída será parecida com abaixo:

2 – Vamos informar ao LDAP qual tipo de sincronização vamos utilizar, no nosso caso syncprov.
Crie o arquivo sync.ldif com o conteúdo:
dn: olcOverLay=syncprov,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
Execute o comando:
# ldapmodify -Y EXTERNAL -H ldapi:/// -f sync.ldif
3 – Configurar a indexação da base LDAP.
Crie o arquivo index.ldif com o conteúdo:
dn: olcDatabase={1}mdb,cn=config
changeType: modify
add: olcDbIndex
olcDbIndex: entryUUID,entryCSN eq
Execute:
# ldapmodify -Y EXTERNAL -H ldapi:/// -f index.ldif
Até o momento, estas configurações são idênticas para ambos os servidores. A partir da próxima etapa será necessário realizar alguns ajustes específicos para cada servidor.
4 – Configurando o syncrepl para replicação entre os hosts.
E por fim adicionamos no arquivo syncrepl.ldif o conteúdo abaixo. Este arquivo está separado em 3 blocos: No primeiro bloco é configurado o ID do servidor, no segundo informamos ao ldap onde este deve espelhar os dados e por fim, no terceiro bloco ativamos a propriedade de espelhamento (MirrorMode).
obs: Algumas entradas deste arquivo requer alteração para cada servidor específico. Leia os comentários e altere conforme necessidade
#Bloco 1: Configura o ID do servidor.
dn: cn=config
changetype: modify
add: olcServerID
olcServerID: 1 # Cada servidor deve ter um ID diferente. Lab01 adicionamos ID=1 e lab02 ID=2
dn: olcDatabase={1}mdb,cn=config
# Bloco 2: Configura o apontamento para o Master Securandário
changetype: modify
add: olcSyncrepl
olcSyncrepl: rid=001 # ID da replicação. Este número será o mesmo para todos os servidores.
provider=ldap://lab02.4linux # Como um servidor será espelho do outro, aqui o lab02 será o provider do servidor lab01 e vise e versa.
bindmethod=simple
binddn=”cn=admin,dc=4linux” # usuário de administração
credentials=4linux # senha usuário de administração
searchbase=”dc=4linux” # Base onde será feita as consultas para replicação
schemachecking=on
type=refreshAndPersist
retry=”60 +”
#Bloco 3: atribui ao LDAP a propriedade de espelhamento.
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcMirrorMode
olcMirrorMode: TRUE
Salve o arquivo syncrepl.ldif contendo os 3 blocos acima e execute o comando abaixo:
# ldapmodify -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif
Se as configurações expostas até aqui foram executadas com sucesso, o resultado será a replicação dos dados entre os servidores, portanto, qualquer modificação na base dc=4linux (adição ou remoção) em lab01, esta deve ser replicado instantaneamente para o host lab02.
Para testar a replicação, vamos adicionar uma Unidade Organizacional à base dc=4linux. Crie um arquivo chamado user.ldif com o conteúdo abaixo:
dn: ou=usuarios,dc=4linux
changeType: add
objectClass: OrganizationalUnit
ou: usuarios
Para adicionar a OrganizationalUnit à base execute:
ldapmodify -x -H ldap://lab01 -D ‘cn=admin,dc=4linux’ -f user.ldif -w 4linux
Após inserção na base do lab01, com o comando slapcat vamos ao servidor lab02 verificar se a replicação de fato ocorreu:
Obs: A inserção de dados pode ser realizada em qualquer um dos masters que a replicação deve ocorrer.
Conclusão
Neste laboratório configuramos o LDAP para espelhar os dados de ambos os servidores. Esse tipo de configuração é muito útil para aumentar a disponibilidade e resiliência do ambiente.
Com essa configuração, pode-se adicionar inclusive mais servidores, configurá-los em datacenters diferentes etc. Um item interessante para LDAP em MirrorMode é a configuração de um balanceador para orquestrar a virada automática em caso de falha em um dos nós.
Referências
Guia de Administração OpenLDAP
https://www.openldap.org/doc/admin24/OpenLDAP-Admin-Guide.pdf
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
About author
Você pode gostar também
Dica da semana convertendo um shell script em binário.
Na dica da semana de hoje, aprenderemos como converter um shell script em binário, uma prática muito utilizada quando queremos esconder o código fonte de um determinado shell script. Vamos
Forecast e timeleft: faça previsões no Zabbix
A partir da versão 3.0 do Zabbix dois novos recursos, o forecast e timeleft, permitem fazer previsões sobre análise de dados coletados e criar alertas que antecipem problemas em potenciais.
Upgrade no curso gratuito de Auditoria de Logs da 4Linux
Olá para você que trabalha ou tem interesse no gerenciamento de Logs! A 4Linux acaba de atualizar e ampliar seu curso de Logs totalmente gratuito, que agora conta com novas