Guia prático: Como configurar o OpenLDAP para aumentar a disponibilidade do seu ambiente
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
ELK Stack vs OpenSearch Stack: Qual escolher?
Ter uma observabilidade completa do seu ambiente com poucas ferramentas, é o sonho de todo profissional DevOps. Diversas ferramentas no mercado atendem essa demanda prometendo entregar apenas uma solução para
Como utilizar o Celery para paralelização de atividades em Python
O Celery é uma fila de tarefas assíncrona de trabalho, implementada em python, com base na passagem de mensagens distribuídas. Está focado na operação em tempo real, mas também oferece
Como Resolver Recursos Presos em ‘Terminating’ no Kubernetes
Gerenciar clusters Kubernetes é sempre um trabalho árduo, e dentre os processos de gestão é comum precisar excluir objetos ou recursos que não são mais necessários. Quem faz esta















