De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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.
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)
# vi /usr/local/etc/openldap/lapd.confe alterar:
BASE dc=linuxman,dc=com,dc=br host localhost sasl yesSalve e saia....(:wq)
# 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
# /usr/local/libexec/slapd -4
obs: a opção -4 refere-se a usar a topologia IPv4 de Ip's.
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.
# 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)
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
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.
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)
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...
# ./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))"
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.
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
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)
Iniciemos o servidor de http apache
# /etc/rc.d/rc.httpd start
Entre no seu browser favorito e digite no caminho de endereços:
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários