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
Guia Prático: Aprenda a Manipular Dados no MongoDB
Dando continuidade na série de MongoDB, após construir um Cluster de MongoDB usando o passo a passo do desse artigo, vamos agora manipular os dados dentro desse banco, ou como
Descubra o Redis: a solução open source para armazenamento de dados
Administradores de sistemas e desenvolvedores provavelmente em algum momento já precisaram de alguma solução para armazenar dados temporários – como token de sessão – que sejam acessíveis de um ponto
Rocket.Chat App: Criando seu primeiro aplicativo
Dando continuidade o nosso post anterior onde entendemos o que é um aplicativo do Rocket, o seu poder e como preparar o ambiente, agora criar o seu primeiro aplicativo. Espero