Implementando servidor LDAP no Ubuntu

Artigo para configuração passo-a-passo de uma base LDAP para servidores Ubuntu. Dentre as funcionalidades está a autenticação direta dos usuários de sistema na base com criação automática do /home do usuário.

[ Hits: 191.144 ]

Por: Raphael de Freitas em 04/06/2007


Instalação do LDAP e LDAP PHPLdapAdmin



Instalando base LDAP:

# aptitude install slapd

DNS domain name: vivaolinux.com.br (é o nome que daremos para o DNS)
Name of your organization: vivaolinux (é o nome de sua organização que será especificada na base dn)
Admin password: senha (coloque uma senha que será usada na conexão com a base)
Allow LDAPv2 protocol: YES (é muito importante habilitar esse item para ser compatível com aplicações que utilizam LDAPv2)

Edite o arquivo /etc/ldap/slapd e troque todos os dc para o dc que você quiser.

Ex: dc=vivaolinux,dc=com,dc=br
Ex: dc=empresa,dc=com

É o nome raiz que teremos.

Instalando sistema de gerenciamento LDAP PHPLdapAdmin:

PHPLdapAdmin é uma interface gráfica para gerenciar a base LDAP.

Primeiramente será necessário a instalação do Apache2 com suporte à PHP versão 5 ou 4 se preferir.

# aptitude install apache2 libapache2-mod-php5 php5 php5-cgi php5-ldap

Após isso instalaremos o phpldapadmin:

# aptitude install phpldapadmin

Pronto, abra o browser e visualize sua base, exemplo:

http://ip_do_servidor/phpldapadmin

    Próxima página

Páginas do artigo
   1. Instalação do LDAP e LDAP PHPLdapAdmin
   2. Editar arquivo slapd.conf adicionando os logs
   3. Editar o arquivo ldap.conf
   4. Criação de usuários e grupos
   5. Configurações para autenticar na base LDAP
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Ativando e configurando a compactação de memória com Zram no Slackware

Caso de Estudo: E-mail Server ISP

Instalando e configurando Cacti + SNMP no CentOS / Red Hat

Instalação do Asterisk - Distribuição Meucci

Como gerenciar usuários e grupos

  
Comentários
[1] Comentário enviado por roberva em 04/06/2007 - 11:32h

Duvidas...
Se meu servidor ldap estiver fora da rede como os clientes vao se logar??
Quem eles vao buscar primeiro? Local ou no Dominio?
Mesmo assim como eu setaria timeout nos clientes?

Quem tiver essas respostas posta ai.... valeu gaelra!

;)

[2] Comentário enviado por dockism em 04/06/2007 - 11:52h

Galera desculpa a minha ignorância, mas para que serve esse tipo de servidor LDAP??

[3] Comentário enviado por Sup0rt3 em 04/06/2007 - 12:05h

muito dez cara, valeu.

Respondendo o dochism:

Bem servidores ldap servem como base de dados de usuario para varios servidor: samba, apache, squid, postfix, etc....
He uma base unica de usuarios que evita criar um usuario no proxy, depois um de login na rede, depois outro de email...

O ldap é de super rapido acesso para consultas e facil manipulação. O AD da Micro$oft usa uma implementação do protocolo LDAP. O slapd é uma outra implementação do mesmo protocolo.

Espero ter ajudado.

[4] Comentário enviado por Sup0rt3 em 04/06/2007 - 12:10h

Neste caso do Artigo muito bem feito do nosso amigo rfreitasa, Ele configurou o Servidor e o cliente na propria maquina pelo q entendi. Ja trabalhei em uma rede que as maquinas linux se logavam num servidor ldap, tinham seu home mapeados por nfs. Logo qualquer maquina que vc entresse com seu username e passwd vc tinha as suas configurações. esse é o tal do perfil ambulante.

No artigo ele so fez a maquina dele do ubuntu não usar mais o passwd para autenticar os usuario, mas sim o ldap.

Espero ter me expressado corretamente.

[5] Comentário enviado por rfreitasa em 04/06/2007 - 12:13h

Exatamente
Toda autenticação é local... O master funciona como replicador da base...na qual cada servidor Ldap slave terá a mesma base ..(identica)...
Só não será identica se replicarmos partyes da base master..
Mas respondendo sua pergunta... se estiver sem "link" vc autenticará normalmente local.. pois cada servidor slave tem sua base ....... grato.

[6] Comentário enviado por rfreitasa em 04/06/2007 - 16:42h

DETALHE: NA CRIAÇÃO DOS USUARIOS : troque o < POR > .... creio que na correção do artigo ficou errado . GRATO

[7] Comentário enviado por malanga em 04/06/2007 - 21:14h

outra duvida,

quando vc alterou adicionou os index vc nao deveria ter dado um slapdindex???? para q comecem a valer???

t+

[8] Comentário enviado por vladijr em 04/06/2007 - 22:12h

ola não consigo adicionar os usuarios no servidor fiz todas as configurações de acordo com o artigo mas depois que digito o comando para adicionar os usuarios simplemente não acontece nada a base fica do mesmo jeito e pelo phpldapadmin não consigo me logar como admin aparece o seguinte erro
Error
Could not bind to the LDAP server.

LDAP said: Undefined attribute type
Error number: 0x11 (LDAP_UNDEFINED_TYPE)
Description: The attribute type specified is invalid.

que pode estar acontecendo???

[9] Comentário enviado por rfreitasa em 05/06/2007 - 10:20h

Sim toda vez que alteramos o indice damos um slapindex -v com o servidor parado...

No caso da senha... faça o seguinte amigo
coloque essas 2 linhas no seu slapd.conf e tente se logar novamente, se conseguir é problema no passwd do admin.
coloque abaixo do sufix
rootdn "cn=admin,dc=vivaolinux,dc=com,dc=br" (troque pela dn sua)
rootpw "senhadoadmin"
Tente acessar via phpldapadmin novamente.
o outro problema deve ser exatamente por causa disso...tente logar via phpldapadmin e crie os usuarios por lá...se conseguir é pau de senha do admin...se não conseguir é problema de schema ou indice...
abc, Raphael

[10] Comentário enviado por vladijr em 05/06/2007 - 13:34h

ok rafael só que quando reinicio o computador aparece uma msg de erro dizendo que não foi possivel encontrar o servidor ldap e meu ubuntu não abre mais o q pode estar acontecendo???

[11] Comentário enviado por rfreitasa em 06/06/2007 - 09:21h

Isso é problema no pam.d.
Entre em modo failsafe e verifique toda a configuração do pam.d que esta no artigo!
Com certeza ou foi digitado algo errado ou alguma linha foi pulada ok?
Em relação ao erro de nao encontrar o servidor ldap pode ser seu ldap.conf que está errado. Amigo de uma revisada em todos os passos ok?
abc,

[12] Comentário enviado por vladijr em 07/06/2007 - 00:54h

olá fiz o que vc falou acrecentei
rootdn "cn=admin,dc=vivaolinux,dc=com,dc=br" (troque pela dn sua)
rootpw "minhasenha"
ao slapd.conf mas mesmo assim não consigo acessar o phpldapadmin o que pode estar dando errado?

vamos ver se isso ajuda usei o comando slapd -d 256 e obtive a seguinte resposta:

@(#) $OpenLDAP: slapd 2.2.26 (Nov 20 2006 22:42:27) $
buildd@terranova:/build/buildd/openldap2.2-2.2.26/debian/build/servers/slapd
daemon: bind(6) failed errno=98 (Address already in use)
daemon: bind(6) failed errno=98 (Address already in use)
slapd stopped.
connections_destroy: nothing to destroy.
que pode estar acontecendo

[13] Comentário enviado por removido em 08/06/2007 - 09:11h

Oi amigo, tudo bem?

Me explica direito como isto funciona..
se eu implementar esta solução os dados do usuarios seram todos armazenados no servidor??

[14] Comentário enviado por rfreitasa em 11/06/2007 - 16:40h

Amigo algum passo fui pulado pois se nem via rootdn funcionou significa que ele não autentica nem no modo "forçado"(vamos dizer assim rs..)
Verifique todods os passos novamente que vai dar certo ok ... seu slapd tá com problemas.
abc,

[15] Comentário enviado por rfreitasa em 11/06/2007 - 16:47h

Amigo lacraia ..
Funciona da seguinte forma:
Craiamos uma base ldap conbtendo usuarios e senhas ... dessa forma todos os serviços (squid/samba/apache /etc) podem se autenticar numa única base entendeu?
Ela é extremamente rapida e confiável.
Outro fator importanmte..... com uma base criada vc pode replicar em todos os servidores que vc tem ... ou seja se vc tiver 3 empresas em varios pontos do brasil todos os usuarios se autenticaram sem problemas em todas as unidades, pois vc terá uma única base .... Nesse artigo somente explico como autenticar , mas em outro momento colocarei replicação tb ok?
Em síntese é uma centralização de autenticação.
abc,

[16] Comentário enviado por elthon_abreu em 12/06/2007 - 14:11h

Amigo,

Sempre que dou o comando "ldapsearch -x" no Terminal recebo a seguinte mensagem:

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

Pelo que li nos fórums, o meu SLAPD parece não estar subindo. Porém, eu não sei o que pode estar errado. Tô precisando de uma mãozinha do pessoal que já passou por essa complicação.

Elthon

[17] Comentário enviado por rfreitasa em 12/06/2007 - 14:32h

Amigo elthon ...
Quando instalamos o slapd a seco... ou seja ...damos um apt-get install slapd ... ele faz as perguntas que coloquei no artigo...pois bem ...se vc após isso der um start nesse serviço verá que sobe sem problemas.... Bom para que o slapd esteja com pau com certeza é problema de digitação ou vc esqueceu algum passo..
Verifique o arquivo slap.conf e o ldap.conf ... tem que conter o mesmo host ok?
Se estiver errado não dará subirá pois não encontrará o server!
Espero ter ajudado.
ÁÁÁ VERIFIQUE os arquivos que postei ok?
abc,Raphael

[18] Comentário enviado por rfreitasa em 20/06/2007 - 11:49h

Pessoal....... Aos que nao conseguiram logar dar o comando dpkg-reconfigure slapd e modifique o nome da base pela desejada ... Dai sim vai autenticar normalmente!
abc,

[19] Comentário enviado por lipecys em 12/09/2007 - 15:22h

Cara, muito bem explicado seu artigo, vou fazer as conf e qualquer coisa posto aqui, valew.
Obrigado.

[20] Comentário enviado por jgama em 22/01/2008 - 23:49h

Pessoal só uma dúvida.

como desabilito o IPv6 no Ldap, pois aqui aparece está messagem nos logs ou com o comando abaixo

[root@server ~]# slapd -d 256
@(#) $OpenLDAP: slapd 2.3.27 (Nov 10 2007 09:24:08) $
mockbuild@builder6.centos.org:/builddir/build/BUILD/openldap-2.3.27/openldap-2.3.27/build-servers/servers/slapd
daemon: IPv6 socket() failed errno=97 (Address family not supported by protocol)
slapd starting

Abraço


[21] Comentário enviado por rfreitasa em 23/01/2008 - 08:30h

Amigo o ldap deve fornecer suporte a Ipv6 se a opção allow bind_v3 estiver habilitada
Caso contrário atualize seu repositório ldap e faça a instalação novamente.
Você tb pode forçar o ldap a "entender somente Ipv4 , nesse caso vc precisa passar um parametro na inicialização do slapd:
edite o /etc/default/slapd colocando SLAPD_OPTIONS="-4"
teste com o comando slapd -d -4..
Espero ter ajudado....
abção,
Raphael

[22] Comentário enviado por rfreitasa em 23/01/2008 - 08:32h

áááá outro porém :
O ldap funciona normalmente , mesmo aparecendo essa msg...ok?

[23] Comentário enviado por Imigrante em 10/11/2009 - 09:09h

Meu LDAP já está autenticando beleza. Mas gostaria de saber como devo fazer para utilizar um perfil previamente configurado, para servir de padrão quando outros perfis forem criados.
Ex: Área de trabalho, ícones, paineis, configurações de proxy e browser, etc...
Valeu!!!

[24] Comentário enviado por rfreitasa em 10/11/2009 - 12:06h

Amigo, essa configuração já é samba . Para lhe ajudar vou te passar o caminho das pedras.
No samba há uma opção de perfil: logon path = /caminhoondeestaraosperfis , ativando essa linha, assim que o usuario desligar a maquina será sincronizado o perfil dele , feito isso vc pode copiar o perfil e dar novo nome ao "boi".
Lembrando que o path deve ter sido mapeado logo abaixo EX:
#[sysvol]
#comment = System Volume
#path = /caminhodoperfil/nomedodiretorio
#guest ok = yes
#writable = yes
#share modes = no
#3browseable = no

Blz. ?? Acho que há tutorias bacanas aqui falando sobre isso.
Forte Abraço Raphael

[25] Comentário enviado por removido em 07/04/2010 - 10:15h

Amigo, rfreitasa !!!

Tenho já meu servidor slave replicando perfeitamente, caso o meu servidor MASTER pare os usuários deveriam autenticar no slave, correto?

Tem alguma documentação que explique isso, estou tentando achar algo sobre, mas não consegui.

Obrigado

[26] Comentário enviado por jgama em 24/04/2010 - 22:42h

Alguém sabe porque deste erro, coloco a senha do ldap emesmo assim dr erro.

root@server-01:~# ldapsearch -x -LLL -D cn=admin,dc=ccbsist,dc=net -W < insereou.ldif
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
root@server-01:~#

Nossa estou a dias para colocar um server ldap no Ubuntu-server 8.04 TLS e está osso duro.

Abraço

[27] Comentário enviado por jgama em 30/04/2010 - 19:05h

Já resolvi, timnha erro nas configurações

Abraço

[28] Comentário enviado por rfreitasa em 01/05/2010 - 17:27h

Amigo portesurf,
Todo serviço (samba,squid,etc) você aponta o servidor que deverá autenticar. Na verdade o termo master /slave sugere apenas o quesito replicação.
Ouqe voc~e procura é alta disponibilidade, manter a autenticação mesmo com a queda de um server. veja esse artigo, se lhe ajudar fico feliz.
http://www.nisled.org/category/heartbeat/
Forte abraço.

[29] Comentário enviado por jnetux em 29/09/2010 - 15:48h

Caro Raphael, parabéns pelo excelente Tutorial.
Mas, se o servidor cair, vc podeira dar uma luz de como se faria o logon na máquina.
Pois só há login, se a máquina estiver ligada à rede.
Se puder mostrar o caminho das pedras, fico muito grato.
JNetux

[30] Comentário enviado por kleison paiva em 21/09/2011 - 16:51h

Excelente artigo você está de parabéns,
eu instalei da mesma forma que você mostrou, mais não sei pq ñ aparece o arquivo slapd.conf dentro de /etc/ldap, se puder me ajudar estarie grato.

[31] Comentário enviado por lindrix em 10/06/2013 - 08:55h

Na parte Configurações para autenticar na base LDAP, você esqueceu de colocar o caminho completo dos arquivos common-password e common-session, que na verdade estão em /etc/pam.d/common-password e /etc/pam.d/common-session. No artigo estão como /etc/common-password e /etc/common-session.

Sim, ficou um pouco confuso para mim se é para editar esses arquivos ou adicionar as novas linhas a eles...

Obrigado pela atenção.

[32] Comentário enviado por lindrix em 10/06/2013 - 09:14h

Ainda em Configurações para autenticar na base LDAP, é para colocar essas confs no cliente ou no servidor? Não está claro isso.

[33] Comentário enviado por ronaldson em 07/07/2014 - 08:45h

E quanto ao samba???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts