Pular para o conteúdo
Início » Aprendendo Linux Parte 19 – Configuração de Servidores LDAP no Linux

Aprendendo Linux Parte 19 – Configuração de Servidores LDAP no Linux

LDAP (Lightweight Directory Access Protocol) é um protocolo utilizado para acessar e gerenciar informações de diretórios de forma distribuída. Nesta aula, vamos explorar como configurar e gerenciar um servidor LDAP no Linux, usando o OpenLDAP, que é uma implementação livre e popular do LDAP. Vamos cobrir a instalação, configuração básica, segurança e práticas recomendadas.

O que é LDAP?

LDAP é um protocolo que permite a consulta e modificação de diretórios de informações organizados hierarquicamente. Ele é frequentemente usado para armazenar informações de usuários, grupos, permissões e outros dados que precisam ser compartilhados em uma rede.

Vantagens de um Servidor LDAP

  • Centralização: Permite o gerenciamento centralizado de informações de diretório.
  • Escalabilidade: Suporta grandes volumes de dados e pode ser distribuído em várias máquinas.
  • Interoperabilidade: Compatível com vários sistemas e aplicativos, incluindo autenticação de usuários em redes heterogêneas.

Instalação do OpenLDAP

Para configurar um servidor LDAP, usaremos o OpenLDAP.

No Servidor

Para instalar o OpenLDAP em distribuições baseadas em Debian (como Ubuntu):

$ sudo apt update
$ sudo apt install slapd ldap-utils

Para distribuições baseadas em Red Hat (como CentOS):

$ sudo yum install openldap-servers openldap-clients

Configuração do Servidor LDAP

Configuração Inicial do OpenLDAP

Durante a instalação, será solicitado que você configure a senha do administrador do diretório (cn=admin,dc=example,dc=com). Certifique-se de lembrar esta senha.

Configurando o Domínio

Para configurar o domínio LDAP, você precisa modificar os arquivos de configuração para refletir o domínio da sua organização. Vamos usar dc=meusite,dc=com como exemplo.

  1. Exporte o esquema inicial para um arquivo LDIF:
$ sudo slapcat -n 0 -l config.ldif
  1. Edite o arquivo config.ldif:
$ sudo nano config.ldif

Procure as linhas que contêm dc=example,dc=com e substitua por dc=meusite,dc=com.

  1. Apague o banco de dados atual e recarregue o novo esquema:
$ sudo rm -rf /etc/ldap/slapd.d/*
$ sudo slapadd -F /etc/ldap/slapd.d -n 0 -l config.ldif
$ sudo chown -R openldap:openldap /etc/ldap/slapd.d
Configurando o Banco de Dados LDAP
  1. Crie um arquivo LDIF para adicionar o banco de dados inicial:
$ sudo nano base.ldif

Adicione o seguinte conteúdo:

dn: dc=meusite,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: meusite
dc: meusite

dn: cn=admin,dc=meusite,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: secret
  1. Adicione o conteúdo ao banco de dados LDAP:
$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f base.ldif
Configurando os Esquemas LDAP

Adicione os esquemas necessários, como o esquema de usuários e grupos:

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/core.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif

Adicionando Usuários e Grupos

Criando um Grupo
  1. Crie um arquivo LDIF para o grupo:
$ sudo nano grupo.ldif

Adicione o seguinte conteúdo:

dn: ou=groups,dc=meusite,dc=com
objectClass: organizationalUnit
ou: groups

dn: cn=usuarios,ou=groups,dc=meusite,dc=com
objectClass: posixGroup
cn: usuarios
gidNumber: 5000
  1. Adicione o grupo ao banco de dados LDAP:
$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f grupo.ldif
Criando um Usuário
  1. Crie um arquivo LDIF para o usuário:
$ sudo nano usuario.ldif

Adicione o seguinte conteúdo:

dn: ou=users,dc=meusite,dc=com
objectClass: organizationalUnit
ou: users

dn: uid=joao,ou=users,dc=meusite,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: joao
sn: Silva
givenName: Joao
cn: Joao Silva
displayName: Joao Silva
uidNumber: 10000
gidNumber: 5000
userPassword: senha123
gecos: Joao Silva
loginShell: /bin/bash
homeDirectory: /home/joao
  1. Adicione o usuário ao banco de dados LDAP:
$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f usuario.ldif

Configuração de Segurança

Configuração de SSL/TLS

Para garantir que as conexões LDAP sejam seguras, configure SSL/TLS no OpenLDAP.

  1. Gere certificados SSL (use Certbot para certificados da Let’s Encrypt):
$ sudo apt install certbot  # Debian
$ sudo yum install certbot  # Red Hat
$ sudo certbot certonly --standalone -d ldap.meusite.com
  1. Configure o OpenLDAP para usar SSL/TLS:
$ sudo nano /etc/ldap/slapd.d/cn=config.ldif

Adicione ou modifique as seguintes linhas:

olcTLSCertificateFile: /etc/letsencrypt/live/ldap.meusite.com/fullchain.pem
olcTLSCertificateKeyFile: /etc/letsencrypt/live/ldap.meusite.com/privkey.pem
  1. Reinicie o OpenLDAP:
$ sudo systemctl restart slapd  # Debian
$ sudo systemctl restart ldap  # Red Hat
Configuração de Firewall

Certifique-se de que seu firewall permite tráfego LDAP (porta 389) e LDAPS (porta 636):

Para ufw (firewall do Ubuntu):

$ sudo ufw allow 389/tcp
$ sudo ufw allow 636/tcp

Para firewalld (firewall do CentOS):

$ sudo firewall-cmd --permanent --add-port=389/tcp
$ sudo firewall-cmd --permanent --add-port=636/tcp
$ sudo firewall-cmd --reload

Monitoramento e Logs

Os logs do OpenLDAP são armazenados em /var/log/syslog (Debian) ou /var/log/messages (Red Hat). Para monitorar os logs em tempo real:

$ sudo tail -f /var/log/syslog  # Debian
$ sudo tail -f /var/log/messages  # Red Hat

Exemplos Práticos

Exemplo 1: Configurando um Servidor LDAP Básico
  1. Instale o OpenLDAP:
$ sudo apt install slapd ldap-utils  # Debian
$ sudo yum install openldap-servers openldap-clients  # Red Hat
  1. Configure o domínio LDAP:
$ sudo slapcat -n 0 -l config.ldif
$ sudo nano config.ldif
# Substitua `dc=example,dc=com` por `dc=meusite,dc=com`
$ sudo rm -rf /etc/ldap/slapd.d/*
$ sudo slapadd -F /etc/ldap/slapd.d -n 0 -l config.ldif
$ sudo chown -R openldap:openldap /etc/ldap/slapd.d
  1. Crie o banco de dados inicial:
$ sudo nano base.ldif

# Adicione o seguinte conteúdo:
dn: dc=meusite,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: meusite
dc: meusite

dn: cn=admin,dc=meusite,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: secret

$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f base.ldif
  1. Adicione os esquemas necessários:
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/core.ldif
$ sudo ldapadd -Y EXTERNAL -H

 ldapi:/// -f /etc/ldap/schema/cosine.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
Exemplo 2: Adicionando um Usuário e um Grupo
  1. Crie um grupo:
$ sudo nano grupo.ldif

# Adicione o seguinte conteúdo:
dn: ou=groups,dc=meusite,dc=com
objectClass: organizationalUnit
ou: groups

dn: cn=usuarios,ou=groups,dc=meusite,dc=com
objectClass: posixGroup
cn: usuarios
gidNumber: 5000

$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f grupo.ldif
  1. Crie um usuário:
$ sudo nano usuario.ldif

# Adicione o seguinte conteúdo:
dn: ou=users,dc=meusite,dc=com
objectClass: organizationalUnit
ou: users

dn: uid=joao,ou=users,dc=meusite,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: joao
sn: Silva
givenName: Joao
cn: Joao Silva
displayName: Joao Silva
uidNumber: 10000
gidNumber: 5000
userPassword: senha123
gecos: Joao Silva
loginShell: /bin/bash
homeDirectory: /home/joao

$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f usuario.ldif

Configurar e gerenciar servidores LDAP no Linux é uma habilidade essencial para administradores de sistemas, permitindo a centralização de informações de diretório e a autenticação de usuários em redes heterogêneas. Nesta aula, exploramos como configurar um servidor LDAP com OpenLDAP, adicionar usuários e grupos, e aplicar práticas de segurança. Pratique essas técnicas para ganhar confiança na administração de servidores LDAP no Linux.

Se tiver dúvidas ou sugestões, deixe um comentário no blog NerdExpert.com.br. Na próxima aula, exploraremos a integração do LDAP com outros serviços e aplicações.