você está aqui: Home  → Arquivo de Mensagens

Descritivos de configuração do OpenLDAP com suporte a phpLDAPadmin no Slackware 10

Colaboração: Aldemari Borges

Data de Publicação: 24 de Agosto de 2004

Neste artigo abordaremos uma forma prática de configurarmos o openldap com suporte ao phpLDAPadmin, assim como seus adereços necessários, como migração de contas e instalação de pacotes extras. Enfatizando também alguns conceitos básicos acerca desta tecnologia.

  • O LDAP-lightweight directory access protocol, baseia-se em um protocolo de rede, que se encontra na camada de aplicação no modelo OSI da ISO.
  • Sua função principal é a de armazenar as informações de forma centralizada em uma rede.
  • Possui estrutura hierárquica de informações.
  • Seu Backend(BD) é em forma de árvore, não em tabelas como é convencional.
  • Há o conceito básico de Orientação a Objetos em sua formação.
  • Suas entradas populacionais do banco são baseadas em atributos.
  • As RFC's(Request For Comments) 1777,1778,1779 e 2251 definem este protocolo. (www.ietf.org/rfc.html)

Em grandes redes, e em alguns particulares "CASOS DE USO", há a necessidade de buscarmos soluções que sejam "definitivas" em se falando de informações de autenticação únicas como em um MTA, Proxy, FileSystem, e outros sistemas que precisam requisitar informaçoes em uma rede. A estrutra de diretórios LDAP é o nosso grande "curinga" nesta tarefa.

Outro fato importante a mencionar, é o de que o LDAP foi construído de forma a responder uma quantidade alta de solicitações de consulta. A princípio as informações armazenadas em seu backend, são pouco atualizadas e/ou escritas.

Obs: Neste caso de uso, estarei utilizando o Gnu/Linux Slackware 10 como sistema operacional.

Precisamos antes e tudo, instalar o Openldap+BerkeleyDB+SASL(Cyrus)

Considerações iniciais

  • Iremos utilizar neste artigo o endereço LDAP "dc=linuxman,dc=com,dc=br"
  • Iremos utilizar também o "cn=Manager" com senha "secret", criptografada com md5crypt

    ===Configuração do arquivo ldap.conf===

      # vi /usr/local/etc/openldap/lapd.conf
    

    e alterar:

      BASE    dc=linuxman,dc=com,dc=br
      host    localhost
      sasl	yes
    

    Salve e saia....(:wq)

Configuração do arquivo slapd.conf

  # vi /usr/local/etc/openldap/slapd.conf

e alterar:

  database        bdb
  suffix          "dc=linuxman,dc=com,dc=br"
  rootdn          "cn=Manager,dc=linuxman,dc=com,dc=br"
  rootpw		secret

Nota: Aconselho alterar a senha secret que está em "Clear Mode", para alguma opção criptografada. Pode-se fazer isto usando o comando slappasswd como abaixo:

  # slappasswd
  New password:
  Re-enter new password:
  {SSHA}IMzCFI4FW4O6gpe0JVm3/+V/rDMmrjj1

copia-se esta linha acima e cola no lugar do secret do arquivo slapd.conf.... ex:

  rootpw		{SSHA}IMzCFI4FW4O6gpe0JVm3/+V/rDMmrjj1

Iniciar o serviço LDAP

  # /usr/local/libexec/slapd -4

obs: a opção -4 refere-se a usar a topologia IPv4 de Ip's.

Criação do arquivo LDIF

LDIF(LDAP Data Interchange Format) - Descreve as entradas de diretório no formato LDAP em modo texto, que serão exportadas para a base de dados posteriormente.

Mais informações

  # vi top.ldif
  
  dn: dc=linuxman,dc=com,dc=br
  objectclass: dcObject
  objectclass: organization
  o: Linuxman Corporation
  dc: linuxman
  
  dn: cn=Manager,dc=linuxman,dc=com,dc=br
  objectclass: organizationalRole
  cn: Manager

Salve e saia...(:wq)

Inclusão do LDIF na base LDAP

Usaremos o ldapadd para adicionarmos o arquivo top.ldif criado anteriormente.

  # ldapadd -x -D 'cn=Manager,dc=linuxman,dc=com,dc=br' -W -f top.ldif

Teste de verificação da base

O comando ldapsearch é usado para a verificação de dados no LDAP

  # ldapsearch -x -b 'dc=linuxman,dc=com,dc=br' '(objectclass=*)'

Deveremos ter uma resposta a altura da função.

Importação da base de dados usando o Migrationtools

O MigrationTools é um conjunto de scripts usados para a migração dos dados da máquina para um arquivo no formato LDIF, que será importado posteriormente pelo LDAP. Ajudando, e muito, ao administrador de redes.

Pode-se baixá-lo seguindo o seguinte:

  # wget ftp://ftp.padl.com/pub/MigrationTools.tgz

Descompactando e instalando o pacote:

  # mv MigrationTools.tgz /usr/local; cd /usr/local
  # tar -zxvf MigrationTools.tgz
  # cd MigrationTools-45

Alteremos as seguintes linhas do arquivo migrate_common.ph

  # Default DNS domain
  $DEFAULT_MAIL_DOMAIN = "linuxman.com.br";
  
  # Default base
  $DEFAULT_BASE = "dc=linuxman,dc=com,dc=br";
  
  #Default Host
  $DEFAULT_MAIL_HOST = "localhost";

Iremos agora finalmente migrar os dados em forma de objetos(LDIF)

  # ./migrate_base.pl > base.ldif     

O comando/script acima irá gerar o arquivo base.ldif, onde internamente possuírá os dados do sistema em forma de objeto no formato LDIF. No entanto, precisaremos apenas de três deles. o "People", o "Group" e o "Aliases".

Edite o arquivo e deixe apenas os que interessam para nosso caso de uso.

Ex:

  # vi base.ldif
  
  dn: ou=People,dc=linuxman,dc=com,dc=br
  ou: People
  objectClass: top
  objectClass: organizationalUnit
  
  dn: ou=Group,dc=linuxman,dc=com,dc=br
  ou: Group
  objectClass: top
  objectClass: organizationalUnit
  
  dn: ou=Aliases,dc=linuxman,dc=com,dc=br
  ou: Aliases
  objectClass: top
  objectClass: organizationalUnit

Salve e saia...(:wq)

Inclusão do LDIF na base LDAP

Usaremos o ldapadd para adicionarmos o arquivo base.ldif criado anteriormente.

  # ldapadd -x -D 'cn=Manager,dc=linuxman,dc=com,dc=br' -W -f base.ldif

Façamos um teste agora e vejamos o resultado alterado:

  # ldapsearch -x

Veja que veremos os grupos formados pelos objetos...

Migração dos logins,senhas e Grupos do sistema em formato LDIF

  # ./migrate_passwd.pl /etc/passwd users.ldif
  # ./migrate_group.pl /etc/group grupos.ldif

Vamos fazer que o LDAP importe esses dados...

  # ldapadd -x -D 'cn=Manager,dc=linuxman,dc=com,dc=br' -W -f users .ldif
  # ldapadd -x -D 'cn=Manager,dc=linuxman,dc=com,dc=br' -W -f grupos.ldif

Verique como ficou a base

  # ldapsearch -x

O comando abaixo seria uma visualização de uma classe de objeto filtrada por uid

  # ldapsearch -x -b "dc=linuxman,dc=com,dc=br" -D "cn=Manager,dc=linuxman,dc=com,dc=br" -W "(&(objectclass=account)(uid=linuxman))"

Instalação do WebApplication phpLDAPadmin

O phpLDAPAdmin é uma interface web onde podemos visualizar e administrar o banco do OpenLDAP, assim como sua estrutura de objetos. No entanto, nada tão poderoso se comparado aos comandos em modo texto. Ele usará a porta 389 do protocolo IP aberta pelo slapd. Apesar de ser configurável esta diretiva.

Façamos o download como abaixo:

  # wget http://aleron.dl.sourceforge.net/sourceforge/phpldapadmin/phpldapadmin-0.9.4b.tar.gz
  # mv phpldapadmin-0.9.4b.tar.gz phpldapadmin
  # mv phpldapadmin /var/www/htdocs (no caso da distro do slackware)
  # cd /var/www/htdocs/phpldapadim
  # cp config.php.example config.php

Editemos o arquivo config.php, e alteremos as seguintes linhas(a princípio)

  # vi config.php
  
  $servers[$i]['host'] = 'localhost';
  $servers[$i]['base'] = 'dc=linuxman,dc=com,dc=br'
  $servers[$i]['login_dn'] = 'cn=Manager,dc=linuxman,dc=com,dc=br';

Salve e saia(:wq)...

OBS: No entanto, para acessarmos o phpLDAPadmin, precisaremos do php compilado com suporte a LDAP.

Instalando o PHP com suporte a LDAP

Vamos baixar o pacote e instalá-lo

  # wget http://br2.php.net/get/php-4.3.8.tar.bz2/from/us2.php.net/mirror
  # mv php-4.3.8.tar.bz2 /usr/local ; cd /usr/local
  # tar -zxvf php-4.3.8.tar.bz2 

Este é o pulo do gato para funcionar no Slackware 10 sem problemas

  #cd /usr/local/openldap-2.2.14
  #ln -s /usr/local/lib lib
  #cd /usr/local/php-4.3.7
  #./configure --with-apxs=/usr/sbin/apxs \
   --with-ldap=/usr/local/openldap-2.2.14 \
  --libexecdir=/usr/libexec/apache/
  #make
  #make install

Configurar o Apache

Devemos fazer algumas pequenas alterações nos arquivos do apache do Slackware.

  # vi /etc/apache/mod_php.conf
  
  # Load the PHP module:
  #LoadModule php4_module libexec/apache/libphp4.so

(Comente esta linha acima)

Salve e saia(:wq)....

Faça as alterações abaixo:

  # vi /etc/apache/httpd.conf
  
  <IfModule mod_dir.c>
      DirectoryIndex index.html index.php
  </IfModule>
  ##
  ##
  Include /etc/apache/mod_php.conf

(DESCOMENTE a linha acima)

Salve e saia(:wq)

Iniciando o Apache e fazendo os testes necessários

Iniciemos o servidor de http apache

  # /etc/rc.d/rc.httpd start

Entre no seu browser favorito e digite no caminho de endereços:

http://localhost/phpldapadmin

Join Now !!!

Autor: Aldemari G. Borges - LPIC-1 (www.linuxman.com.br) <aldemari (a) linuxman com br>. OBS: Autorizo a publicação do artigo em sites realacionados ao assunto, no entanto, preservando o autor.


Veja a relação completa dos artigos de Aldemari Borges

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script