OpenLDAP básico no CentOS

Publicado por Pedro Augusto Malanga em 05/08/2009

[ Hits: 27.065 ]

 


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

Análise performance no Linux com o Nmon

Nmon - analisando o desempenho do Linux

OpenFire com memória baixa

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

Leitura recomendada

Painel de controle - vida fácil?

Cuidado com nomes de arquivos no Linux

Usando o Linux com o driver VESA

Efeitos do Desktop 3D no Ubuntu 7.04

Conversando em rede com Pidgin e o protocolo Bonjour

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts