Implementação de serviço de diretórios com OpenLDAP no CentOS 6.3

O objetivo deste tutorial é mostrar como instalar, configurar e administrar um serviço de diretórios com OpenLDAP.

[ Hits: 91.028 ]

Por: Maycson Fonseca em 09/01/2013 | Blog: http://br.linkedin.com/pub/maycson-fonseca/96/b54/12a


O que é LDAP



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


    Próxima página

Páginas do artigo
   1. O que é LDAP
   2. Criando certificado SSL
   3. Comandos importantes
   4. Gerenciando com phpLDAPadmin
   5. Autenticando as estações no servidor OpenLDAP
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Entendendo o boot-update

Instalando o Nagios no Ubuntu Linux

NoBreak SMS e Gnu/Linux (FC5) - Parte 3 - Comunicação entre os servidores Linux sem senha

Configurando o Asterisk com autenticação LDAP

Acentos corretos no console, PnUP, PnDown, Home End, etc..

  
Comentários
[1] Comentário enviado por will__m em 04/11/2013 - 10:01h


Obrigado.


[2] Comentário enviado por rootss em 15/04/2014 - 20:23h

Cara primeiramente parabéns pelo artigo.

Estou com um problema aqui pra gerenciar pelo PHPldapAdmin.

Eu logo normalmente mas não exibe a árvore de diretórios, aparece assim " Esta base não pode ser criada com PLA. " .... onde deveria estar a base.

Você já passou por isso? ou tem idéia do que pode ser? Já não sei mais o que fazer hehe

Desde já agradeço.

Abs...

[3] Comentário enviado por murilo_ns em 06/05/2014 - 11:51h

como seria a autenticação se a estação fosse um Ubuntu e o servidor um CentOS?

[4] Comentário enviado por jfernandes em 05/10/2014 - 00:37h

Olá rapaz,

Antes de mais nada, parabéns pelo post, mas gostaria de pedir ajudas .

Como faço para localizar objetos específicos pelo nome, exemplo, um usuário, uma impressora, um servidor, quero localizar isso numa base LDAP.

Fico no aguardo

Abraços

[5] Comentário enviado por maycson em 06/10/2014 - 11:52h


[3] Comentário enviado por murilo_ns em 06/05/2014 - 11:51h:

como seria a autenticação se a estação fosse um Ubuntu e o servidor um CentOS?


Olá, seria a mesma coisa. No Ubuntu o que muda é apenas o nome de alguns arquivos e seus respectivos lugares.

[6] Comentário enviado por maycson em 06/10/2014 - 11:56h


[4] Comentário enviado por jfernandes em 05/10/2014 - 00:37h:

Olá rapaz,

Antes de mais nada, parabéns pelo post, mas gostaria de pedir ajudas .

Como faço para localizar objetos específicos pelo nome, exemplo, um usuário, uma impressora, um servidor, quero localizar isso numa base LDAP.

Fico no aguardo

Abraços


Olá, Obrigado

Você pode fazer assim : ldapsearch -h 127.0.0.1 -b "cn=maycson.fonseca,ou=users,dc=ldap-server,dc=com" -x
Se você separar por OUs as impressoras, os usuários e os servidores você consegue localizar bem fácil.
Era essa sua duvida ?

Abraços

[7] Comentário enviado por jfernandes em 06/10/2014 - 12:36h

Perfeito rapaz.

Muito obrigado.

Mais uma para nossas anotações.

Valeu Maycon

[8] Comentário enviado por maycson em 06/10/2014 - 22:33h


[2] Comentário enviado por rootss em 15/04/2014 - 20:23h:

Cara primeiramente parabéns pelo artigo.

Estou com um problema aqui pra gerenciar pelo PHPldapAdmin.

Eu logo normalmente mas não exibe a árvore de diretórios, aparece assim " Esta base não pode ser criada com PLA. " .... onde deveria estar a base.

Você já passou por isso? ou tem idéia do que pode ser? Já não sei mais o que fazer hehe

Desde já agradeço.

Abs...



Olá, Obrigado

use esse comando a sua base não foi adicionada corretamente:
ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f ldap-server.ldif -W

Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts