OpenLDAP básico no CentOS

Publicado por Pedro Augusto Malanga em 05/08/2009

[ Hits: 30.873 ]

 


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

Nmon - analisando o desempenho do Linux

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

OpenFire com memória baixa

WHILE para PING em linha de comando

Tempo de execução de um comando - TIME ou TIMES

Leitura recomendada

Redirecionadores

Erro ao tentar instalar Manjaro Linux [Resolvido]

Instalação de servidor LTPS Terminal Server

Recuperar o som no Sabayon

Crie aliases para facilitar o uso do Package Manager no Arch e no KahelOS

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts