Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

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

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.98/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1684 votos)

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
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Expressões Regulares - Uma abordagem divertida 3ª edição