Resumo
O LDAP pode fazer muitas coisas variadas, maravilhosas. Mas em uma
instalação leve do Lightweight Directory Access Protocol, talvez sua funcionalidade mais
útil para o administrador de sistema é que ajuda a evitar que usuários o atropelem
perguntando o email de outros usuários. Mark Komarisnki e Cari Collet mostram o caminho.
Por Mark Komarinski e Cary Collet
Tradução: César A. K. Grossmann, (ckant@fazenda.gov.br)
A coluna deste mês trata de um protocolo que você provavelmente
ouviu falar bastante, mas que continua um mistério para você. Você não tem idéia por
que iria querer ou como esta ferramenta pode ser útil para você até você possuí-la. O
LDAP (Lightweight Directory Access Protocol - Protocolo Leve de Acesso a Diretório) foi
projetado para armazenar informações e responder consultas por TCP/IP. Com somente um
pouco de informação sobre um usuário registrado (o sobrenome, por exemplo) um cliente
pode recuperar o número do telefone, endereço de email, etc. Por exemplo, uma pesquisa
em “Lister” retorna dave.lister@reddwarf.co.uk, um número de extensão
telefônica, um endereço de correio, e assim por diante.
O método atual para distribuir senhas e outras informações por uma
rede é o NIS (Network Information Service - Serviço de Informações de Rede). O NIS
permite que tenha-se um servidor central para distribuir informações de usuários,
incluindo aliases de email e informação de automount. Entretanto, o NIS não é
apropriado para administrar grandes objetos binários (BLOBs) como imagens JPEG ou outra
coisa que não seja o velho texto plano ASCII.
Por outro lado, o LDAP é feito para este tipo de tarefa. Como
resultado, o LDAP está sendo usado para substituir serviços NIS no Linux completamente.
De fato, o LDAP possui várias vantagens sobre o NIS: O LDAP possui suporte para listas de
controle de acesso (ACLs) para permitir que usuários não-root acrescentem ou modifiquem
dados; A informação do LDAP pode ser utilizada fora do domínio LDAP; O LDAP suporta (ou
vai suportar) criptografia SSL dos clientes; O LDAP possui chamadas para a codificação
das suas próprias aplicações em C ou Perl.
Até agora, a maioria dos servidores LDAP era comercial, como o
servidor de diretórios da Netscape. A única versão OSS (Open Source Software) até
pouco tempo atrás era o servidor LDAP da Universidade de Michigan (U of M’s).
Infelizmente, o código da Universidade não tem sido atualizado há um bom tempo. O
lançamento do OpenLDAP traz este protocolo ao alcance dos usuários Linux que querem
testar a versatilidade do LDAP com um código atualizado, ao mesmo tempo que mantém
compatibilidade de API com programas escritos para o U of M. O OpenLDAP foi codificado
para ser escalável, fornecendo suporte para replicação de servidores, e uma escolha de
servidores de bancos de dados de backend (como o GDBM). O projeto do LDAP é hierárquico
(como o DNS) ao invés de um banco de dados relacional, o que significa que você pode
não ver nenhum suporte para o mySQL ou o PostgreSQL. Usar uma base de dados relacional
diminui um pouco a performance quando se está consultando informações hierarquizadas. A
diferença pode não ser muita, mas aumenta conforme a taxa de consultas aumenta.
Com os fundamentos encaminhados, irei mostrar a você como instalar,
configurar e usar o OpenLDAP como uma tabela de consulta de email para ser utilizada pelo
Outlook ou o Netscape. permitir que usuários não-root acrescentem ou modifiquem dados;
Primeiro, obtenha a última cópia do software de OpenLDAP.org (veja a
seção Recursos). Esta versão do LDAP é baseada no U of M, fornecendo compatibilidade
com aplicações escritas para usar o software do University. A versão que estou usando
é a versão 1.2, mas novas versões com correções de bugs podem estar disponíveis.
Leia o arquivo INSTALL para saber quais alterações foram incluídas na última versão.
Antes de compilar o software, algumas opções de configuração devem
ser definidas. Conforme definido anteriormente, o LDAP é similar, em arquitetura, ao DNS.
Você inicia no topo, e trabalha para baixo, em países, seguido de organizações. O
servidor LDAP inicia sua hierarquia (similar ao SOA do DNS) no “base DN”. Este
é, tipicamente, uma combinação do nome da organização e o nome ISO do país. Para
especificar cada um, a organização é prefixada com ‘o=’, o país com ‘c=’, e os dois
são separados por uma vírgula (,). Desta forma, você pode ter um base DN como
“o=Red Dwarf, c=UK” ou “o=Possum Lodge, c=CA”.
Isto significa que a primeira coisa que você precisa decidir é qual
será o seu base DN. Diferentemente do DNS, parece não haver uma autoridade central para
atribuir DN’s. Isto significa que você pode fazer um base DN para ti mesmo. Você deverá
apenas certificar-se, se pretende comunicar com outros servidores LDAP (o que não faremos
neste estágio), que não tenham o mesmo base DN.
Uma vez definido o base DN, pode-se fazer a compilação. As versões mais novas do
OpenLDAP usam um script configure em vez de obrigar a edição manual de makefiles. Você
pode utilizar o comando ./configure para iniciar. Se pretende ter suporte ao crypt(3), use
o comando ./configure –enable-crypt.
Prossiga e execute o comando make — e observe como são belas as
linhas da compilação…
Uma vez que o make tenha feito o seu trabalho, você pode querer
testar a configuração executando um make test, garantindo desta forma que tudo funcione
de acordo. Isto vai tomar mais alguns minutos, mas o protege de muita dor de cabeça no
futuro, se lhe informar que algo não está funcionando de forma adequada.
Por padrão, o comando make install coloca arquivos em
/usr/local/libexec/(daemons), /usr/local/bin (programas cliente), /usr/local/sbin
(programas para converter ao formato LDAP), e /usr/local/etc/ldap (arquivos de
configuração).
Você pode editar o arquivo /usr/local/etc/openldap/slapd.conf para
configurar o base DN que você criou anteriormente. O arquivo é bem comentado, e você
vai querer editar a linha que inicia com “suffix”.
Uma vez configurado, você precisa iniciar o banco de dados. A forma
mais fácli de fazer isto é usar um conjunto de ferramentas de migração, ou scripts
Perl que convertem um banco de dados NIS inteiro para o LDAP (veja em Resources). Uma vez
que somente queremos colocar o conteúdo de /etc/passwd, isto vai nos ajudar a popular o
banco de dados. Verifique no README que acompanha o pacote se há necessidade de
configurar as ferramentas para a sua configuração em particular. A forma mais rápida e
fácil de fazer isto (assumindo que /etc/passwd esteja preenchido) é escrever
../migrate_passwd.pl /etc/passwd ./passwd.ldif
Este comando cria um arquivo passwd.ldif (LDIF é o formato de arquivo
usado para importar dados para o LDAP).
Seu arquivo LDIF deve ter um punhado de entradas como estas:
dn: uid=markk,o=Aurora Technologies, c=US
uid:markk
cn: Mark Komarinski
krbname: markk@AURORATECH.COM
objectClass: kerberosSecurityObject
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
givenname: Mark
sn: Komarinski
mail: markk@auroratech.com
objectClass: posixAccount
objectClass: account
userpassword: {crypt}Imnottellingyou
loginShell: /bin/csh
uidNumber:202
gidNumber:101
homeDirectory: /home/markk
gecos: Mark Komarinski
Como pode ser visto, cada entrada inicia com um único DN. Muitas
destas entradas são desnecessárias, e você pode acrescentar novas entradas conforme
necessário. Por exemplo, números de telefone, informações para localização, e até
dados binários, como uma chave PGP ou imagens JPEG (eu não testei isto ainda) podem ser
armazenadas no registro.
Antes de criar o banco de dados GDBM, precisamos incluir um cabeçalho
(que as ferramentas de migração normalmente incluem) para informar ao SLDAP (novamente)
qual é o base DN.
No início do arquivo, coloque algo como:
nd: o=Aurora Technologies, c=US o: Aurora Technologies objectClass: organization
(Atenção: você deve alterar as entradas o e c para os nomes que
você determinou como sendo o seu base DN, anteriormente, na instalação).
O banco de dados GDBM pode ser criado, então, com o comando:
/usr/local/sbin/ldif2ldbm -i passwd.ldif
Agora que o banco de dados está carregado, o servidor pode ser
iniciado com o seguinte comando:
/usr/local/libexec/slapd
Para executar um teste rápido, use um comando como:
/usr/local/bin/ldapsearch ‘objectClass=*’
e você deve ter todas as entradas listadas.
A pesquisa pode agora ser refinada para algo como:
/usr/local/bin/ldapsearch -b’o=Aurora Technologies, c=US’ ‘uid=markk’
que deve apresentar todo o registro.
Já temos alguns dados. E agora? Hora de configurar o Netscape.
Usando o Netscape 4.5 no Linux, vá à lista de endereços
(Communicator, Address Book). Você vai ver a lista de endereços local e mais três
listas remotas (Netcenter, InfoSpace e Verisign). Clique com o botão direito sobre
Netcenter e clique em ‘New Directory’. Uma janela vai abrir, permitindo que você entre um
nome de diretório (pode ser qualquer coisa), o hostname (o equipamento em que você
iniciou o SLAPD), e, novamente, o base DN (você vai memorizar ele rapidamente, à medida
que instala tudo). O Netscape suporta conexões SSL ao LDAP mas, como não estamos usando
isto, deixe desmarcado, bem como “Login with name and password”. Com esta
configuração, entre seu sobrenome na caixa de pesquisa (Search) e deve ser recuperado
seu nome, email e organização.
Isto feito, devo admitir que não sou um grande expert em LDAP. Como a
maioria de vocês, eu só quero que os usuários não me perturbem por causa de endereços
de email de outras pessoas. O bom sobre isto é que ele pode ser incrementado para
armazenar todo tipo de informação que pode ser consultada via uma página Web.
Estou trabalhando, por exemplo, para desenvolver uma página de
administração LDAP, onde um usuário possa facilmente fazer um logon e mudar seu
endereço de email, acrescentar números de telefones móveis, e assim por diante. O
código para este tipo de modificação acompanha o módulo Perl Net::LDAP, originalmente
escrito por Clayton Donley.
Ainda estou tentando corrigir os erros (por enquanto senhas
encriptadas não funcionam, mas senhas em texto plano funcionam). Mas tendo um diretório
para todos na empresa já é um grande começo.
href="http://www.linuxworld.com/linuxworld/archive/columnsbydate.html#uptime">Colunas
Uptime anteriores nos arquivos da LinuxWorld
Ferramentas de Migração Perl
href="http://www.cpan.org/modules/by-category/05_Networking_Devices_IPC/Net/Net-LDAPa$" a
< aplicações de desenvolvimento para LDAP ao conectar-se Perl Módulo>
Download
do serviço de diretório LDAP
Recursos LDAP
RFC 1777
The Lightweight Directory Access Protocol
href="http://www.umich.edu/~difsvcs/ldap/doc/guides/slapd/1.html#RTFToC1">An overview of
LDAP-based directory service from the University of Michigan
Coluna da
Sunworld de Outubro de 1996, introduzindo o LDAP
Coluna
da Sunworld de Outubro de 1996, comparando o LDAP com o DNS
Tradução: César A. K. Grossmann (ckant@fazenda.gov.br)
Feedback: lweditors@linuxworld.com (só em inglês)
URL do original: http://www.linuxworld.com/lw-1999-03/lw-03-uptime.html
Comentarios
Comentarios estao desabilitados neste artigo.
Comments are closed.