Primeira Configuração – LDAP


Como prometido na semana passada estou dando prosseguimento sobre o servidor LDAP e desta vez com uma configuração (básica) do mesmo.
Configuração do servidor

# apt-get install slapd ldap-utils
Por padrão o debian sempre define o admin na instalação do slapd, informe a senha e confirme.

 

 
Vamos parar o servidor LDAP
# invoke-rc.d slapd stop
Vamos informar ao daemon do ldap que iremos utilizar o arquivo slapd.conf
# vi /etc/default/slapd

Apague todos os arquivos de /var/lib/ldap exceto DB_CONFIG
# vi /etc/ldap/slapd.conf

Descrição das principais opções:
include /diretório/schema – Carrega o schema informado (Arquivos que contem a estrutura dos atributos e objetos que LDAP consegue manipular).
modulepath /diretório – Diretório onde estão os módulos que serão lidos dinamicamente.
moduleload módulo – Qual módulo será carregado. Para carregar outro módulo basta adicionar outra linha como esta.
loglevel nível/chave – Nível de log. Pode utilizar o seguinte formato:
LogLevel 129
LogLevel 0x81
LogLevel 128 1
LogLevel 0x80 0x1
LogLevel acl trace
Obs.: -1 Produz uma grande quantidade de informações e “none”.
backend tipo – Tipo de base de dados utilizado, os principais tipos são:
bdb               Berkeley DB transactional backend
config           backend de configuração do Slapd
dnssrv          DNS SRV backend
hdb               Variante do backend bdb.
ldap              Lightweight Directory Access Protocol (Proxy) backend
ldif                Lightweight Data Interchange Format backend
meta             Meta Directory backend
monitor       Monitor backend
passwd         Prove acesso somente de leitura a passwd(5)
perl               Perl Programmable backend
shell              Shell (programa externo) backend
sql                 SQL Programmable backend
database <índice>banco – Qual o banco de dados utilizado no diretório. O índice ser utilizado para distinguir vários bancos de dados do mesmo tipo, mas pode ser omitido. E banco é um dos tipos listados acima.
cachesize valor – Define o número de entradas que backend LDAP irá manter na memória. Para melhor performance, este número é igual ao número de entradas no seu diretório, mas pode ser menor. Este não é o cache do Banco de Dados, mas o cache interno próprio do OpenLDAP. O valor padrão -e 1000.
sizelimit valor – Especifica o número máximo de entradas retornadas de uma operação de pesquisa.
mode octal – Permissão dos arquivos da base de dados do diretório.
suffix “DN” – Especifica o sufixo DN de consultas que serão passadas para o backend de banco de dados. Podem haver mais linhas suffix, mas somente um é requerido.
rootdn “DN” – Especifica o controle administrativo sobre o diretório, pode ser utilizado um mechanismo SASL ao invés de um usuário administrador.
rootpw senha – Senha para rootdn, pode ser texto puro ou fornecido um HASH com a senha por meio do comando slappasswd.
directory “/diretório” – Local onde os arquivos da base de dados do diretório estão armazenados.
pidfile arquivo – Arquivo contendo o PID do daemon do ldap (slapd).
argsfile arquivo – Arquivo contendo os parâmetros repassados ao slapd.
tool-threads valor – Especifica a quantidade real de CPUs utilizadas para a indexação.
index atributo tipo – Cria índices para acelerar as buscas do atributo informado e indica qual o tipo de índice utilizado.
Tipos              Descrição
pres                  Relacione com o tipo de atributo, ao invés do valor do atributo.
eq                      Relaciona com o valor exato do atributo, como (cn=Ricardo) retorna somente as combinações exatas de “Ricardo”.
sub                    Indexa buscas com coringas, como em (cn=admin*). E as variantes:
subinitial         (cn=admin*)
subany              (cn=*user1*)
subfinal            (cn=*admin)
lastmod on – Grava a hora da última operação de gravação no banco de dados.
access – Lista de controle de acesso, controle de quem pode acessar o que e como será o acesso.
Criar o hash com a senha do admin do ldap
# slappasswd -h {SSHA} | tee -a /etc/ldap/slapd.conf
Como podem reparar o hash foi apresentado na saída padrão e direcionada para o final do arquivo slapd.conf
Voltando ao arquivo slapd.conf
# vi /etc/ldap/slapd.conf
Vá para o final do arquivo localize e selecione o hash da senha

Copie o hash para a memória e adicione na linha rootpw, substituindo a criptografia existente

 
Após a substituição comente as 3 últimas linhas do slapd.conf, ou se preferir apague-as. Agora podemos iniciar o daemon do ldap.
# invoke-rc.d slapd start
Vamos alterar o arquivo hosts para incluir estaticamente o nome do servidor ldap
# vi /etc/hosts

Vamos configurar o cliente ldap
# vi /etc/ldap/ldap.conf

Vamos adicionar o domínio e admin a base
# cd /etc/ldap
# mkdir LDIF
# cd LDIF
# vi init.ldif 

Obs.: Copiei o hash da senha do admin do arquivo slapd.conf e passei para ‘userPassword:’
Vamos adicionar as entradas na base
# ldapadd -x -D ‘cn=admin,dc=cooperati,dc=local’ -W -f init.ldif
Vamos conferir se está tudo certo:
# ldapsearch -x -D ‘cn=admin,dc=cooperati,dc=local’ -W


Vamos criar 2 OU para usuários e grupos
# vi OUs.ldif

Para adicionar ao LDAP execute:
# ldapadd -x -D ‘cn=admin,dc=cooperati,dc=local’ -W -f OUs.ldif
Vamos criar um usuário para fins de teste:
# adduser user1
Vamos instalar o migrationtools para converter usuários e grupos Unix para o ldap
# apt-get install migrationtools
Copie os arquivos password e group do migrationtools de /usr/share/migrationtools para seu diretorio atual.
# cp /usr/share/migrationtools/migrate_passwd.pl .
# cp /usr/share/migrationtools/migrate_group.pl .
# cp /usr/share/migrationtools/migrate_common.ph .
Modifique o arquivo migrate_common.ph nas linhas 71, 74, 90:
# vi migrate_common.ph

Para usar o migrationtools para migrar as contas para o arquivo passwd.ldif:
# grep user1 /etc/passwd > user1
# ./migrate_passwd.pl user1 > user1.ldif
O arquivo user1.ldif deve conter entradas apenas para o usuário user1.
Adicione o novo usuário a base de dados:
# ldapadd -x -D ‘cn=admin,dc=cooperati,dc=local’ -W -f user1.ldif
Crie o arquivo de grupo usando migrate_group.pl script:
# grep user1 /etc/group > group
# ./migrate_group.pl group > group.ldif
O arquivo group.ldif deve conter apenas a entrada para o grupo user1.
Adicione o novo grupo a base de dados:
# ldapadd -x -D ‘cn=admin,dc=cooperati,dc=local’ -W -f group.ldif
A parte pesada de configuração, e explicação, do servidor já foi concluída. No próximo post iremos exportar o home dos usuários, e iremos configurar o cliente.
Espero que tenham gostado do post e aguardo seus comentários.

Share

    Comments

    1. Ricardo Pinheiro, sorte minha ler este seu artigo. =) Agora mesmo, pouco antes de abrir seu blog, estava tentando instalar e configurar o OpenLDAP, para se integrar ao PDC Samba do meu servidor e fazer o Endian Firewall autenticar os usuários a partir dele.
      Este texto me deu uma ótima leitura, obrigado.

    2. Excelente post Ricardo,
      Tenho sempre acompanhado o blog, só que comento pouco,
      Vou por em prática o OpenLDAP aqui,
      Qualquer coisa posso pertuba-lo?

    3. Queria deixar uma resalva.
      Para aqueles que vão instalar esse serviço no CentOS, atentarem para um detalhe.
      Apagar tudo que estiver dentro de /etc/openldap/slapd.d/* e depois executar o slaptest para que possa criar os arquivos corretos, com base na sua configuração do slapd.conf.
      Em seguida, altere o dono e grupo dos arquivos da seguinte forma:
      # chown ldap.ldap -Rf /etc/openldap/slapd.d/*
      Agora inicie o serviço e seja feliz!!!
      Pinguim Caveira!!!

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    © 2019 All Rights Reserved. Cooperati.