LDAP é o acrônimo de "
Lightweight Directory Access Protocol", ou Protocolo Leve de Acesso a Diretórios. É um conjunto de protocolos desenhados para acessar informação centralizada em uma rede.
A versão atual do protocolo é a 3, e está definida pela RFC 2251. Sua principal finalidade é a centralização dos recursos da rede, facilitando a administração, backup e replicação.
OpenLDAP
É o projeto que mantém uma implementação completa em Software Livre de um servidor de serviços de diretórios LDAP, estando presente em todas as principais distribuições
GNU/Linux e
BSD.
Instalação do servidor
Primeiro, vamos adicionar dois repositórios no
CentOS:
Para CentOS 6 - 32 bits:
# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Para CentOS 6 - 64 bits:
# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Agora vamos instalar os pacotes necessários para configurar o servidor:
# yum install openldap-servers openldap-clients
Uma boa prática é realizar os backups dos arquivos originais. Geralmente, eu crio em /home o diretório BackUp, mas isso fica a seu critério:
# mkdir /home/BackUp
# mkdir /home/BackUp/LDAP
# cp -r /etc/openldap/ /home/BackUp/LDAP/
# cp -r /usr/share/openldap-servers /home/BackUp/LDAP/
Voltando à configuração, vamos editar o arquivo
ldap.conf. Como editor, utilizei o
Nano, mas você pode utilizar qualquer um de sua preferência:
# nano /etc/openldap/ldap.conf
Adicione as linhas BASE e URI ao final do arquivo. Não esqueça de trocar o nome da BASE e da URI, conforme as configurações de seu servidor.
Exemplo:
Se o seu servidor LDAP se chama: ldap-server.com
E tiver o IP: 192.168.255.1
... a configuração será como esta abaixo. No lugar do IP, você também pode utilizar o domínio:
BASE dc=ldap-server,dc=com
URI ldap://192.168.255.1
Vamos copiar o arquivo de configuração "slapd.conf" para
/etc/openldap, e o "DB_CONFIG" para
/var/lib/ldap:
# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
Criaremos uma senha criptografada para o usuário root do LDAP e copiaremos o
hash para o arquivo "slapd.conf". Lembrando que a senha pode ser diferente da senha do usuário root do servidor.
Utilize o comando
slappasswd para criar a senha e copie o hash da senha após digitar a sua senha.
Exemplo:
# slappasswd
New password:
Re-enter new password:
{SSHA} Senha Criptografada
Edite o arquivo "slapd.conf", alterando as seguintes linhas (seguirei nosso exemplo do
ldap-server.com):
De:
by dn.exact="cn=Manager,dc=my-domain,dc=com" read
Para:
by dn.exact="cn=Manager,dc=ldap-server,dc=com" read
De:
suffix "dc= my-domain,dc=com"
Para:
suffix "dc= ldap-server,dc=com"
De:
rootdn "cn=Manager, dc= my-domain,dc=com"
Para:
rootdn "cn=Manager, dc= ldap-server,dc=com"
Adicione após a linha "# rootpw" o seguinte conteúdo:
rootpw {SSHA} Senha Criptografada
Crie um arquivo com o nome do seu domínio ".ldif" (exemplo: ldap-sever.ldif), com o seguinte conteúdo, alterando as configurações para o seu domínio:
dn: dc=ldap-server,dc=com
dc: ldap-server
objectClass: dcObject
objectClass: organization
o: ldap-server.com
Removeremos o diretório slapd.d/ e adicionaremos nosso arquivo no servidor.
# rm -rf /etc/openldap/slapd.d/*
# slapadd -n 2 -l /etc/openldap/ldap-server.ldif
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
Vamos definir as permissões dos diretórios:
# chown -R ldap:ldap /var/lib/ldap
# chown -R ldap:ldap /etc/openldap/slapd.d
Colocaremos o serviço do
slapd para ser iniciado junto ao boot da máquina:
# chkconfig slapd on
# service slapd start
Faremos os testes finais para garantir o correto funcionamento do serviço
slapd:
# rm -rf /etc/openldap/slapd.d/*
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# chown -R ldap:ldap /etc/openldap/slapd.d
# service slapd restart