Você está na página 1de 24

Servio de

Diretrios com
OpenLDAP

Marcos Sungaila
marcos@savant.com.br

LDAP

Por que LDAP


Conceitos bsicos
Instalando e Configurando o OpenLDAP
Criando a estrutura do Diretrio
Trabalhando com senhas de usurios
Consultando os dados
Alterando e removendo entradas
Performance tunning
Controle de acesso
Criptografia
Ferramentas de gerenciamento

Servio de Diretrios com OpenLDAP

Marcos Sungaila

Por que LDAP?

Complexidade em gerenciar ambientes com vrios mecanismos


de login, por exemplo: estaes Windows, internet via proxy,
Complexidade em manter informaes sincronizadas
Evitar a redundncia de informaes
Cadastrar o usurio em vrios servios e servidores

Compartilhamento de informaes de forma eficiente

Servio de Diretrios com OpenLDAP

Marcos Sungaila

Conceitos bsicos

LDAP (Lightweight Directory Access Protocol)


Protocolo para acesso a informaes via rede
Baseado no padro X.500
Padro definido nas RFCs 1777 e 2251
Armazena informaes baseadas em atributos
Implementa modelo de objetos hierrquico e extensvel
Pode utilizar diferentes backends para armazenamento dos
dados
Desenhado para alta performance em consultas
Baixa performance em operaes de escrita

Servio de Diretrios com OpenLDAP

Marcos Sungaila

Modelos de Diretrios

Estrutura simples do tipo domnio Internet (domainComponent):


dc=savant, dc=com, dc=br

ou=Usuarios

uid=marcos

ou=Grupos

uid=claudia

Servio de Diretrios com OpenLDAP

cn=tecnologia

Marcos Sungaila

Modelos de Diretrios

Dados de um usurio:
dn: uid=marcos, ou=usuarios, dc=savant, dc=com, dc=br
uid: marcos
givenName: Marcos
Identificao nica
sn: Sungaila
atributos
no Diretrio (DN)
cn: Marcos Sungala
objectClass: top
objectClass: person

Entrada do Diretrio

Servio de Diretrios com OpenLDAP

Marcos Sungaila

Modelos de Diretrios

Uma variao do modelo elaborado com domainComponent:


dc=savant, dc=com, dc=br

ou=Usuarios

ou=Grupos

ou=sp

uid=marcos

Servio de Diretrios com OpenLDAP

ou=rj

ou=sp

uid=claudia

Marcos Sungaila

Modelos de Diretrios

distinguishedName (identificao nica):


uid=marcos,ou=usuarios,dc=savant,dc=com,dc=br
uid=marcos,ou=sp,ou=usuarios,dc=savant,dc=com,dc=br

Facilita a identificao do usurio e sua localizao geogrfica


na empresa um modelo lgico que pode facilitar a
administrao

Servio de Diretrios com OpenLDAP

Marcos Sungaila

Principais Componentes

Antes de cadastrar dados em um servio de Diretrios


necessrio identificar para que estes dados sero utilizados.
De acordo com o uso escolhemos quais objectClasses devem
ser atribudas entrada
objectClasses mais comuns e seus usos:
person: identificao de pessoas com dados bsicos como nome,
telefone, descrio e senha
organizationalPerson: acrescenta novos dados como endereo, cep,
caixa postal, unidade, cidade, estado e outros
inetOrgPerson: endereo pessoal, mail, celular, foto, certificados digitais,
idioma
posixAccount: conta de usurio linux
sambaSamAccount: conta de usurio samba

Servio de Diretrios com OpenLDAP

Marcos Sungaila

Principais Componentes

Uma entrada (o cadastro de um usurio por exemplo) pode ter


vrios atributos do tipo objectClass.
dn: uid=marcos, ou=usuarios, dc=savant, dc=com, dc=br
uid: marcos
givenName: Marcos
sn: Sungaila
cn: Marcos Sungala
objectClass: top
objectClass: person

Servio de Diretrios com OpenLDAP

10

Marcos Sungaila

Instalao

Instalando os pr-requisitos (pg 5)


OpenSSL: biblioteca bsica de suporte a criptografia
apt-get install openssl

Berkeley DB: backend para armazenamento dos dados


apt-get install db4.2-util

Cyrus-SASL: suporte a autenticao e comunicao criptografada


apt-get install sasl2-bin libsasl2 \
libsasl2-modules libsasl2-modules-ldap

Servio de Diretrios com OpenLDAP

11

Marcos Sungaila

Instalao

Instalando OpenLDAP (pg 5)


Servidor e ferramentas de gerenciamento
apt-get install slapd ldap-utils

No Debian o instalador ir perguntar a senha de administrao


do LDAP. Responda com:
tux

Servio de Diretrios com OpenLDAP

12

Marcos Sungaila

Configurao

Toda a configurao do servidor OpenLDAP realizada no


arquivo /etc/ldap/slapd.conf.
Vamos comear uma configurao a partir do zero para entender
todo o funcionamento do servidor.
Renomeando o arquivo original:
cd /etc/ldap
mv slapd.conf slapd.conf.old

Iniciando uma nova configurao (vi ou mcedit):


vi slapd.conf
ou
mcedit slapd.conf
Servio de Diretrios com OpenLDAP

13

Marcos Sungaila

Configurao

Diretivas do arquivo slapd.conf (pg 6):


# Verso de protocolo para consultas LDAP
allow bind_v2
# Schemas dados suportados pelo servidor
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

Servio de Diretrios com OpenLDAP

14

Marcos Sungaila

Configurao

Diretivas do arquivo slapd.conf (cont):


# Controle de processos e argumentos
pidfile
/var/run/slapd/slapd.pid
argsfile
/var/run/slapd/slapd.args
# Mdulos localizao e ativao
modulepath
/usr/lib/ldap
moduleload
back_hdb
# Nvel de log padro
loglevel
stas

Servio de Diretrios com OpenLDAP

15

Marcos Sungaila

Configurao

Diretivas do arquivo slapd.conf (cont):


# Base de dados
database hdb
# Estrutura do diretrio e administrador
suffix
dc=empresa,dc=com,dc=br
rootdn
cn=Manager,dc=empresa,dc=com,dc=br
rootpw
tux

Servio de Diretrios com OpenLDAP

16

Marcos Sungaila

Configurao

Diretivas do arquivo slapd.conf (cont):


# Local de armazenamento dos dados
directory /var/lib/ldap
# ndices de pesquisa
index objectClass eq

Servio de Diretrios com OpenLDAP

17

Marcos Sungaila

Configurao

Definindo a senha do usurio root:


Armazenada na configurao do servidor ou
na base LDAP
Texto puro ou Criptografada com comando slappasswd:
slappasswd
New password: tux
Re-enter new password: tux
{SSHA}hLLfSLt73/YwNYEJU/T7PAcLd0AOBOje

Copie a senha com o mouse e cole no arquivo de configurao


slapd.conf.

Servio de Diretrios com OpenLDAP

18

Marcos Sungaila

Iniciando o LDAP

Para ter certeza que seu arquivo slapd.conf est correto, faa o
seguinte teste:
slaptest

Antes de iniciar o servio LDAP com nossas novas


configuraes devemos parar o servidor slapd e remover os
dados antigos gerados automaticamente pela instalao do
pacote slapd:
/etc/init.d/slapd stop
cd /var/lib/ldap
rm *
/etc/init.d/slapd start

Servio de Diretrios com OpenLDAP

19

Marcos Sungaila

Verificando as conexes

Voc pode verificar se a porta tcp/389 foi habilitada:


netstat -lntp | grep 389

Voc tambm pode verificar se o servidor slapd est em


execuo
ps ax | grep slapd

Servio de Diretrios com OpenLDAP

20

Marcos Sungaila

Cadastrando dados

No h um browser de dados para ver as informaes do


Diretrio.
Cadastramento em modo batch.
Criamos um arquivo com os dados a serem importados no Diretrio
Inserimos as informaes no Diretrio de uma nica vez com o comando
ldapadd

Definindo a estrutura inicial do Diretrio:


dn: dc=empresa,dc=com,dc=br
objectClass: top
objectClass: dcObject
objectClass: organization
o: Empresa Ltda
dc: empresa

Servio de Diretrios com OpenLDAP

21

Marcos Sungaila

Cadastrando dados

Com o arquivo ldif pronto, basta inserir os dados na base do


Diretrio:
ldapadd -x -D cn=manager,dc=empresa,dc=com,dc=br -W \
-f empresa.ldif

Voc deve criar, ao menos, a estrutura bsica do Diretrio por


meio dos arquivos ldif.
Tendo criado os arquivos com a estrutura inicial (dc e ou), os
outros dados (usurios, grupos, etc) podem ser inseridos no
Diretrio utilizando ferramentas como luma, phpLDAPadmin,
phpQLadmin, ldap-admin, ldap-account-manager, etc.

Servio de Diretrios com OpenLDAP

22

Marcos Sungaila

Cadastrando dados

Laboratrios 1 e 2

Servio de Diretrios com OpenLDAP

23

Marcos Sungaila

SAVANT
Tecnologia

Marcos Sungaila
marcos@savant.com.br
(11) 5071-3112

Servio de Diretrios com OpenLDAP

24

Marcos Sungaila