OpenLDAP básico no CentOS

Publicado por Pedro Augusto Malanga em 05/08/2009

[ Hits: 28.801 ]

 


OpenLDAP básico no CentOS



Bom, já existem muitos artigos para trabalharmos com OpenLDAP, então não entrarei no mérito da história, mas posso garantir que o OpenLDAP é uma estrutura onde podemos "cuidar" de muitas coisas, como por exemplo contas de usuários, que é o nosso foco neste pequeno tutorial.

Utilizei o CentOS Linux para este texto. Sem muito estresse, vamos ao trabalho!

Primeiro com a ajuda do YUM baixamos o OpenLDAP:

# yum install openldap openldap-server openldap-devel compat-openldap php-ldap

Depois de tudo instalado, vamos rapidamente pegar uma senha para nosso arquivo de configuração:

# slappasswd -s 12345

Esse comando irá gerar a senha no prompt:

{SSHA}tJBMztSgH1yOojFqj3tWP3UaXaowapW/

Copie essa senha pois utilizaremos a seguir.

Então vamos configurar o nosso amigo /etc/openldap/slapd.conf.

IMPORTANTE: Onde se fala de INCLUDE são na verdade estruturas que o LDAP vai absorver para a base de dados dele, que utiliza o Berkeley DB, então se você for utilizar por exemplo a integração do Samba com o OpenLDAP, deverá colocar o include do schema Samba nessas primeiras linhas, que é fornecido junto com o Samba.

Abaixo segue uma conf muito simples:

include  /etc/openldap/schema/core.schema
include  /etc/openldap/schema/cosine.schema
include  /etc/openldap/schema/inetorgperson.schema
include  /etc/openldap/schema/nis.schema

allow bind_v2

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
database        bdb
suffix          "dc=casa,dc=com"
rootdn          "cn=Manager,dc=casa,dc=com"
rootpw          {SSHA}tJBMztSgH1yOojFqj3tWP3UaXaowapW/
##Eu disse pra copiar a senha não disse

directory       /var/lib/ldap

index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

Pronto, extremamente básico. A ideia aqui é somente levantar uma base LDAP, não estamos trabalhando com segurança, entre outras opções.

Agora vamos levantar nosso LDAP:

# sh /etc/init.d/ldap start

Para testar se realmente está funcionando, digite:

# ldapsearch -x

Deve aparecer qualquer coisa DIFERENTE de:

ldap_bind: Can't contact LDAP server (-1)

Você deve ter reparado que a resposta foi meio sem graça porque não temos nada dentro da nossa base, então vamos criar nossa estrutura para controle de usuários.

Crie um arquivo chamado topo.ldif:

dn: dc=casa,dc=com
objectclass: dcObject
objectclass: organization
o: Casa Openldap
dc: casa

dn: cn=Manager,dc=casa,dc=com
objectclass: organizationalRole
cn: Manager

Crie um segundo arquivo chamado base.ldif:

dn: ou=Pessoas,dc=casa,dc=com
ou: Pessoas
objectClass: top
objectClass: organizationalUnit

dn: ou=Grupos,dc=casa,dc=com
ou: Grupos
objectClass: top
objectClass: organizationalUnit

Agora vamos criar as estruturas com o comando ldapadd. Primeiro o top.ldif:

# ldapadd -x -D "cn=Manager,dc=casa,dc=com" -W -f top.ldif

Segundo o base.ldif:

# ldapadd -x -D "cn=Manager,dc=casa,dc=com" -W -f base.ldif

A opção -W irá solicitar a senha que criamos no início, que no neste caso é "teste".

Pronto, basicamente para se criar uma estrutura para utilizar o OpenLDAP é essa, existem muito mais configurações, porém com essa estrutura que criamos você já pode inserir alguns usuários e conectar por exemplo o Squid para autenticar nessa base.

Espero que possa ter ajudado de alguma forma.

Forte abraço.

Outras dicas deste autor

WHILE para PING em linha de comando

free - Comando pra saber utilização de memória do Linux

OpenFire com memória baixa

Configurando servidor Proftp no Debian Lenny com autenticação LDAP e filtro por grupo

Análise performance no Linux com o Nmon

Leitura recomendada

O comando rm

Protocolo DLNA no Ubuntu - Solução para compartilhamento de arquivos entre vários dispositivos

O poder do Joomla

Criando listas individuais para cada instância da mesma classe em Python

Instalando PostgreSQL no Slackware Linux

  

Comentários
[1] Comentário enviado por removido em 22/08/2011 - 17:43h

Eu fiz
yum install openldap openldap-server openldap-devel compat-openldap php-ldap

Porem dentro de /etc/init.d não tem o ldap


e agora?

[2] Comentário enviado por removido em 22/08/2011 - 17:46h

Resposta, falta instalar esse pacote:

openldap-servers.i386

via yum tbm

[3] Comentário enviado por gamefe em 28/09/2011 - 20:18h

Instalei direitinho no CentOS, só que quando digito ldapadd -a -W -x -D "cn=Manager,dc=teste,dc=com,dc=br" -f /etc/openldap/init.ldif e pede a senha, não está dando certo. Digito a senha 12345 que criei utilizando o slappasswd -s 12345 e dá o seguinte erro: ldap_bind: Invalid credentials (49). Utilizando o phpLDAPadmin, vi que a base estava aparecendo como dc=my-domin,dc=com (como se fosse o padrão, mesmo depois de ter modificado conforme o tutorial), para consertar, modifiquei os arquivos que estão dentro da pasta slapd.d/cn=config, aí sim consegui pelo menos alterar para que no phpLDAPadmin aparecesse os dados certos (dc=teste,dc=com,dc=br).
O que posso ter errado para não conseguir acessar com a senha criada?

[4] Comentário enviado por samukasmk em 12/06/2012 - 17:09h

Cara,

Muito Boa, Funciona ate hoje com tantas atualizações!

Valew!
Samuka



Contribuir com comentário