Copyright © 2004 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-10-08 11:14:36 -0300 | Leonardo Serra Maciel de Campos |
| Revisão 0.2 | 2004-10-14 11:57:58 -0300 | Leonardo Serra Maciel de Campos |
| Revisão 0.3 | 2004-10-27 11:56:43 -0300 | Leonardo Serra Maciel de Campos |
| Revisão 0.4 | 2004-11-04 08:57:34 -0300 | Leonardo Serra Maciel de Campos |
| Revisão 0.5 | 2004-11-05 16:46:21 -0300 | Leonardo Serra Maciel de Campos |
| Revisão 0.6 | 2004-11-11 10:57:22 -0300 | Leonardo Serra Maciel de Campos |
| Revisão 0.7 | 2004-12-07 12:04:22 -0300 | Leonardo Serra Maciel de Campos |
Resumo
Este documento visa ensinar como instalar e configurar um servidor OpenLDAP secundario.
Índice
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.
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.
Este servidor OpenLDAP secundario terá uma copia de toda a arvore de dados do servidor OpenLDAP primario. Alem da copia ele tambem podera ser utilizado para fazer consultas. Pedidos de modificações ao servidor OpenLDAP secundario serão repassadas para o servidor OpenLDAP primario. Apos as modificações serem feitas no servidor OpenLDAP primario ele ira informar ao servidor OpenLDAP secundario das modificações. Desta maneira aumentamos a capacidade, a disponibilidade e a confiabilidade do serviço OpenLDAP.
Será presumido que o seu sistema Debian GNU/Linux e o aptitude estão corretamente configurados. Também estaremos acreditando que o servidor OpenLDAP primario está executando de forma correta.
Todos os comandos deverão ser executados pelo usuário root, execeto quando informado!
A tabelo abaixo mostra as versões de cada logicial usado.
A tabelo abaixo mostra as principais características do ambiente onde foi feito esta documentação.
Tabela 2. Ambiente
| Distribuição GNU/Linux | Debian Sarge |
| Endereço do servidor OpenLDAP primario | ldap.exemplo.com.br |
| Endereço do servidor OpenLDAP secundario | sldap.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 |
| Usuário administrador para replica do servidor OpenLDAP | cn=replicator,dc=exemplo,dc=com,dc=br |
| Senha do usuário administrador para replica do servidor OpenLDAP | qwer |
| Pasta da base do servidor OpenLDAP | /var/lib/ldap |
Usaremos palavras desta maneira para indicar substituição.
Execute o seguinte comando para instalar o servidor OpenLDAP:
# aptitude install slapd ldap-utils db4.2-util
Será instalado o pacote Debian para o OpenLDAP e ferramentas relacionadas. O DebConf ira fazer algumas perguntas, responda de acordo com a tabela abaixo.
As etapas abaixo devem ser executadas na maquina ldap.exemplo.com.br.
É necessário criptografar a senha do usuário cn=replicator,dc=exemplo,dc=com,dc=br. Para isto execute:
# slappasswd -h {CRYPT}
Será perguntada a senha, digite ela. Repita a senha para garantir de que ela foi digitada corretamente. Você recebera um resultado parecido com isto:
{CRYPT}2jkPbZYuWCw
É necessário criar um objeto do tipo simpleSecurityObject na base do servidor OpenLDAP, que será o usuário utilizado para realizar a replica. Para isto crie um arquivo com o seguinte conteúdo e salve ele com o nome de simpleSecurityObject.ldif.
dn:cn=replicator,dc=exemplo,dc=com,dc=br
cn: replicator
objectClass: simpleSecurityObject
objectClass: organizationalRole
userPassword: {crypt}SUMkenwzpcJkU
description: LDAP replicator
ou: Group
Execute o seguinte comando para adicionar o conteúdo do arquivo simpleSecurityObject.ldif a base do servidor OpenLDAP:
# ldapadd -x -h ldap.exemplo.com.br -D "cn=admin,dc=exemplo,dc=com,dc=br" -f simpleSecurityObject.ldif -W
Edite o arquivo /etc/ldap/slapd.conf.
É necessário colocar temporariamente o servidor OpenLDAP primario em modo de somente leitura, para isto acrescente ao fim do arquivo a seguinte linha:
readonly on
Iremos configurar quem recebera as replicações, para isto abaixo da linha:
directory "/var/lib/ldap"
Acrescente as seguintes linhas:
replica host=sldap.exemplo.com.br:389
binddn="cn=replicator,dc=exemplo,dc=com,dc=br"
bindmethod=simple
credentials=qwer
É necessário delegar ao usuário replicador acesso a base do servidor OpenLDAP. Para isto abaixo de cada linha:
by dn="cn=admin,dc=exemplo,dc=com,dc=br" write
Acrescente a seguinte linha:
by dn="cn=replicator,dc=exemplo,dc=com,dc=br" write
É necessário reiniciar o servidor OpenLDAP para carregar as novas configurações. Para isto execute:
# invoke-rc.d slapd restart
É necessário que o servidor OpenLDAP secundario tenha os mesmo dados que o servidor OpenLDAP primario, para isto iremos gerar uma copia da base do servidor OpenLDAP primario. Para isto execute:
# slapcat -l /etc/ldap/copia.ldif
Copie o arquivo /etc/ldap/copia.ldif para a maquina sldap.exemplo.com.br. A sugestão é usar o scp para copiar o arquivo entre as maquinas, para isto é necessario que a maquina sldap.exemplo.com.br tenha um servidor de SSH habilitado, o que não é o escopo deste documento. Para isto execute:
# scp /etc/ldap/copia.ldif sldap.exemplo.com.br:/etc/ldap/
Apague o arquivo /etc/ldap/copia.ldif para garantir que seus dados não serão comprometidos. Para isto execute:
# rm /etc/ldap/copia.ldif
É necessário que o servidor OpenLDAP secundario tenha praticamente o mesmo arquivo de configuração que o servidor OpenLDAP primario, exceto algumas configurações. Copie o arquivo /etc/ldap/slapd.conf para a maquina sldap.exemplo.com.br. A sugestão é usar o scp para copiar o arquivo entre as maquinas, para isto é necessario que a maquina sldap.exemplo.com.br tenha um servidor de SSH, o que não é o escopo deste documento. Para isto execute:
# scp /etc/ldap/slapd.conf sldap.exemplo.com.br:/etc/ldap/
As etapas abaixo devem ser executadas na maquina sldap.exemplo.com.br.
É necessário parar o servidor OpenLDAP. Para isto execute:
# invoke-rc.d slapd stop
Edite o arquivo /etc/ldap/slapd.conf.
Apague as seguintes linhas que configuram quem recebera as replicações:
replica host=sldap.exemplo.com.br:389
binddn="cn=replicator,dc=exemplo,dc=com,dc=br"
bindmethod=simple
credentials=qwer
Iremos configurar o comportamento quando chegar um pedido de modificação, para isto abaixo da linha:
directory "/var/lib/ldap"
Acrescente as seguintes linhas:
updatedn "cn=replicator,dc=exemplo,dc=com,dc=br" updateref ldap://ldap.exemplo.com.br
É necessário limpar a base do OpenLDAP, para isto execute:.
# rm -rf /var/lib/ldap/ # mkdir /var/lib/ldap/
É necessário carregar a copia da base do servidor OpenLDAP primario. Para isto execute:.
# slapadd -l /etc/ldap/copia.ldif
Apague o arquivo /etc/ldap/copia.ldif para garantir que seus dados não serão comprometidos. Para isto execute:
# rm /etc/ldap/copia.ldif
É necessário iniciar o servidor OpenLDAP. Para isto execute:
# invoke-rc.d slapd start
As etapas abaixo devem ser executadas na maquina ldap.exemplo.com.br.
Edite o arquivo /etc/ldap/slapd.conf. É necessário retirar o servidor OpenLDAP do modo de somente leitura, para isto apague a seguinte linha:
readonly on
É necessário reiniciar o servidor OpenLDAP para carregar a nova configuração. Para isto execute:
# invoke-rc.d slapd restart
Pode acontecer da base do servidor OpenLDAP corromper, quando isto acontecer execute:
Parar o servidor OpenLDAP:
# invoke-rc.d slapd stop
Entrar na pasta da base do servidor OpenLDAP:
# cd /var/lib/ldap
Recuperando a base:
# db4.2_recover
Iniciar o servidor OpenLDAP:
# invoke-rc.d slapd start
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
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
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!
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
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
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!
Os seguintes sítios foram usados como base para a criação desta documentação
Projeto OpenLDAP. http://www.openldap.org .
Projeto LDAP Brasil. http://www.ldap.org.br .
Replicação e escalabilidade. http://gtdir.inf.puc-rio.br/replicacao.htm .
Replicación de PDC's y SLAPD. http://guepardo.dyndns.org:8080/sergio-gonzalez/doc/04-replicacion-bdc-slapd/html/index.html .
Manual de administração do OpenLDAP. http://www.openldap.org/doc/admin22/ .
Monografia sobre LDAP. http://www.ldap.liceu.com.br/index.html .
LDAPAuthentication. http://wiki.debian.net/index.cgi?LDAPAuthentication .
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.
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.