Configurando um servidor OpenLDAP para realizar autenticação

Leonardo Serra Maciel de Campos


            
          

Este documento é licenciado sobre a licença de Atribuição-Compartilhamento da Creative Commons. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-sa/2.0/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Histórico de Revisões
Revisão 0.1 2004-09-22 23:22:09 -0300 Leonardo Serra Maciel de Campos
Revisão 0.2 2004-09-23 01:09:12 -0300 Leonardo Serra Maciel de Campos
Revisão 0.3 2004-11-05 14:53:44 -0300 Leonardo Serra Maciel de Campos

Resumo

Este documento visa ensinar como configurar um servidor OpenLDAP para realizar autenticação.


Dedicatória

Dedico este documento a todas as pessoas que realmente acreditam na filosofia do Logicial Livre.

Índice

1. Introdução
1. O que é LDAP?
2. O que é OpenLDAP?
2. Ambiente
3. Instalação
4. Configuração
5. Comandos úteis
6. Apêndice
1. Bibliografia
2. Glossário

Lista de Tabelas

2.1. Versão dos logiciais
2.2. Ambiente

Capítulo 1. Introdução

1. O que é LDAP?

LDAP significa Lightweight Directory Access Protocol, ou seja, Protocolo de Leve Acesso a Diretórios. Como o nome sugere, é um protocolo leve para acessar serviços de diretório. O LDAP roda em cima do protocolo TCP/IP ou outras conexões de transferência de serviços.

2. O que é OpenLDAP?

O OpenLDAP é um esforço colaborativo da comunidade Open Source para desenvolver um sistema de aplicações LDAP. O fundador por este projeto é o americano Kurt Zeilenga. Hoje existem vários desenvolvedores engajados neste sistema que está se tornando um padrão universal.

Capítulo 2. Ambiente

Será presumido que o seu sistema Debian GNU/Linux e o aptitude estão corretamente configurados. Também estaremos acreditando que o servidor OpenLDAP está executando de forma correta.

Atenção

Todos os comandos deverão ser executados pelo usuário root!

A tabelo abaixo mostra as versões de cada logicial usado.

Tabela 2.1. Versão dos logiciais

Logicial Versão
OpenLDAP (slapd) 2.1.30-3

A tabelo abaixo mostra as principais características do ambiente onde foi feito esta documentação.

Tabela 2.2. Ambiente

Distribuição GNU/Linux Debian Sarge
Endereço do servidor OpenLDAP ldap.exemplo.com.br
Nome do domínio exemplo.com.br
Sufixo da base do servidor OpenLDAP dc=exemplo,dc=com,dc=br
Usuário administrador do servidor OpenLDAP cn=admin,dc=exemplo,dc=com,dc=br
Senha do usuário administrador do servidor OpenLDAP asdf
Pasta da base do servidor OpenLDAP /var/lib/ldap

Nota

Usaremos palavras desta maneira para indicar substituição.

Capítulo 3. Instalação

Atenção

O servidor OpenLDAP já deve estar instalado, configurado e sendo executado de maneira correta!

Capítulo 4. Configuração

  1. Edite o arquivo /etc/ldap/slapd.conf.

    • Iremos configurar quais atributos do deverão ser indexados, para isto abaixo da linha:

      index objectClass           eq

      Acrescente as seguintes linhas:

      index default               sub
      index cn                    sub,pres,eq
      index sn                    sub,pres,eq
      index uid                   sub,pres,eq
      index displayName           sub,pres,eq
      
      index uidNumber             pres,eq
      index gidNumber             pres,eq
      index memberUid             pres,eq
      
    • Altere a linha:

      access to attribute=userPassword

      Para a seguinte linha:

      access to attribute=userPassword,shadowMax,shadowExpire
  2. É necessário reiniciar o servidor OpenLDAP para carregar as novas configurações e reindexar sua base, para isto execute os passos abaixo.

    • Para parar o servidor OpenLDAP execute:

      # invoke-rc.d slapd stop
    • Para reindexar a base do servidor OpenLDAP execute:

      # slapindex
    • Para iniciar o servidor OpenLDAP execute:

      # invoke-rc.d slapd start
  3. É necessário criar dois objetos do tipo organizationalUnit na base do servidor OpenLDAP. Estes objetos guardarão os usuários e os grupos, para isto crie um arquivo com o seguinte conteúdo e salve ele com o nome de organizationalUnit.ldif.

    dn: ou=People,dc=exemplo,dc=com,dc=br
    objectClass: top
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=exemplo,dc=com,dc=br
    objectClass: top
    objectClass: organizationalUnit
    ou: Group
    

    Execute o seguinte comando para carregar o arquivo para o OpenLDAP:

    # ldapadd -x -h ldap.exemplo.com.br -D "cn=admin,dc=exemplo,dc=com,dc=br" -f organizationalUnit.ldif -W

Capítulo 5. Comandos úteis

  • Para reiniciar o servidor OpenLDAP execute:

    # invoke-rc.d slapd restart
  • Para parar o servidor OpenLDAP execute:

    # invoke-rc.d slapd stop
  • Para iniciar o servidor OpenLDAP execute:

    # invoke-rc.d slapd start
  • Para criar uma copia de segurança da base do servidor OpenLDAP execute:

    # slapcat -l copia.ldif

    Atenção

    A execução deste comando com o servidor OpenLDAP sendo executado pode causar inconsistência da base, portanto pare o servidor OpenLDAP antes de executar este comando!

  • Para restaurar uma copia de segurança da base do servidor OpenLDAP execute:

    # slapadd -l copia.ldif

    Atenção

    A execução deste comando com o servidor OpenLDAP sendo executado pode causar inconsistência da base, portanto pare o servidor OpenLDAP antes de executar este comando!

    Atenção

    Após restaurar uma copia de segurança, não esqueça de reindexar a base do servidor OpenLDAP!

  • Para reindexar a base do servidor OpenLDAP execute:

    # slapindex

    Atenção

    A execução deste comando com o servidor OpenLDAP sendo executado pode causar inconsistência da base, portanto pare o servidor OpenLDAP antes de executar este comando!

  • Para recuperar a base do servidor OpenLDAP, dentro da pasta /var/lib/ldap execute:

    # db4.2_recover

    Atenção

    A execução deste comando com o servidor OpenLDAP sendo executado pode causar inconsistência da base, portanto pare o servidor OpenLDAP antes de executar este comando!

Capítulo 6. Apêndice

2. Glossário

Debian GNU/Linux

O Debian é um sistema operacional (SO) livre para seu computador. Um sistema operacional é um conjunto de programas básicos e utilitários que fazem seu computador funcionar. O Debian usa o kernel (núcleo de um sistema operacional), Linux, mas a maior parte das ferramentas do SO vêm do projeto GNU; daí o nome GNU/Linux.

Logicial

Conjunto de instruções lógicas. Na informática designa um conjunto de instruções lógicas e suas dependências, também conhecido como programa ou sistema de computador.

Esta palavra é pouco usada no Brasil, onde se usa muito a expressão "Software".

Origem: Wikipédia, a enciclopédia livre.