Este tutorial é de autoria de
Cesar H. Prescher e
Ederson Torresini.
Servidor LDAP
Pacotes a serem instalados.
Execute os comandos para instalação:
# apt-get install slapd
# apt-get install phpldapadmin
# apt-get install ldap-utils
# apt-get install samba-doc
Arquivos adicionais necessários.
Para que Samba e LDAP funcionem juntos, é necessário criar o schema do Samba no LDAP, para isso faça:
# cd /usr/share/doc/samba-doc/examples/LDAP/
# gunzip samba.schema.gz
# cp samba.schema /etc/ldap/schema/
Informe ao servidor LDAP (slapd) sobre o novo esquema instalado adicionando esta linha ao arquivo
/etc/ldap/slapd.conf, após todas as outras que iniciam por include:
include /etc/ldap/schema/samba.schema
ATENÇÃO: A ordem é importante, uma vez que a leitura dos esquemas se dá de forma acumulativa.
Configuração dos arquivos.
Primeiramente gere uma senha para o LDAP:
# slappasswd
Aparecerá a solicitação de nova senha:
New password:
senha_desejada
Re-enter new password:
senha_desejada
E será gerado algo nesse estilo:
{SSHA}hLLfSLt73/YwNYEJU/T7PAcLd0A0B0je
Obs.: Copie essa senha para inserir no arquivo slapd.conf.
Arquivo
/etc/ldap/slapd.conf:
...
include /etc/ldap/schema/samba.schema
...
suffix "dc=nome_do_domínio,dc=com,dc=br"
rootdn "cn=admin,dc=nome_do_domínio,dc=com,dc=br"
rootpw (senha gerada pelo slappasswd - {SSHA}....)
...
access to attrs=userPassword,sambaNTPassword,sambaLMPassword,shadowLastChange
by dn="cn=admin,dc=nome_do_domínio,dc=com,dc=br" write
by dn="cn=integrador,dc=nome_do_domínio,dc=com,dc=br" read
by anonymous auth
by self write
by * none
access to *
by dn="cn=admin,dc=nome_do_domínio,dc=com,dc=br" write
by * read
access to dn.base="" by * read
No arquivo ldap.conf, altere as linhas:
...
BASE dc=nome_do_domínio,dc=com,dc=br
URI ldap://127.0.0.1
...
É interessante, para fins de compatibilidade, criar um link para outro arquivo, o /etc/ldap.conf:
# ln -s /etc/ldap/ldap.conf /etc/ldap.conf
E no arquivo
/etc/phpldapadmin/config.php:
...
$ldapservers->SetValue($i,'server','base',array('dc=nome_do_domínio,dc=com,dc=br'));
...
$ldapservers->SetValue($i,'login','dn','cn=admin,dc=nome_do_domínio,dc=com,dc=br');
...
$queries[$q]['base'] = 'dc=nome_do_domínio,dc=com,dc=br';
...