br-linux

Artigos br-linux.org
Artigos sobre Linux em bom português, originais e com qualidade

Configurando o Openldap com suporte ao phpLDAPadmin
Publicado em 29 de julho de 2004

Neste excelente tutorial, Aldemari G. Borges (aldemari@linuxman.com.br) nos fala: 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.

Confiram.

Configurando o Openldap com suporte ao phpLDAPadmin


Autor: Aldemari G. Borges - LPIC-1 (www.linuxman.com.br)
aldemari@linuxman.com.br


- 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)

- Recomendo que seja feita esta instalação através do link abaixo:

* http://www.dicas-l.unicamp.br/dicas-l/20040713.php

- Após a confirmação de sucesso das procedências do link acima, continuemos então...


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 através do site:

http://developer.netscape.com/docs/manuals/directory/admin30/ldif.htm

# 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

- Este 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


DirectoryIndex index.html index.php

##
##
Include /etc/apache/mod_php.conf
(DESCOMENTE esta 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@linuxman.com.br

OBS: Autorizo a publicação do artigo em sites realacionados ao assunto,
no entanto, preservando o autor.

Postado por fuji em julho 29, 2004 10:39 AM

Comentários para "Configurando o Openldap com suporte ao phpLDAPadmin"

Antes de comentar...

- Preserve a qualidade desta discussão
- Leia os Termos de Uso.
- Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum.
- Mantenha o foco nos argumentos e no assunto
- Não faça ataques pessoais.
- Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro
- Não seja um e-mala ;-)

Envie seu comentário









Lembrar as informações pessoais?


Atenção: Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum, onde mais pessoas estarão disponíveis para respondê-lo..






Nota: os comentários pertencem a seus respectivos autores e são de responsabilidade de quem os postou. O restante desta nota está disponível sob a licença GNU FDL, exceto se explicitamente declarado em contrário.