Você está na página 1de 84

Autenticao Integrada Baseada em

Servio de Diretrio LDAP

Erich Soares Machado, Universidade de So Paulo <erichmachado@gmail.com>


Flavio da Silva Mori Junior, Universidade de So Paulo
<flaviomori2001@gmail.com>

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Autenticao Integrada Baseada em Servio de Diretrio LDAP


por Erich Soares Machado e Flavio da Silva Mori Junior
Copyright 2006

Resumo
Esse texto foi escrito como parte do projeto de formatura dos autores, desenvolvido para cumprir as atividades exigidas
durante o curso de graduao em Bacharelado em Cincia da Computao do IME-USP.
O objetivo oferecer uma apresentao ao servio de diretrio LDAP, atravs de uma abordagem terica e tcnica.
Os conceitos tericos so apresentados no primeiro captulo, que serve como introduo para quem no estiver
familiarizado com o assunto.
A parte tcnica apresentada na forma de um manual de instalao e configurao do servio de diretrio em um
ambiente de rede, e de sua integrao com sistemas de autenticao. Nessa parte tambm so apresentados conceitos
importantes, porm de maneira aplicada.
Alm disso, apresentamos informaes que consideramos de fundamental importncia para o tpico, mas que no se
encaixam na estrutura do texto principal, na forma de apndices.
Ao final do texto, existe uma seo que no est listada no ndice, com contedo subjetivo a respeito do processo de
elaborao do projeto, em conformidade com os requisitos da disciplina MAC0499 (Trabalho de Formatura
Supervisionado). Essa seo chama-se Parte Subjetiva.
garantida a permisso para copiar, distribuir e/ou modificar este documento sob os termos da Licena de Documentao Livre GNU
[http://www.ic.unicamp.br/~norton/fdl.html] (GNU Free Documentation License [http://www.gnu.org/licenses/fdl.html]), Verso 1.2 ou qualquer
verso posterior publicada pela Free Software Foundation; sem Sees Invariantes, Textos de Capa Frontal, e sem Textos de Quarta Capa. Uma
cpia da licena includa na seo intitulada "GNU Free Documentation License" [http://www.gnu.org/licenses/fdl.html#TOC1].

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

ndice
1. Introduo ...................................................................................................................................... 1
Introduo ao LDAP .................................................................................................................... 1
Redes heterogneas ...................................................................................................................... 1
Servios de diretrio .................................................................................................................... 2
Protocolo LDAP .......................................................................................................................... 3
Modelo de informao do LDAP .................................................................................................... 3
Origem do LDAP ........................................................................................................................ 5
Diretrios no contexto do LDAP ..................................................................................................... 6
Implantao ................................................................................................................................ 7
OpenLDAP ................................................................................................................................ 9
Modelos de servios LDAP ........................................................................................................... 9
2. Configurando um servio de diretrio LDAP ....................................................................................... 12
Instalao ................................................................................................................................. 12
Configurao ............................................................................................................................ 12
schema's ........................................................................................................................... 15
servio ............................................................................................................................. 16
segurana ......................................................................................................................... 17
bases de dados ................................................................................................................... 18
Inicializando a base de dados ....................................................................................................... 21
Aumentando a segurana ............................................................................................................. 22
3. Integrao ..................................................................................................................................... 25
NSS ........................................................................................................................................ 25
PAM ........................................................................................................................................ 30
Samba ..................................................................................................................................... 37
4. Ferramentas de gerenciamento .......................................................................................................... 50
Ferramentas de linha de comando .................................................................................................. 50
Slap Tools ........................................................................................................................ 50
LDAP Tools ...................................................................................................................... 50
smbldap-tools .................................................................................................................... 51
MigrationTools .................................................................................................................. 51
Ferramentas grficas ................................................................................................................... 51
phpLDAPadmin ................................................................................................................. 51
GOsa ............................................................................................................................... 53
LAT ................................................................................................................................ 53
5. Ajuda ........................................................................................................................................... 54
Perguntas freqentes (Frequently Asked Questions) .......................................................................... 54
Soluo de problemas (Troubleshooting) ........................................................................................ 54
A. ACL's .......................................................................................................................................... 56
B. Arquivo LDIF ................................................................................................................................ 58
Introduo ................................................................................................................................ 58
Definio do LDIF ..................................................................................................................... 58
C. Gerando um certificado SSL auto-assinado ......................................................................................... 62
D. Operaes do LDAP ....................................................................................................................... 66
Glossrio .......................................................................................................................................... 74
Bibliografia ...................................................................................................................................... 78

iii

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Lista de Figuras
1.1. Exemplo de servios em uma rede heterognea .................................................................................... 2
1.2. Exemplo de DIT (Directory Information Tree) ..................................................................................... 4
1.3. Modelo gateway LDAP/DAP ............................................................................................................ 5
1.4. X.500 sobre OSI vs. LDAP sobre TCP/IP ........................................................................................... 5
1.5. Modelo cliente/servidor .................................................................................................................. 6
1.6. Relacionamento entre o cliente LDAP, servidor LDAP e backend ............................................................ 7
1.7. Exemplo de servios em uma rede heterognea com integrao LDAP ..................................................... 8
1.8. Modelo cliente/servidor simples ...................................................................................................... 10
1.9. Modelo cliente/servidor com referncia ............................................................................................ 10
1.10. Modelo cliente/servidor com replicao .......................................................................................... 10

iv

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Lista de Tabelas
2.1. Nveis de log do OpenLDAP .......................................................................................................... 17
A.1. Nveis de acesso das ACL's ........................................................................................................... 56

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Lista de Exemplos
2.1. Arquivo de configurao /etc/ldap/slapd.conf ....................................................................... 14
2.2. Arquivo base.ldif ................................................................................................................... 21
2.3. Arquivo admin.ldif ................................................................................................................. 21
3.1. Arquivo de configurao /etc/nsswitch.conf ........................................................................... 30
3.2. Arquivo /etc/pam.d/common-account ................................................................................... 35
3.3. Arquivo /etc/pam.d/common-auth ......................................................................................... 35
3.4. Arquivo /etc/pam.d/common-password ................................................................................. 36
3.5. Arquivo de configurao /etc/ldap/ldap.conf ......................................................................... 37
3.6. Arquivo de configurao /etc/ldap/ldap.conf ......................................................................... 39
3.7. Arquivo de configurao /etc/smbldap-tools/smbldap_bind.conf ....................................... 44
3.8. Arquivo de configurao /etc/smbldap-tools/smbldap.conf ................................................. 45
A.1. Uma ACL bsica ......................................................................................................................... 57
B.1. Arquivo LDIF ............................................................................................................................. 59
B.2. Outro arquivo LDIF ..................................................................................................................... 60
B.3. Arquivo LDIF para remover usurio ................................................................................................ 61
C.1. Arquivo do certificado SSL auto-assinado (newreq.pem) ................................................................. 64
C.2. Arquivo da chave privada com senha (newkey.pem) ........................................................................ 64
C.3. Arquivo da chave privada sem senha (openkey.pem) ....................................................................... 65

vi

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Captulo 1. Introduo
Resumo
Este captulo descreve o que um servio de diretrio, o protocolo LDAP, e um cenrio (redes
heterogneas) em que interessante usar um servio LDAP para organizar e gerenciar as
informaes. Tambm descreve formas de implantar esse servio.

Introduo ao LDAP
Redes de computadores esto presentes na maioria das empresas atualmente, devido a grande necessidade
de comunicao que as aplicaes distribudas exigem. Muitas dessas aplicaes utilizam os mesmos dados
para realizar as suas operaes. Sendo assim, torna-se necessrio buscar uma maneira de organizar essa
informao de maneira clara e consistente, de forma a facilitar o acesso s mesmas, reduzir o custo de sua
manuteno e por conseqncia aumentar a funcionalidade dos vrios sistemas que a usam.
A necessidade de integrao desse tipo de informao motivou o surgimento de um padro aberto que
possa atend-la. Esse padro chama-se LDAP (Lightweight Directory Access Protocol), e trata-se de um
protocolo que define um mtodo para o acesso e a atualizao de informaes em um diretrio. Diretrio
uma espcie de banco de dados, otimizado para leitura e busca.
O LDAP define um protocolo de comunicao, ou seja, o transporte e o formato das mensagens utilizadas
pelo cliente para acessar os dados que esto armazenados em um diretrio do tipo X.500. O padro X.500
organiza as entradas do diretrio em um espao de nomes hierrquico (uma rvore) capaz de incorporar
grandes volumes de informao. O LDAP tambm define mtodos de busca poderosos o suficiente para
tornar a recuperao dessa informao fcil e eficiente. Ele no define o servio de diretrio em si. Com
o LDAP, o cliente no dependente da implementao em particular do servio de diretrio que est no
servidor.

Redes heterogneas
Todo ambiente de rede precisa armazenar informaes para possibilitar o seu gerenciamento (autenticao,
grupos de usurios, permisses, cotas de armazenamento e impresso, compartilhamentos e etc.). Hoje em
dia, a maioria das grandes organizaes possui ambientes de rede heterogneos, com vrias plataformas
presentes (Linux, Windows, Solaris) e com redes virtuais fisicamente conectadas, muitas vezes distribudas
geograficamente. Um exemplo de organizao desse tipo a Universidade de So Paulo, que possui uma
grande rede de dados interconectando todos os seus campi, espalhados pelo estado.

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

Figura 1.1. Exemplo de servios em uma rede heterognea

Esse exemplo ilustra uma rede heterognea composta de um ambiente Windows e um ambiente Linux.
Apesar de ambos os ambientes estarem fisicamente conectados (utilizando a mesma infra-estrutura), no
existe comunicao entre os servios e a informao usada para administrar os recursos no est sendo
compartilhada.
Um problema decorrente desse tipo de implantao que para cada plataforma ou para cada rede local
virtual existente no ambiente de rede (rede fsica), necessrio suprir essas mesmas informaes de
gerenciamento. Se no for adotada uma boa soluo de gerenciamento, podem surgir problemas decorrentes
da replicao desses dados. Os principais so: redundncia, falta de sincronia nas informaes, dificuldade
de organizao, maior custo no suporte e falta de segurana.

Servios de diretrio
Um diretrio um repositrio de informaes sobre objetos, organizados segundo um critrio que facilite
a sua consulta. Dois exemplos prticos de diretrios que usamos no nosso cotidiano so: uma lista telefnica
e um dicionrio. Ambos armazenam informaes para consulta, ordenadas para facilitar a busca por uma
entrada: a lista telefnica organiza as entradas em ordem alfabtica pelo nome da pessoa e o dicionrio
organiza as entradas tambm em ordem alfabtica, por verbete.
O modo como o diretrio usado pode ser descrito como white pages ou yellow pages. Se o nome do
objeto conhecido, possvel recuperar suas caractersticas. Isso semelhante a procurar um nome de
uma pessoa em uma lista telefnica residencial (white pages). Se o nome de um objeto em particular no
conhecido, possvel fazer uma busca no diretrio em busca de objetos que cumpram certos requerimentos.
Isso semelhante a procurar um dentista em uma lista telefnica comercial (yellow pages).
Servio de diretrio um servio de armazenamento de informaes otimizado para busca e leitura. Eles
tendem a conter informaes descritivas baseadas em atributos, para assim suportarem algum mecanismo
de filtragem. Por exemplo, buscar em um servio de diretrio da cidade de So Paulo, mulheres entre 18
e 25 anos e que sejam solteiras. Alm disso, eles tm que ser extensveis, para servirem a uma gama maior
de aplicaes e propsitos. Um servio de diretrio pode armazenar os telefones de bares e casas noturnas

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

de So Paulo. Se ele aceitar tambm endereos como atributos, o servio pode ser estendido, acoplandoo a um guia de ruas.
Servios de diretrio e bancos de dados compartilham vrias caractersticas importantes, como buscas
rpidas e um esquema extensvel. A diferena que um servio de diretrio projetado mais para leitura
do que para escrita, enquanto que em um banco de dados assumimos que as operaes de leitura e de escrita
ocorrem mais ou menos com a mesma freqncia. Portanto, para os servios de diretrio no so essenciais
certas caractersticas que so a bancos de dados, que permitem lidar com um grande volume de atualizaes
complexas. Dentre elas esto suporte a transaes1 (transactions) e travas de escrita (write locks).
A maioria dos bancos de dados suportam um mtodo de acesso padro e muito poderoso chamado SQL
(Structured Query Language). Os servios de diretrio usam um protocolo de acesso simplificado. J que
eles no fornecem todas as funes que um banco de dados, eles podem ser otimizados para fornecer
economicamente dados para leitura a um maior nmero de aplicaes, em um ambiente distribudo. As
atualizaes dos diretrios so tipicamente simples.
Os servios de diretrios so ajustados para dar resposta rpida a operaes de busca em grande volume.
Assim sendo, eles podem ter a habilidade de replicar informao com o objetivo de aumentar a
disponibilidade e a confiabilidade, alm de reduzir o tempo de resposta. Quando a informao do diretrio
replicada, aceitvel que aconteam inconsistncias temporrias entre as rplicas, desde que elas se
sincronizem eventualmente.
Alguns servios de diretrio so locais, fornecendo servio a um contexto restrito como, por exemplo, o
programa finger em uma mquina Linux/Unix. Outros servios so globais, fornecendo servio para um
contexto mais abrangente, como por exemplo, o DNS (Domain Name System) da Internet. Os servios
globais so geralmente distribudos, os dados que eles contm esto espalhados em vrias mquinas, cada
uma cooperando para fornecer o servio de diretrio final. Tipicamente um servio global define um espao
de nomes que d a mesma viso dos dados, no importando onde voc est. Por exemplo, uma pesquisa
no DNS deve retornar o mesmo resultado, independente de em qual computador foi realizada a busca.

Protocolo LDAP
LDAP (Lightweight Directory Access Protocol ou Protocolo Leve de Acesso a Diretrio) um protocolo
leve para acessar servios de diretrio baseados nos padres X.500, que funciona sobre TCP/IP. O conjunto
original das principais definies do LDAP (Verso 3) est nos RFC's 2251-2256. As especificaes
tcnicas esto no [RFC3377 "Lightweight Directory Access Protocol (v3): Technical Specification"
[ftp://ftp.rfc-editor.org/in-notes/rfc3377.txt]]. Alm desses, existem outros RFC's que definem outras
caractersticas do LDAP.
LDAP baseado no modelo cliente/servidor e a comunicao assncrona. Ou seja, um cliente pode fazer
mltiplas requisies e as respostas dadas pelo servidor podem chegar em qualquer ordem.

Modelo de informao do LDAP


O modelo de informao do LDAP baseado em entradas. Uma entrada uma coleo de atributos que
tem um Nome Distinto (Distinguished Name ou DN) globalmente nico. O DN usado para se referir
entrada sem ambigidade. Cada atributo da entrada tem um tipo e um ou mais valores. Os tipos so
normalmente strings mnemnicas, como "cn" para commom name, ou "mail" para endereo de e-mail. A
sintaxe dos valores depende do tipo do atributo. Por exemplo, um atributo cn pode conter o valor "Arnaldo
Mandel". Um atributo mail pode conter o valor "am@ime.usp.br". Um atributo jpegPhoto poderia
conter uma fotografia no formato JPEG (binrio).
1

Transaes so operaes all-or-nothing, ou seja, que s devem ser realizadas totalmente, no podendo ser concludas parcialmente.

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

No LDAP, as entradas do servio de diretrio so organizadas em uma estrutura de rvore hierrquica.


Essa rvore conhecida como DIT (Directory Information Tree). Tradicionalmente essa estrutura refletia
os limites geogrficos ou organizacionais. Entradas representando pases aparecem no topo da rvore.
Abaixo delas esto entradas representando estados (Unidades Federativas). Abaixo delas podem estar
entradas representando unidades organizacionais, pessoas, impressoras, documentos ou qualquer outra
coisa.
A rvore tambm pode ser organizada conforme os nomes de domnios da Internet. Essa forma de
nomenclatura est se tornando cada vez mais popular, j que permite ao servio de diretrio ser localizado
usando o DNS.

Figura 1.2. Exemplo de DIT (Directory Information Tree)

Alm disso, possvel controlar quais atributos so requeridos e permitidos em uma entrada, atravs do
uso de um atributo especial chamado objectClass (classe do objeto). Os valores do atributo
objectClass determinam o que ela representa e quais regras a entrada dever obedecer.
Uma entrada referenciada pelo seu Nome Distinto (DN), o qual construdo pegando o nome da entrada,
chamado RDN (Relative Distinguished Name ou Nome Distinto Relativo), e concatenando os nomes de
suas entradas antecessoras. Por exemplo, a entrada "Arnaldo Mandel" no exemplo de nomenclatura da
Internet acima, tem um RDN de uid=am e um DN de uid=am,ou=Pessoas,dc=ime,dc=usp,dc=br. O
formato completo do DN descrito no [RFC2253 "Lightweight Directory Access Protocol (v3): UTF-8
String Representation of Distinguished Names" [ftp://ftp.rfc-editor.org/in-notes/rfc2253.txt]].

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

LDAP define operaes para interrogar e atualizar o servio de diretrio. Operaes so fornecidas para
adicionar e apagar uma entrada do diretrio, modificar uma entrada existente, e modificar o nome da
entrada. A operao de busca do LDAP permite a certas partes do diretrio serem pesquisadas em busca
de entradas que obedeam certos critrios especificados por um filtro de busca.
Por exemplo, voc pode querer procurar na sub-rvore cuja raiz dc=ime,dc=usp,dc=br por pessoas
cujos nomes sejam "Arnaldo Mandel", recuperando o endereo de e-mail de cada entrada achada. O LDAP
permite que voc faa isso facilmente.
fornecido um mecanismo para o cliente autenticar-se, ou comprovar sua identidade para um servio de
diretrio. O LDAP tambm suporta servios de segurana de dados (integridade e confidencialidade).

Origem do LDAP
LDAP um protocolo de acesso a diretrios do tipo X.500, o servio de diretrio OSI (Open Systems
Interface). Inicialmente, os clientes LDAP acessavam gateways para o servio de diretrio X.500. Esse
gateway (tambm chamado de proxy ou front-end) rodava LDAP entre o cliente e o gateway; e rodava o
DAP (Directory Access Protocol ou Protocolo de Acesso a Diretrio) X.500 entre o gateway e o servidor
X.500.
O X.500 um protocolo pesado, que opera sobre a pilha completa de protocolos OSI e requer uma
quantidade significante de recursos computacionais. O LDAP projetado para operar sobre TCP/IP e
fornece a maioria das funcionalidades do X.500 com um custo muito menor.

Figura 1.3. Modelo gateway LDAP/DAP

O LDAP considerado leve, pois no precisa rodar na pilha de sete camadas OSI, como o protocolo da
camada de aplicao X.500. Os pacotes X.500 carregam mais bagagem, pois precisam de cabealhos para
cada uma das camadas da pilha de protocolos OSI. A suite de protocolos TCP/IP, na qual o LDAP roda,
tambm necessita de cabealhos nos pacotes, mas tem um overhead menor.

Figura 1.4. X.500 sobre OSI vs. LDAP sobre TCP/IP

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

O segundo motivo que o LDAP omite vrias operaes do X.500 que so raramente usadas. LDAPv3
possui apenas nove operaes principais e fornece um modelo mais simples para os programadores e
administradores. Assim possvel que eles se foquem mais na semntica de seus programas, sem terem
que se preocupar com caractersticas do protocolo raramente usadas.
Alm do LDAP ainda ser usado para acessar o servio de diretrio X.500 atravs de gateways, LDAP
tambm agora implementado direto em servidores LDAP do tipo X.500. Note o uso de "do tipo X.500"
em vez de simplesmente "X.500", pois um servidor X.500 no entende mensagens LDAP. O segundo uso
o mais comum atualmente, pois atende a praticamente todas necessidades.

Figura 1.5. Modelo cliente/servidor

Diretrios no contexto do LDAP


Resumo
Nesta seo vamos esclarecer alguns detalhes conceituais que s vezes no ficam muito claros em
documentaes do LDAP.
No devemos esquecer que o LDAP apenas um protocolo de acesso, ele define um conjunto de mensagens
para acessar certos tipos de dados. O protocolo em si no diz nada a respeito de onde ou como os dados
so armazenados.
Um servidor LDAP uma aplicao que implementa o lado servidor conforme as especificaes do
protocolo. Existem vrias implementaes e a que descreveremos adiante o OpenLDAP, uma soluo
livre. esse servidor que fornece o servio de diretrio aos seus clientes. Um servidor LDAP est para o
diretrio assim como o SGBD (sistema gerenciador de banco de dados) est para o banco de dados.
O diretrio representado atravs de um backend, que uma implementao de base de dados2. O servidor
pode usar qualquer backend para armazenar as informaes, desde arquivos de texto at bancos de dados
relacionais. Dizemos que o LDAP (e conseqentemente o servidor LDAP) no suporta algumas
caractersticas dos bancos de dados, porque que o protocolo no possui as mensagens para usar essas
caractersticas e, sendo assim, no requer que o backend que armazena os dados as tenha.

A princpio, base de dados e banco de dados so a mesma coisa. Porm, normalmente quando usamos o termo banco de dados, estamos nos referindo
a um banco de dados relacional. Portanto adotamos nesta monografia a conveno de usarmos base de dados quando nos referimos a qualquer tipo
de banco de dados, o que inclui at mesmo um arquivo de texto, e usamos banco de dados para nos referirmos a um banco de dados relacional.

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

Figura 1.6. Relacionamento entre o cliente LDAP, servidor LDAP e backend

O cliente no ter (ou pelo menos no deveria ter) informaes a respeito do mecanismo de armazenamento
que est sendo usado. Assim sendo, clientes e servidores LDAP podem se comunicar, independentemente
de quais empresas os produziram.
J se pensou em usar um servidor LDAP como backend para um servidor Web. Todos os HTML's e os
arquivos grficos ficariam armazenados no diretrio para serem lidos por vrios servidores Web. Afinal,
um servidor Web normalmente somente l arquivos e os manda para seus clientes; e esses arquivos no
mudam com muita freqncia. Apesar de ser possvel implementar um servidor Web que use LDAP para
acessar seu backend, j existe um tipo especial de diretrio para servir arquivos, chamado sistema de
arquivo.
O LDAP foi criado para atender uma certa gama de problemas, no sendo destinado a substituir diretrios
especializados, como sistemas de arquivo e o DNS.

Implantao
Uma soluo cada vez mais empregada para este cenrio armazenar as informaes do ambiente de rede
em um diretrio, atravs de um servio de diretrio LDAP. Isso torna possvel acessar de forma padronizada,
gil e segura, todas essas informaes. Portanto todos os servios da rede (autenticao, compartilhamento,
impresso, e-mail, etc.) buscaro as informaes de que precisam nesse diretrio, de forma integrada.
A seguir est o exemplo da mesma rede heterognea mostrada anteriormente, utilizando um servidor LDAP
para integrao dos servios.

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

Figura 1.7. Exemplo de servios em uma rede heterognea com integrao LDAP

Esse exemplo ilustra uma rede heterognea utilizando um servidor LDAP para integrao dos servios.
Uma maneira de disponibilizar um servio de diretrio LDAP utilizando solues livres disponveis
atualmente. Um exemplo de implantao desse tipo instalar um servidor OpenLDAP, integrando-o ao
PAM (Pluggable Authentication Modules) para realizar a autenticao dos clientes Linux/Unix, e integrandoo ao Samba para autenticar os clientes Windows. Toda a comunicao entre os servios pode ser protegida
atravs do suporte TLS (Transport Layer Security).

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

OpenLDAP

OpenLDAP uma sute de aplicativos LDAP open-source, que inclui todas as ferramentas necessrias
para fornecer um servio de diretrio LDAP em um ambiente de rede (clientes, servidores, utilitrios e
ferramentas de desenvolvimento), disponvel para vrias plataformas (Linux, Solaris, MacOS). uma
soluo considerada madura hoje em dia e possui amplo suporte, sendo largamente utilizada como alternativa
s implementaes comerciais existentes (Microsoft Active Directory, Novell eDirectory, Sun Java System
Directory Server, etc.).
Ele implementa a verso 3 do LDAP, a verso mais recente do protocolo e que o padro atualmente, e
suporta LDAP em IPv4, IPv6 e Unix IPC. O projeto OpenLDAP uma continuao do servidor LDAP da
Universidade de Michigan.
O OpenLDAP possui suporte a threads para aumentar a performance de seu servidor, reduzindo o overhead
requerido para atender as mltiplas requisies que chegam dos clientes.
O daemon que implementa o servidor LDAP o slapd. Alm desse daemon, existe um outro, o slurpd, que
usado quando se deseja fornecer um servio replicado de diretrio. Ele explicado em mais detalhes na
prxima seo.
O OpenLDAP fornece vrias opes para segurana, como suporte a TLS, SSL e SASL. Alm disso, o
acesso s informaes pode ser restrito baseado na topologia da rede, endereos IP, nome de domnio e
outros critrios.
O slapd pode ser configurado para servir a mltiplos bancos de dados ao mesmo tempo, ou seja, um nico
servidor slapd pode responder a requisies de vrias pores diferentes da rvore LDAP, usando o mesmo
ou vrios backends de base de dados.
O OpenLDAP vem com vrias opes de backends de armazenamento. Eles incluem BDB, um backend
transacional de alta performance; HDB, um backend transacional hierrquico de alta performance; LDBM,
um backend leve baseado no DBM; SHELL, uma interface de backend para scripts shell arbitrrios; e
PASSWD, uma interface simples de backend para o arquivo /etc/passwd. Os backends BDB e HDB
utilizam o BD Sleepycat Berkeley. O LDBM utiliza o Berkeley ou o GDBM.

Modelos de servios LDAP


Como j foi dito anteriormente, o servio de diretrio LDAP baseado no modelo cliente/servidor. Um
ou mais servidores LDAP contm os dados, compondo a rvore de informao do diretrio (DIT). O cliente
se conecta a um servidor e faz requisies. O servidor responde com a informao requisitada ou com um
apontador para um outro servidor LDAP. No importa a qual servidor o cliente se conecte, ele tem a mesma
viso dos dados.

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

O servio pode ser local, assim um servidor LDAP rodando em uma mquina fornece servio de diretrio
apenas para o domnio local.

Figura 1.8. Modelo cliente/servidor simples

Ele tambm pode ser local com referncias, assim ele fornece o servio de diretrio para o domnio local
e retorna referncias para um outro servidor capaz de lidar com requisies para fora do domnio. Essa
configurao usada caso se deseje que o servio participe de um "diretrio global".

Figura 1.9. Modelo cliente/servidor com referncia

O servio pode ser replicado. Nessa configurao, o slurpd usado para sincronizar as alteraes realizadas
na base de dados do slapd master para as outras rplicas do slapd. O slapd e o slurpd comunicam-se atravs
de um arquivo de texto que usado como um log de alteraes. Essa configurao pode ser usada em
conjunto com qualquer uma das duas primeiras configuraes, em situaes em que um nico slapd no
fornece a disponibilidade ou a confiabilidade requerida. Existe um outro mtodo de replicao, o LDAP
Sync, o qual no entraremos em detalhes.

Figura 1.10. Modelo cliente/servidor com replicao

10

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Introduo

Uma outra configurao possvel, o servio de diretrio local ser particionado em vrios servios menores,
onde cada um armazena as informaes de uma sub-rvore. Ento podemos junt-los atravs de referncias,
para formar o servio de direttio final.

11

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Captulo 2. Configurando um servio de


diretrio LDAP
Resumo
Esse captulo descreve o processo de instalao e configurao dos pacotes necessrios para
implantar um servio de diretrio LDAP no seu ambiente de rede. O servio de diretrio escolhido
foi o OpenLDAP, por ser livre, maduro e ter amplo suporte. Todo o procedimento de instalao
e configurao descrito foi realizado utilizando a distribuio Linux Ubuntu 6.06 LTS (Dapper
Drake), e pode facilmente ser aplicado a outras distribuices fazendo-se as devidas adaptaes.

Instalao
Execute os seguintes comandos para instalar o pacote necessrio no servidor:
1.

Atualize as listas dos repositrios

usuario@ldapserver:~$ sudo aptitude update


2.

Instale o pacote slapd

usuario@ldapserver:~$ sudo aptitude install ldap-server


Este pacote no um pacote real, ele aponta para o pacote slapd. Durante a configurao ele vai pedir
uma senha para o administrador do LDAP, voc pode deix-la em branco se quiser. Vamos explicar
como criar um novo arquivo de configurao a seguir.

Dica
Sempre mantenha uma cpia dos arquivos de configurao gerados automaticamente durante a
instalao dos pacotes, eles podem servir como referncia caso algum parmetro de configurao
sofra alteraes em verses mais atualizadas.

Configurao
O arquivo de configurao1 do servio de diretrio da sute OpenLDAP (slapd) o
/etc/ldap/slapd.conf. Esse arquivo possui vrios parmetros que configuram desde a execuo
do servio slapd at o backend de banco de dados que ser utilizado, assim como os ndices que devem
ser gerados para agilizar as buscas e tambm a senha de administrao para acessar o diretrio. Ou seja,
esse arquivo a pea chave da implantao e sua configurao deve ser feita com bastante rigor. Devemos
tambm nos certificar de que o acesso a esse arquivo estar restrito.

Atualmente existe uma maneira alternativa de armazenar as configuraes do servio de diretrio slapd, que dentro de um diretrio LDAP, na
forma de um DIT. Ou seja, usando a prpria estrutura que o servio disponibiliza. A configurao nesse caso carregada atravs de um arquivo
LDIF e a vantagem a de que existe a possibilidade de alterar os parmetros em tempo de execuo, isto , sem a necessidade de reiniciar o servidor,
atravs de comandos de acesso ao diretrio. Porm, atualmente existem problemas de compatibilidade com alguns backends e com o sistema de
replicao. Sendo assim preferimos adotar o modo "antigo".

12

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
As seguintes regras, comuns aos arquivos de configurao de sistemas Unix, so vlidas para o
/etc/ldap/slapd.conf:

Linhas em branco e linhas comeando com # so ignoradas.

Parmetros e valores associados so separados por caracteres em branco (espao ou tabulao).

Linhas com espaos em branco na primeira coluna sero consideradas como continuao da linha
anterior.

13

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP

Exemplo 2.1. Arquivo de configurao /etc/ldap/slapd.conf


####################### /etc/ldap/slapd.conf ######################
# Arquivo de configurao do servio slapd.
# schema's
include
include
include
include

/etc/ldap/schema/core.schema
/etc/ldap/schema/cosine.schema
/etc/ldap/schema/nis.schema
/etc/ldap/schema/inetorgperson.schema

schemacheck

on

# servio
pidfile
argsfile

/var/run/slapd/slapd.pid
/var/run/slapd/slapd.args

loglevel

296

modulepath
moduleload

/usr/lib/ldap
back_bdb

# segurana
allow

bind_v2

# bases de dados
backend
bdb
checkpoint 512 30
## base de dados no. 1
database
bdb
suffix
"dc=ime,dc=usp,dc=br"
directory
"/var/lib/ldap"
index
objectClass
eq
rootdn
"cn=admin,dc=ime,dc=usp,dc=br"
rootpw
{MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
lastmod
on
mode
0600
cachesize
2000
## ACL's para a base de dados no. 1
access to attrs=userPassword
by dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
by anonymous auth
by self write
by * none
access to *
by dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
by * read
###################################################################

14

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP

Ateno
O arquivo /etc/ldap/slapd.conf contm informaes sigilosas. No se esquea de ajustar as
permisses deste arquivo para 600 e certifique-se de que o seu proprietrio seja o usurio root.
Os parmetros de configurao do arquivo /etc/ldap/slapd.conf podem ser organizados em sees
que ajustam cada aspecto do servio. Se organizados em sees, podemos dividir os parmetros como
abaixo:

schema's

servio

segurana

bases de dados

Essa estrutura ser adotada neste texto de forma a facilitar a explicao de cada parmetro.

Importante
A ordem de alguns parmetros no arquivo de configurao significativa. Se resolver adotar outro tipo de
organizao, consulte a manpage do arquivo /etc/ldap/slapd.conf antes de mudar um parmetro
de lugar.

schema's
Os arquivos de schema definem que tipo de informao poder ser armazenada no diretrio, de acordo
com as necessidades de cada aplicao que ir acess-lo. Em outras palavras, eles definem quais atributos
estaro disponveis para cada entrada adicionada rvore do diretrio.
O pacote slapd contm alguns arquivos de schema por padro. O principal deles o core.schema, que
prov a funcionalidade bsica do servio. A maioria dos schema's inclusos fornecem a estrutura necessria
para o armazenamento de informaes de autenticao e suporte a aplicaes distribudas. O seguinte
exemplo exibe a seo de schema's que utilizaremos por enquanto:

# schema's
include
include
include
include
schemacheck

/etc/ldap/schema/core.schema
/etc/ldap/schema/cosine.schema
/etc/ldap/schema/nis.schema
/etc/ldap/schema/inetorgperson.schema
on

Cada schema a ser utilizado pelo servidor deve ser declarado atravs do parmetro include. Arquivos
de schema possuem dependncias entre si, ou seja, para utilizar um determinado schema em seu diretrio
deve-se declarar tambm todos os arquivos dos schema's dos quais ele depende. Os schema's normalmente
encontram-se armazenados dentro do subdiretrio schema, que reside no mesmo diretrio onde as
configuraes do servio esto armazenadas. Na distribuio Ubuntu, os schema's esto localizados em
/etc/ldap/schema.

15

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
Os schema's adicionados no exemplo acima so os necessrios para prover um servio bsico de autenticao
em ambientes Linux/Unix. Mais arquivos de schema's podem ser includos para aumentar a versatilidade
do diretrio ao torn-lo compatvel com outros servios da rede.
core.schema

Ncleo do OpenLDAP. Esse schema obrigatrio para que o servio


funcione.

cosine.schema

O schema cosine.schema pr-requisito do nis.schema.

nis.schema

Contm a estrutura de atributos bsica para armazenar informaes de


autenticao de usurios Linux/Unix.

inetorgperson.schema

Especifica os atributos utilizados para armazenar informaes de catlogo


de endereos (informaes sobre os usurios).

O parmetro schemacheck serve para configurar se as entradas adicionadas ou modificadas na base de


dados sero verificadas para garantir que obedeam s regras impostas por cada schema includo.

servio
Essa seo configura alguns aspectos gerais do servio de diretrio. Existem parmetros que controlam a
quantidade de informaes que ser gerada nos arquivos de log, assim como o local onde sero armazenadas
as informaes sobre o processo em execuo no servidor. Tambm configuramos quais mdulos devero
ser carregados.
Abaixo temos um exemplo dessa seo contendo os principais parmetros:

# servio
pidfile
argsfile

/var/run/slapd/slapd.pid
/var/run/slapd/slapd.args

loglevel

296

modulepath
moduleload

/usr/lib/ldap
back_bdb

Esses parmetros so explicados abaixo:


Esse parmetro especifica o local absoluto do arquivo que contm o PID (Process ID)
pidfile
nomedoarquivo do processo slapd em execuo no servidor.
Esse parmetro especifica o local absoluto do arquivo que contm os parmetros de linha
argsfile
nomedoarquivo de comando utilizados pelo processo slapd em execuo no servidor.
loglevel
nveldelog

Esse parmetro configurado atravs de um inteiro, que representa os tipos de informao


que devem ser guardados nos arquivos de log do servio. Esses nveis de informao
esto listados na Tabela 2.1, Nveis de log do OpenLDAP.

modulepath
caminho

Especifica o diretrio onde esto os mdulos que sero carregados dinmicamente.

16

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
moduleload
mdulo

Carrega um determinado mdulo. No caso estamos carregando o mdulo que dar suporte
backend BDB (Sleepycat Berkeley Database v4).

Tabela 2.1. Nveis de log do OpenLDAP


Nvel Informao gravada
-1

Todas as informaes de log

Nenhuma informao de log

Chamadas de funes

Depurao do manuseamento dos pacotes

Depurao detalhada

Gerenciamento da conexo

16

Pacotes enviados e recebidos

32

Processamento do filtro de pesquisa

64

Processamento do arquivo de configurao

128

Processamento das listas de controle de acesso

256

Estatsticas para conexo, operaes e resultados

512

Estatsticas para resultados devolvidos aos clientes

1024 Comunicao com backends de shell


2048 Depurao da anlise sinttica (parsing) das entradas
No exemplo, configuramos o nvel de log para 296, que igual a 8 + 32 + 256. Ou seja, estamos guardando
informaes relacionadas ao gerenciamento da conexo, processamento do filtro de pesquisa e estatsticas
para conexo, operaes e resultados. Recomenda-se utilizar pelo menos o nvel de log 256.
Toda essa informao ser armazenada atravs do sistema syslog LOG_LEVEL4. Para gravar os log's do
slapd em um arquivo diferente, configure o arquivo /etc/syslog.conf e reinicie o servio syslogd.
Um exemplo de configurao seria adicionar a seguinte linha ao /etc/syslog.conf:

local4.debug /var/log/slapd.log
Consulte a manpage do syslog.conf para maiores detalhes.

Ateno
Se nenhum dado estiver sendo guardado com essa configurao, tente criar um arquivo de log vazio com
o comando touch. Algumas verses do syslog precisam que o arquivo de log exista antes que comecem a
escrever as informaes nele.

segurana
Aspectos mais especficos relacionados a segurana sero abordados posteriormente na seo Aumentando
a segurana. Por enquanto vamos configurar apenas um parmetro relacionado com a compatibilidade
com verses anteriores do protocolo:

# segurana

17

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
allow

bind_v2

O parmetro allow e seu complementar disallow permitem especificar algumas permisses do servio.
Nessa linha estamos permitindo que clientes LDAP conectem ao nosso diretrio utilizando a verso 2 do
protocolo. Atualmente a sute OpenLDAP utiliza a verso 3, mas mantm o suporte verso 2 pois muitos
aplicativos, principalmente clientes de e-mail, ainda a utilizam.

bases de dados
Aqui concentramos todos os parmetros relacionados s bases de dados que armazenaro as informaes
do diretrio. Primeiro definimos as opes que so especficas de cada backend utilizado, depois criamos
as instncias de bases de dados.

# bases de dados
backend
bdb
checkpoint 512 30
## base de dados no. 1
database
bdb
suffix
"dc=ime,dc=usp,dc=br"
directory
"/var/lib/ldap"
index
objectClass
eq
rootdn
"cn=admin,dc=ime,dc=usp,dc=br"
rootpw
{MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
lastmod
on
mode
0600
cachesize
2000
## ACL's para a base de dados no. 1
access to attrs=userPassword
by dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
by anonymous auth
by self write
by * none
access to *
by dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
by * read

1.

Configurando opes que afetaro todas as bases de dados


A diretiva backend permite configurar as opes especficas de cada backend. No exemplo, estamos
configurando opes que so especficas da backend BDB. Todas as opes listadas abaixo dessa
diretiva sero aplicadas essa backend at que exista outra diretiva backend no arquivo de
configurao.
As opes de uma determinada backend configuradas utilizando essa diretiva afetaro todas as
instncias de bases de dados que a usam. Por exemplo, se estivssemos utilizando duas bases de dados,
cada uma utilizando uma backend diferente, poderamos incluir duas diretivas backend para
configurar as opes especficas a cada uma das backends.

18

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
O parmetro checkpoint kbyte min define quando os buffers da base de dados BDB devem ser
gravados no disco, como medida de segurana para evitar possveis perdas. Um limite em kbytes e
um outro em minutos fornecido, o que vencer primeiro dispara o checkpoint e grava uma entrada
no arquivo de log para registrar o evento. Esse parmetro especfico da backend BDB e recomendado
pela configurao padro do pacote slapd na distribuio Ubuntu. Para maiores informaes sobre as
opes especficas do BDB, consulte a manpage slapd-dbd.
2.

Adicionando bases de dados ao diretrio


A diretiva database inicia uma nova instncia de uma base de dados, utilizando a backend
especificada. Todos os parmetros colocados depois dessa diretiva sero aplicados a essa instncia,
at que exista outra diretiva database. Pode ser interessante, por exemplo, criar bases de dados
diferentes para armazenar cada sub-rvore do diretrio, ou distribuir essas sub-rvores entre vrios
servidores e configur-los de forma que um referencie o outro quando for consultado sobre uma
partio do diretrio que no est armazenada localmente (semelhante maneira como o servio de
DNS funciona).
Os seguintes parmetros configuram a instncia de base de dados:
database

Define a backend utilizada pela instncia de base de dados. BDB a backend


recomendada atualmente pela documentao do OpenLDAP e tambm a utilizada
por padro na distribuio Ubuntu.

suffix

Determina o contexto do diretrio que ser servido por essa base de dados,
especificando qual ser a sua raiz. No nosso exemplo configuramos o contexto como
sendo a raiz do nosso domnio, pois vamos colocar todo o nosso diretrio em apenas
uma instncia de base de dados. O sufixo escrito utilizando atributos no padro
X.500.

directory

Configura o local onde sero armazenados os arquivos da base de dados. Se estiver


utilizando mais de uma instncia de base de dados, uma boa prtica armazenar os
arquivos de cada uma em um subdiretrio diferente.

index

Especifica para quais atributos o slapd deve manter ndices de forma a otimizar as
operaes de busca. Existem quatro tipos de ndices, e o suporte de um tipo de ndice
por parte de um atributo determinado pelo arquivo de schema ao qual o atributo
pertence. Os quatro tipos de ndices so:
approx Indexa a informao de acordo com uma combinao aproximada ou
(approximate) fontica dos valores dos atributos.
Indexa a informao de acordo com a combinao exata dos valores dos
eq
(equality) atributos. Essa combinao pode ser sensvel a maisculas/minsculas ou
a espaos em branco, de acordo com as regras definidas na sintaxe do
atributo.
Indexa a informao de acordo com a presena de valores. Se um atributo
pres
(presence) no possui um valor, ento ele no estar presente na entrada do diretrio
para efeito de busca.
Indexa a informao para realizar pesquisas por substrings dentro dos
sub
(substring) valores dos atributos.

19

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
Pode-se definir mais de um tipo de ndice para o parmetro index, desde que seja
suportado pelo atributo e eles estejam separados por vrgula. Tambm podem existir
vrias definies index para uma mesma base de dados.

3.

rootdn

Um diretrio LDAP pode ter um usurio root, semelhante ao super-usurio dos


sistemas Linux/Unix. Quando autenticado, tem acesso irrestrito ao diretrio e por
essa razo muitos administradores preferem no configur-lo. O nome do rootdn
arbitrrio e ele no precisa ser um usurio do sistema, apenas do diretrio.
Normalmente utiliza-se nomes como admin ou manager. Esse parmetro no
obrigatrio.

rootpw

Especifica a hash que contm a senha do rootdn e o algoritmo utilizado para gerla. Utilize o comando slappasswd para gerar a hash que ser utilizada. A hash listada
no exemplo foi gerada com o comando slappasswd -h {MD5} -s secret. Se o
administrador optar por no configurar um rootdn para o diretrio esse parmetro
no necessrio.

lastmod

Grava informaes de tempo em cada modificao e criao das entradas no diretrio.


Necessrio para o caching no lado do cliente, pois permite verificar quando a
informao foi atualizada.

mode

Modo em que os arquivos sero criados. recomendvel permitir acesso de gravao


e leitura apenas ao proprietrio do processo slapd (0600), que normalmente ser o
usurio root do sistema.

cachesize

Parmetro para melhorar a performance do banco de dados. Especifica quantas entradas


devem ser armazenadas em cache na memria.

ACL's
As ACL's (Access Control Lists) definem quem tem acesso a qual informao no diretrio. Sua sintaxe
muito flexvel e no entraremos em detalhes nessa seo, se quiser saber mais a respeito de sua
implementao consulte o Apndice A, ACL's no final do texto.
A ordem das ACL's tambm relevante, sendo que as que contm as regras mais restritivas devem
aparecer antes das mais gerais para que tenham efeito. As configuraes das ACL's sero aplicadas
apenas instncia de base de dados que as contm.
A primeira configurao listada no exemplo garante direito de acesso ao atributo userPassword
para escrita (e conseqentemente leitura) ao usurio admin, para autenticao aos usurios annimos
e para escrita aos usurios autenticados (apenas para as suas prprias entradas), ou seja, permite que
os usurios alterem a prpria senha.
A segunda configurao garante direito de acesso todo o diretrio para escrita (e conseqentemente
leitura) ao usurio admin e para leitura aos demais usurios.
Verifique que como a primeira ACL mais restritiva, ela vai impedir que a segunda ACL garanta
direito de leitura das senhas aos usurios comuns. Se a ordem estivesse invertida, a primeira ACL
listada perderia seu efeito.
Como dissemos anteriormente, muitos administradores preferem no especificar um rootdn para
o diretrio por questes de segurana. Um dos motivos o de que ser necessrio armazenar a hash
da senha no arquivo de configurao do slapd, o que inconveniente, mesmo estando com os arquivos
devidamente protegidos. O outro motivo o de que existir um usurio no diretrio para o qual
nenhuma ACL ter efeito, tornando-o um perigo em potencial. A alternativa existente no definir

20

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
um rootdn e criar um usurio administrador, determinando suas permisses explicitamente atravs
das ACL's. Definimos o rootdn nesse caso apenas para ilustrar uma possibilidade de configurao.

Dica
Ao finalizar a configurao do seu arquivo /etc/ldap/slapd.conf, execute o comando slaptest
para verificar se est tudo certo:

usuario@ldapserver:~$ sudo slaptest


config file testing succeeded

Inicializando a base de dados


Antes de adicionar informaes ao diretrio, precisamos estabelecer a sua estrutura bsica. No momento,
vamos precisar pelo menos da raiz do diretrio e do usurio que ser utilizado para administr-lo.
Para inicializar o diretrio com essas informaes, podemos utilizar arquivos LDIF contendo essas entradas.
Para maiores informaes sobre os arquivos LDIF consulte o Apndice B, Arquivo LDIF.
Abaixo temos um exemplo de um arquivo LDIF que contm a raiz do nosso diretrio:

Exemplo 2.2. Arquivo base.ldif


############################# base.ldif ###########################
# Arquivo LDIF contendo a entrada com as informaes da raiz do
# diretrio LDAP.
dn: dc=ime,dc=usp,dc=br
objectClass: domain
dc: ime
Este outro arquivo contm as informaes do usurio administrador:

Exemplo 2.3. Arquivo admin.ldif


############################ admin.ldif ###########################
# Arquivo LDIF contendo a entrada com as informaes do usurio
# administrador do diretrio LDAP.
dn: cn=admin,dc=ime,dc=usp,dc=br
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: admin
description: Administrador do LDAP
# Hash gerada para a senha "secret" utilizada no nosso exemplo
userPassword: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
Para adicionar essas informaes ao diretrio, execute os seguintes comandos:

usuario@ldapserver:~$ sudo slapadd -l base.ldif


usuario@ldapserver:~$ sudo slapadd -l admin.ldif

21

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
Em seguida, verifique as entradas adicionadas:

usuario@ldapserver:~$ sudo slapcat


dn: dc=ime,dc=usp,dc=br
objectClass: domain
dc: ime
structuralObjectClass: domain
entryUUID: 88c92866-175a-102b-91c6-8d4ba6b5c9fa
creatorsName: cn=admin,dc=ime,dc=usp,dc=br
modifiersName: cn=admin,dc=ime,dc=usp,dc=br
createTimestamp: 20061203204228Z
modifyTimestamp: 20061203204228Z
entryCSN: 20061203204228Z#000001#00#000000
dn: cn=admin,dc=ime,dc=usp,dc=br
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: admin
description: Administrador do LDAP
userPassword:: e01ENX1YcjRpbE96UTRQQ09xM2FRMHFidWFRPT0=
structuralObjectClass: organizationalRole
entryUUID: 8d3995ca-175a-102b-8057-e850202b49a7
creatorsName: cn=admin,dc=ime,dc=usp,dc=br
modifiersName: cn=admin,dc=ime,dc=usp,dc=br
createTimestamp: 20061203204235Z
modifyTimestamp: 20061203204235Z
entryCSN: 20061203204235Z#000001#00#000000

Aumentando a segurana
Antes de colocar o servio de diretrio em um ambiente de produo, recomendvel fazer alguns ajustes
para garantir que as informaes consultadas pelos clientes no sejam vistas por pessoas no-autorizadas.
Tendo em vista que na maioria das redes, os servios que consultaro as informaes contidas no diretrio
(como autenticao, por exemplo) no estaro necessariamente no mesmo servidor que contm o servio
de diretrio, torna-se necessrio lanar mo de recursos que permitam uma comunicao segura entre as
mquinas.
Um desses recursos, disponibilizado pelo slapd, o suporte a transaes TLS (Transport Layer Security).
O TLS uma espcie de reimplementao do SSL, mais eficiente e segura, e por isso tem sido adotada na
maioria dos servios atualmente.
Para configurar o suporte a TLS no slapd, primeiro precisamos criar um certificado SSL, conforme descrito
no Apndice C, Gerando um certificado SSL auto-assinado. Com os arquivos do certificado devidamente
gerados, vamos agora armazen-los no local correto segundo a distribuio Ubuntu.
1.

Copie o arquivo do certificado para o diretrio /etc/ssl/certs, com o nome seguindo o mesmo
padro da distribuio:

usuario@ldapserver:~$ sudo cp newreq.pem /etc/ssl/certs/ssl-certldapserver.pem

22

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
2.

Copie o arquivo da chave privada sem senha para o diretrio /etc/ssl/private, seguindo
tambm esse padro:

usuario@ldapserver:~$ sudo cp openkey.pem /etc/ssl/private/ssl-ce


rt-ldapserver.key

Cuidado
O arquivo contendo a chave privada do certificado que ser usado pelo slapd precisa ser armazenado sem
a senha de proteo, caso contrrio o servio poder travar ao tentar iniciar automaticamente junto com o
sistema operacional. Apenas utilize um arquivo protegido por senha se voc quiser inicializar o servio de
diretrio manualmente.
Agora precisamos ajustar as permisses adequadas para esses arquivos.
1.

Primeiro proteja o arquivo contendo a chave privada:

usuario@ldapserver:~$ sudo chown root:ssl-cert /etc/ssl/private/s


sl-cert-ldapserver.key
usuario@ldapserver:~$ sudo chmod 640 /etc/ssl/private/ssl-certldapserver.key
2.

Em seguida ajuste o acesso ao arquivo do certificado:

usuario@ldapserver:~$ sudo chown root:root /etc/ssl/certs/ssl-cer


t-ldapserver.pem
usuario@ldapserver:~$ sudo chmod 644 /etc/ssl/certs/ssl-certldapserver.pem
Agora precisamos alterar a seo de segurana do arquivo /etc/ldap/slapd.conf, para que ela
fique dessa maneira:

# segurana
allow

bind_v2

TLSCACertificateFile
TLSCertificateFile
TLSCertificateKeyFile

/etc/ssl/certs/ssl-cert-ldapserver.pem
/etc/ssl/certs/ssl-cert-ldapserver.pem
/etc/ssl/private/ssl-cert-ldapserver.key

TLSCACertificateFile
O certificado que criamos auto-assinado, por isso configuramos o parmetro do certificado do CA
(TLSCACertificateFile) com o mesmo arquivo que o parmetro do certificado do servidor
(TLSCertificateFile). Caso esteja usando um certificado assinado por uma CA ao invs de um
certificado auto-assinado, ajuste o parmetro TLSCACertificateFile para o certificado da CA
responsvel pela sua emisso, que deve estar contido no servidor.

23

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Configurando um servio de diretrio


LDAP
Para que as alteraes tenham efeito, necessrio reiniciar o servio slapd:

usuario@ldapserver:~$ sudo /etc/init.d/slapd restart


Stopping OpenLDAP: slapd.
Starting OpenLDAP: running BDB recovery, slapd.
Se o servio iniciar normalmente, sinal de que tudo correu bem. Caso contrrio, ocorreu algum erro na
configurao ou nos arquivos do certificado. Verifique todos os passos novamente em caso de problemas.
Voc pode agora testar se o certificado est funcionando corretamente. Execute o seguinte comando para
realizar uma operao de busca com suporte a TLS no servidor LDAP:

usuario@ldapserver:~$ ldapsearch -x -b 'dc=ime,dc=usp,dc=br' -D


"cn=admin,dc=ime,dc=usp,dc=br" '(objectclass=*)' -H
ldap://ldapserver.ime.usp.br -W -ZZ
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base dc=ime,dc=usp,dc=br with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# ime.usp.br
dn: dc=ime,dc=usp,dc=br
objectClass: domain
dc: ime
# admin, ime.usp.br
dn: cn=admin,dc=ime,dc=usp,dc=br
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: admin
description: Administrador do LDAP
userPassword:: e01ENX1YcjRpbE96UTRQQ09xM2FRMHFidWFRPT0=
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2

24

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Captulo 3. Integrao
Resumo
Esse captulo descreve o processo de integrao do servio de diretrio com os servios de
autenticao para redes Linux/Unix e Windows.
Em redes Linux/Unix a integrao consiste em instalar e configurar os mdulos que permitam
aos servios NSS e PAM buscarem as informaes de autenticao no diretrio. Para integrar
a rede Windows, vamos instalar e configurar o Samba como um PDC (Primary Domain Controller)
que ir operar exclusivamente como servidor de autenticao ligado ao OpenLDAP, de forma
a fornecer uma ponte transparente entre as estaes Windows e o servio de diretrio.
O procedimento de integrao, que consiste em instalar e configurar os pacotes necessrios,
realizado no lado cliente em redes Linux/Unix (instalao dos mdulos libnss-ldap e libpam-ldap)
e realizado no lado servidor em redes Windows (instalao do Samba).

NSS
O NSS (Name Service Switch) o servio responsvel por realizar as pesquisas das bases de dados em
ambientes Unix. Ele permite configurar vrias fontes para a realizao de pesquisas e utilizado por vrios
outros servios para realizar a recuperao da informao armazenada na rede.
O pacote libnss-ldap o plugin do LDAP para o NSS, ou seja, ele que permitir ao NSS realizar buscas
no diretrio LDAP. Esse mdulo ser ento utilizado pelo NSS como fonte para as informaes de
autenticao da rede.

Procedimento 3.1. Instalao

Execute o seguinte comando para instalar os pacotes necessrios no cliente:

usuario@cliente:~$ sudo aptitude install ldap-client libnss-ldap

Cuidado
Esse pacote pertence ao repositrio Universe da distribuio Ubuntu. Para saber como adicionar os
repositrios extras lista de repositrios do gerenciador de pacotes, consulte a documentao do
U b u n t u :
E x t r a
R e p o s i t o r i e s
[https://help.ubuntu.com/6.06/ubuntu/desktopguide/C/extra-repositories.html#id2580924].

Procedimento 3.2. Configurao


O processo de configurao do pacote libnss-ldap deve iniciar automaticamente aps a instalao. A seguir
explicaremos esse processo para cada tela apresentada. O processo pode ser repetido a qualquer momento,
utilizando o seguinte comando:

usuario@cliente:~$ sudo dpkg-reconfigure libnss-ldap

25

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

1.

A primeira tela pede o endereo do servidor LDAP.


2.

Aqui voc precisa informar qual a raiz (ou base) do diretrio LDAP.

26

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

3.

Configure para a verso 3 do protocolo LDAP.


4.

Nossa base de dados no precisar de autenticao para leitura. Uma alternativa restringir a leitura
apenas ao administrador do diretrio ou outro usurio e configur-lo nessa opo, ao custo de ter que
deixar sua senha armazenada em texto puro no arquivo de configurao.

27

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

5.

Tambm no vamos precisar de um usurio com privilgios no NSS. Se isto for necessrio para algum
outro servio que no seja autenticao, pode-se configurar essa opo com o administrador do
diretrio, mas sua senha ter que ficar armazenada no arquivo /etc/libnss-ldap.secret.
6.

No precisaremos proteger a leitura a esse arquivo, pois no estamos armazenando informaes


confidenciais nele. Isso permitir aos usurios consultar o diretrio atravs de ferramentas como
finger e id.

28

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

7.

O gerenciamento do arquivo /etc/nsswitch.conf feito manualmente. Vamos configur-lo a


seguir.
8.

Para configurar o NSS para usar o mdulo libnss-ldap, devemos alterar o arquivo
/etc/nsswitch.conf. Basta adicionar o mdulo ldap como fonte de pesquisa para as bases
de dados passwd, group e shadow. Um exemplo desse arquivo com as alteraes necessrias
apresentado abaixo:

29

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Exemplo 3.1. Arquivo de configurao /etc/nsswitch.conf


#
#
#
#
#

/etc/nsswitch.conf

#
#
#
#

As fontes sero pesquisadas na ordem em que so listadas. Para


evitar problemas de login no servidor caso ocorra algum problema
com o servio slapd, uma boa opo deixar o ldap como segunda
opo.

Example configuration of GNU Name Service Switch functionality.


If you have the `glibc-doc' and `info' packages installed, try:
`info libc "Name Service Switch"' for information about this file.

passwd:
group:
shadow:

compat ldap
compat ldap
compat ldap

hosts:
networks:

files dns mdns


files

protocols:
services:
ethers:
rpc:

db
db
db
db

netgroup:

nis

files
files
files
files

Importante
Certifique-se de que as permisses do arquivo /etc/nsswitch.conf esto ajustadas para 644 e
de que o seu proprietrio seja o usurio root.

PAM
O PAM (Pluggable Authentication Modules) o servio responsvel por realizar a autenticao de usurios
nos ambientes Linux/Unix. Atravs do PAM e de suas bibliotecas, possvel configurar um esquema de
autenticao segura para qualquer aplicao de forma transparente.
O pacote libpam-ldap o plugin do LDAP para o PAM, ou seja, ele que permitir ao PAM autenticar
usurios armazenados no diretrio LDAP. O PAM apenas realiza a autenticao dos usurios que foram
reconhecidos durante a pesquisa do NSS, ou seja, necessrio instalar e configurar o mdulo libnss-ldap
antes do libpam-ldap para que a autenticao dos usurios do diretrio LDAP seja efetuada.

Procedimento 3.3. Instalao

O pacote libpam-ldap dever ser instalado junto com o pacote libnss-ldap normalmente, no entanto,
caso isso no ocorra execute o seguinte comando:

usuario@cliente:~$ sudo aptitude install libnss-ldap

30

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Cuidado
Esse pacote pertence ao repositrio Universe da distribuio Ubuntu. Para saber como adicionar os
repositrios extras lista de repositrios do gerenciador de pacotes, consulte a documentao do
U b u n t u :
E x t r a
R e p o s i t o r i e s
[https://help.ubuntu.com/6.06/ubuntu/desktopguide/C/extra-repositories.html#id2580924].

Procedimento 3.4. Configurao


O processo de configurao do pacote libpam-ldap deve iniciar automaticamente aps a instalao. Caso
ele tenha sido instalado automaticamente junto com o libnss-ldap, sua configurao ser realizada aps a
primeira. A seguir explicaremos esse processo para cada tela apresentada. O processo pode ser repetido a
qualquer momento, utilizando o seguinte comando:

usuario@cliente:~$ sudo dpkg-reconfigure libpam-ldap


1.

Digite o endereo do servidor LDAP.

31

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

2.

Digite a raiz (ou base) do diretrio LDAP.


3.

Configure para a verso 3 do protocolo LDAP.

32

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

4.

Selecione no para essa opo tambm.


5.

Configure a base de dados para que ela no precise de autenticao.

33

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

6.

Na prxima tela vamos configurar o algoritmo utilizado para criptografar as senhas nos casos em que
um algoritmo no for explicitamente especificado.
7.

Apenas mantenha a opo padro (crypt) e confirme.


8.

Precisamos agora alterar os arquivos /etc/pam.d/common-account, /etc/pam.d/commonauth e /etc/pam.d/common-password. Os exemplo abaixo ilustram esses arquivos com as
alteraes necessrias para que o PAM utilize os usurios do diretrio para autenticao do sistema:
Listagem do arquivo /etc/pam.d/common-account:

34

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Exemplo 3.2. Arquivo /etc/pam.d/common-account


#
# /etc/pam.d/common-account - authorization settings common to all
# services
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system. The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
account sufficient
pam_ldap.so
account required
pam_unix.so
Listagem do arquivo /etc/pam.d/common-account:

Exemplo 3.3. Arquivo /etc/pam.d/common-auth


#
# /etc/pam.d/common-auth - authentication settings common to all
# services
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
auth
sufficient
pam_ldap.so
auth
required
pam_unix.so nullok_secure use_first_pass

Nota
A opo use_first_pass utilizada na ltima linha do arquivo /etc/pam.d/common-auth
evita que o usurio digite a senha duas vezes durante a autenticao.
Listagem do arquivo /etc/pam.d/common-account:

35

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Exemplo 3.4. Arquivo /etc/pam.d/common-password


#
#
#
#
#
#
#
#
#
#
#
#
#
#

/etc/pam.d/common-password - password-related modules common to all


services
This file is included from other service-specific PAM config files,
and should contain a list of modules that define the services to be
used to change user passwords. The default is pam_unix
The "nullok" option allows users to change an empty password, else
empty passwords are treated as locked accounts.
(Add `md5' after the module name to enable MD5 passwords)
The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
login.defs. Also the "min" and "max" options enforce the length of the
new password.

password
password
#
#
#
#
#
#
#
#
9.

sufficient pam_ldap.so
required
pam_unix.so nullok obscure min=4 max=8 md5

Alternate strength checking for password. Note that this


requires the libpam-cracklib package to be installed.
You will need to comment out the password line above and
uncomment the next two in order to use this.
(Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
password required
password required

pam_cracklib.so retry=3 minlen=6 difok=3


pam_unix.so use_authtok nullok md5

O PAM precisar se comunicar com o servidor LDAP atravs de TLS para garantir a segurana dos
dados transmitidos, nos casos em que ele for instalado em uma mquina diferente da que est rodando
o servio slapd. Para isso, precisamos descomentar a seguinte linha no arquivo
/etc/pam_ldap.conf:

ssl start_tls

Tambm ser necessrio ter um arquivo /etc/ldap/ldap.conf com o seguinte contedo:

36

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Exemplo 3.5. Arquivo de configurao /etc/ldap/ldap.conf


####################### /etc/ldap/ldap.conf #######################
# Arquivo de configurao para os clientes do diretrio LDAP.
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE
URI

dc=ime,dc=usp,dc=br
ldap://ldapserver.ime.usp.br

TLS_CACERT

/etc/ssl/certs/ssl-cert-ldapserver.pem

Cuidado
Este arquivo deve ter as permisses ajustadas para 644.
O certificado do servidor (caso ele seja do tipo auto-assinado) ou o da CA que o certificou deve ser
colocado no diretrio /etc/ssl/certs e sua permisso de acesso deve ser ajustada para 644
tambm. Altere o valor do parmetro TLS_CACERT de acordo com o nome do arquivo do certificado.

Samba

O Samba um servidor SMB open-source para ambientes Linux/Unix. Com o Samba possvel participar
de um domnio Windows, tanto como membro quanto como PDC (Primary Domain Controller). Isso
significa que o Samba pode ser usado para autenticar os usurios e computadores de um domnio Windows.
A seguir vamos explicar o procedimento de instalao e configurao do Samba em um servidor que ir
atuar como PDC, com o propsito de realizar a autenticao dos usurios e mquinas do domnio Windows,
de forma integrada com o nosso diretrio LDAP. Dessa forma, os usurios que esto armazenados no
diretrio LDAP podero utilizar tanto os terminais Linux/Unix da rede quanto as estaes de trabalho
Windows, e o gerenciamento desses dois ambientes ficar centralizado.
Ser possvel garantir permisso de acesso a um usurio apenas aos terminais Linux/Unix ou apenas s
estaes Windows tambm, se necessrio. E tambm ser possvel manter as senhas de acesso sincronizadas,
de tal forma que se um usurio mudar sua senha na linha de comando do Linux ela tambm ser alterada
para a autenticao no Windows e vice-versa.
Essa automao no gerenciamento dos registros que esto no diretrio LDAP por parte do Samba feita
atravs de scripts auxiliares que vamos instalar e configurar.

37

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Procedimento 3.5. Instalao

Execute o seguinte comando para instalar os pacotes necessrios no servidor que disponibilizar o
Samba:

usuario@sambaserver:~$ sudo aptitude install samba smbldap-tools

Procedimento 3.6. Configurao


1.

Vamos agora configurar o Samba para atuar como um PDC pronto para autenticar os usurios
armazenados no diretrio LDAP a partir das estaes Windows. No vamos entrar nos detalhes dos
parmetros de configurao do Samba pois alm de serem muito numerosos isso foge do escopo deste
documento. Para obter mais informaes a respeito dos parmetros de configurao do samba, consulte
a manpage do smb.conf ou acesse o site The Official Samba-3 HOWTO and Reference Guide
[http://us3.samba.org/samba/docs/man/Samba-HOWTO-Collection/]. Um exemplo do arquivo
/etc/samba/smb.conf apropriado para realizar a funo de autenticao dos usurios Windows
apresentado abaixo:

38

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Exemplo 3.6. Arquivo de configurao /etc/ldap/ldap.conf


#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

Sample configuration file for the Samba suite for Debian GNU/Linux.

This is the main Samba configuration file. You should read the
smb.conf(5) manual page in order to understand the options listed
here. Samba has a huge number of configurable options most of which
are not shown in this example
Any line which starts with a ; (semi-colon) or a # (hash)
is a comment and is ignored. In this example we will use a #
for commentary and a ; for parts of the config file that you
may wish to enable
NOTE: Whenever you modify this file you should run the command
"testparm" to check that you have not made any basic syntactic
errors.

#======================= Global Settings =======================


[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will
# part of
# No precisa ser igual raiz do diretrio LDAP
workgroup = ldap.ime.usp.br
# server string is the equivalent of the NT Description field
server string = Servidor SAMBA
netbios name = sambaserver
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS
# Server
wins support = yes
# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
#### Debugging/Accounting ####
# This tells Samba to use a separate log file for each machine
# that connects
log level = 2
log file = /var/log/samba/log.%m
# Put a capping on the size of the log files (in Kb).

39

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

max log size = 1000


#
#
#
#

We want Samba to log a minimum amount of information to syslog.


Everything should go to /var/log/samba/log.{smbd,nmbd} instead.
If you want to log through syslog you should set the following
parameter to something higher.
syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace


panic action = /usr/share/samba/panic-action %d
####### Authentication #######
#
#
#
#
#

"security = user" is always a good idea. This will require a Unix


account in this server for every user accessing the server. See
/usr/share/doc/samba-doc/htmldocs/Samba-HOWTO-Collection/ServerType.
html
in the samba-doc package for details.
security = user
admin users = root

# You may wish to use password encryption. See the section on


# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true
# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = ldapsam:ldap://ldapserver.ime.usp.br/
passdb expand explicit = no
obey pam restrictions = no
# Script para alterar e sincronizar as senhas dos usuarios
ldap passwd sync = Yes
passwd program = /usr/sbin/smbldap-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n
*all*authentication*tokens*updated*
ldap
ldap
ldap
ldap
ldap
ldap
ldap
ldap

ssl = start_tls
admin dn = cn=admin,dc=ime,dc=usp,dc=br
suffix = dc=ime,dc=usp,dc=br
group suffix = ou=Groups
user suffix = ou=Users
machine suffix = ou=Computers
idmap suffix = ou=Idmap
delete dn = Yes

# Configuraes dos scripts do pacote smbldap-tools


add user script = /usr/sbin/smbldap-useradd -m "%u"
add machine script = /usr/sbin/smbldap-useradd -t 0 -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user script = /usr/sbin/smbldap-userdel "%u"
delete group script = /usr/sbin/smbldap-groupdel "%g"

40

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"


set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
########## Domains ###########
# Is this machine able to authenticate users. Both PDC and BDC
# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
#
domain logons = yes
enable privileges = yes
############ Misc ############
#
#
#
#

Most people will find that this option gives better performance.
See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/speed.html
for details
You may want to add the following on a Linux system:
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# Domain Master specifies Samba to be the Domain Master Browser. If this


# machine will be configured as a BDC (a secondary logon server), you
# must set this to 'no'; otherwise, the default behavior is recommended.
domain master = auto
# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
idmap uid = 10000-20000
idmap gid = 10000-20000

Cuidado
No se esquea de ajustar as permisses do arquivo /etc/samba/smb.conf para 644 e certifiquese de que o seu proprietrio seja o usurio root.

Dica
Ao finalizar a configurao do seu arquivo /etc/samba/smb.conf, execute o comando testparm
para verificar se est tudo certo:

usuario@sambaserver:~$ sudo testparm


Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

2.

Agora teremos que adicionar o schema do Samba no arquivo /etc/ldap/slapd.conf para que
os atributos das entradas do domnio Windows sejam reconhecidos pelo servio de diretrio. Para
isso, primeiro teremos que obter esse arquivo, que est contido no pacote samba-doc. Execute o
seguinte comando no servidor que est rodando o servio slapd para instalar o pacote necessrio:

usuario@ldapserver:~$ sudo aptitude install samba-doc

41

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Depois execute o comando abaixo para extrair o arquivo necessrio para o local correto:

usuario@ldapserver:~$ sudo zcat /usr/share/doc/samba-doc/examples


/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
A seo schema's do arquivo /etc/ldap/slapd.conf ficar assim:

# schema's
include
include
include
include
include
schemacheck

/etc/ldap/schema/core.schema
/etc/ldap/schema/cosine.schema
/etc/ldap/schema/nis.schema
/etc/ldap/schema/inetorgperson.schema
/etc/ldap/schema/samba.schema
on

Vamos alterar a seo base de dados tambm para que fique de acordo com as nossas alteraes.
Primeiro precisamos indexar a instncia de base de dados que contm o diretrio de maneira diferente
para obter um desempenho adequado ao buscar registros do Samba:

## base de dados no. 1

index
objectClass
index
uid,uidNumber,gidNumber,memberUid
index
cn,mail,surname,givenname
index
sambaSID
index
sambaPrimaryGroupSID
index
sambaDomainName

eq
eq
eq,subinitial
eq
eq
eq

Tambm vamos precisar alterar as ACL's dessa instncia para proteger os dados confidenciais desses
registros:

## ACL's para a base de dados no. 1


access to attrs=userPassword,sambaNTPassword,sambaLMPassword
by dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
by anonymous auth
by self write
by * none

Como alteramos as configuraes dos ndices da base de dados, teremos que reconstru-los. Para isso,
primeiro pare o servio slapd:

usuario@ldapserver:~$ sudo /etc/init.d/slapd stop

42

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Em seguida reconstrua os ndices com o comando slapindex:

usuario@ldapserver:~$ sudo slapindex


Agora reinicie o servio:

usuario@ldapserver:~$ sudo /etc/init.d/slapd start


Starting OpenLDAP: running BDB recovery, slapd.
3.

Precisamos armazenar a senha do usurio que ser usado para administrar o diretrio LDAP no arquivo
/var/lib/samba/secrets.tdb. Para isso, execute o seguinte comando no servidor em que o
Samba foi instalado:

usuario@sambaserver:~$ sudo /usr/bin/smbpasswd -w secret


Setting stored password for "cn=admin,dc=ime,dc=usp,dc=br" in secrets.tdb
4.

Finalmente, reinicie o servidor Samba:

usuario@sambaserver:~$ sudo /etc/init.d/samba restart


* Stopping Samba daemons...
* Starting Samba daemons...
5.

[ ok ]
[ ok ]

Como dissemos anteriormente, a automao do gerenciamento dos registros do diretrio LDAP por
parte do Samba feita com o auxlio de scripts. Esses scripts foram instalados pelo pacote smbldaptools, e j os inclumos no /etc/samba/smb.conf, agora precisamos configur-los.
Os arquivos de configurao do smbldap-tools residem em /etc/smbldap-tools, mas eles no
so instalados por padro. O pacote vem apenas com exemplos de configurao no diretrio
/usr/share/doc/smbldap-tools/examples. Digite os seguintes comandos para fazer uma
cpia dos arquivos necessrios para o local correto:

usuario@sambaserver:~$ sudo zcat /usr/share/doc/smbldap-tools/exa


mples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
usuario@sambaserver:~$ sudo cp /usr/share/doc/smbldap-tools/examp
les/smbldap_bind.conf /etc/smbldap-tools
Agora precisamos ajust-los para as permisses adeqadas:

usuario@sambaserver:~$
conf
usuario@sambaserver:~$
bind.conf
usuario@sambaserver:~$
bldap.conf
usuario@sambaserver:~$
bldap_bind.conf

sudo chmod 644 /etc/smbldap-tools/smbldap.


sudo chmod 600 /etc/smbldap-tools/smbldap_
sudo chown root:root /etc/smbldap-tools/sm
sudo chown root:root /etc/smbldap-tools/sm

43

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

O arquivo /etc/smbldap-tools/smbldap_bind.conf contm as informaes de autenticao


ao diretrio, por isso suas permisses devem estar mais restritas. A seguir apresentamos um exemplo
desse arquivo com os parmetros ajustados para o acesso ao diretrio:

Exemplo
3.7.
Arquivo
de
/etc/smbldap-tools/smbldap_bind.conf

c o n fi g u r a o

############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading
# access
# By default, we will use the same DN (so it will work for standard
# Samba release)
slaveDN="cn=admin,dc=ime,dc=usp,dc=br"
slavePw="secret"
masterDN="cn=admin,dc=ime,dc=usp,dc=br"
masterPw="secret"
O arquivo /etc/smbldap-tools/smbldap.conf contm as informaes de configurao dos
scripts que sero usados pelo Samba. O primeiro parmetro que iremos configurar o Security
Identifier (SID) do domnio Samba. Esse nmero uma hash utilizada pelos domnios Windows para
identificar os recursos presentes na rede. Para obter esse nmero, digite o seguinte comando:

usuario@sambaserver:~$ sudo net getlocalsid


SID for domain SAMBASERVER is: S-1-5-21-22440784161265281458-506834435
Copie essa hash para que possamos coloc-la no arquivo de configurao do smbldap-tools. No se
esquea de que se o Samba tiver sido instalado em um servidor diferente do que est rodando o LDAP,
precisaremos configurar o suporte a TLS para os scripts do smbldap-tools, e tambm vamos precisar
de uma cpia do certificado do servidor LDAP em /etc/ssl/certs.
Um exemplo do arquivo /etc/smbldap-tools/smbldap.conf configurado com suporte a
TLS exibido a seguir:

44

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

Exemplo
3.8.
Arquivo
/etc/smbldap-tools/smbldap.conf

de

c o n fi g u r a o

######################################################################
#
# General Configuration
#
######################################################################
# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-2244078416-1265281458-506834435"
# Domain name the Samba server is in charged.
# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="IDEALX-NT"
sambaDomain="LDAP.IME.USP.BR"
######################################################################
#
# LDAP Configuration
#
######################################################################
#
#
#
#
#
#
#

Notes: to use to dual ldap servers backend for Samba, you must patch
Samba with the dual-head patch from IDEALX. If not using this patch
just use the same server for slaveLDAP and masterLDAP.
Those two servers declarations can also be used when you have
. one master LDAP server where all writing operations must be done
. one slave LDAP server where all reading operations must be done
(typically a replication directory)

# Slave LDAP server


# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="ldapserver.ime.usp.br"
# Slave LDAP port
# If not defined, parameter is set to "389"
slavePort="389"
# Master LDAP server: needed for write operations
# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="ldapserver.ime.usp.br"
# Master LDAP port
# If not defined, parameter is set to "389"
masterPort="389"
# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection

45

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

# (you should also used the port 389)


# If not defined, parameter is set to "1"
ldapTLS="1"
# How to verify the server's certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify="require"
# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile="/etc/ssl/certs/ssl-cert-ldapserver.pem"
# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
# clientcert="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.pem"
# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
# clientkey="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.key"
# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=ime,dc=usp,dc=br"
# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
# usersdn
usersdn="ou=Users,${suffix}"
# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
# computersdn
computersdn="ou=Computers,${suffix}"
# Where are stored Groups
# Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
# groupsdn
groupsdn="ou=Groups,${suffix}"
# Where are stored Idmap entries (used if samba is a domain member
# server)
# Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
# idmapdn
idmapdn="ou=Idmap,${suffix}"
#
#
#
#
#

Where to store next uidNumber and gidNumber available for new users
and groups
If not defined, entries are stored in sambaDomainName object.
Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"

46

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

sambaUnixIdPooldn="sambaDomainName=LDAP.IME.USP.BR,${suffix}"
# Default scope Used
scope="sub"
# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="SSHA"
# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"
######################################################################
#
# Unix Accounts Configuration
#
######################################################################
# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"
# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"
# Default mode used for user homeDirectory
userHomeDirectoryMode="700"
# Gecos
userGecos="System User"
# Default User (POSIX and Samba) GID
defaultUserGid="513"
# Default Computer (Samba) GID
defaultComputerGid="515"
# Skel dir
skeletonDir="/etc/skel"
# Default password validation time (time in days) Comment the next line
# if you don't want password to be enable for defaultMaxPasswordAge
# days (be careful to the sambaPwdMustChange attribute's value)
defaultMaxPasswordAge="45"
######################################################################
#
# SAMBA Configuration
#
######################################################################

47

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

# The UNC path to home drives location (%U username substitution)


# Just set it to a null string if you want to use the smb.conf 'logon
# home' directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome=""
# The UNC path to profiles locations (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon
# path' directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile=""
# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="H:"
# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under
# dos
userScript="logon.bat"
# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# Ex: mailDomain="idealx.com"
mailDomain="ime.usp.br"
######################################################################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
######################################################################
# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf
# .pm) but prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_
# conf.pm) but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
# comment out the following line to get rid of the default banner
# no_banner="1"
Com os scripts devidamente configurados, podemos inserir as entradas necessrias ao funcionamento
do domnio do Samba no diretrio LDAP atravs do script smbldap-populate:

usuario@sambaserver:~$ sudo /usr/sbin/smbldap-populate


Populating LDAP directory for domain LDAP.IME.USP.BR (S-1-5-21-22440

48

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Integrao

78416-1265281458-506834435)
(using builtin directory structure)
entry dc=ime,dc=usp,dc=br already exist.
adding new entry: ou=Users,dc=ime,dc=usp,dc=br
adding new entry: ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: ou=Computers,dc=ime,dc=usp,dc=br
adding new entry: ou=Idmap,dc=ime,dc=usp,dc=br
adding new entry: uid=root,ou=Users,dc=ime,dc=usp,dc=br
adding new entry: uid=nobody,ou=Users,dc=ime,dc=usp,dc=br
adding new entry: cn=Domain Admins,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Domain Users,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Domain Guests,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Domain Computers,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Administrators,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Account Operators,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Print Operators,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Backup Operators,ou=Groups,dc=ime,dc=usp,dc=br
adding new entry: cn=Replicators,ou=Groups,dc=ime,dc=usp,dc=br
entry sambaDomainName=LDAP.IME.USP.BR,dc=ime,dc=usp,dc=br already
exist. Updating it...
Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password: secret
Retype new password: secret
Ele pedir a senha do super-usurio do domnio Samba. Essa senha no precisa ser igual senha do
administrador LDAP. Essa senha da conta root do domnio, que ser usada para incluir as estaes
Windows ao mesmo.

49

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Captulo
4.
gerenciamento

Ferramentas

de

Resumo
Esse captulo apresenta algumas ferramentas de gerenciamento de linha de comando e
ferramentas de gerenciamento grficas.
Trabalhar com arquivos LDIF assim como com ferramentas de linha de comando construtivo para o
aprendizado e o entendimento das estruturas de dados do diretrio. Porm no muito conveniente na
prtica. Por isso existem vrias ferramentas grficas para isso.
O uso de ferramentas de linha de comando interessante para testar se novos servios esto funcionando
corretamente, medida em que eles so instalados e configurados. Alm disso, existem certos casos em
que necessrio utilizar uma ferramenta de linha de comando, pois uma ferramenta grfica no atende a
necessidade especfica que se quer.
As ferramentas grficas de gerenciamento so muito teis para o uso no dia-a-dia, em que no necessrio
resolver um problema muito especfico. A vantagem que ela fornece uma visualizao das estruturas dos
diretrios mais concreta do que um arquivo LDIF ou do que uma ferramenta de linha de comando.

Ferramentas de linha de comando


Slap Tools
Essa coleo de ferramentas vem junto com o OpenLDAP e fornece um mecanismo para importar e exportar
dados diretamente da base de dados do servidor OpenLDAP (slapd). Essas ferramentas podem ser usadas
para verificar se a base de dados est correta.

Ateno
J que essas ferramentas mexem diretamente na base de dados, o servidor LDAP no pode estar rodando
quando essas ferramentas forem ser usadas, pois a base de dados LDAP poder ser corrompida.
slapadd

L registros LDIF de um arquivo ou entrada padro e escreve as novas entradas na base


de dados slapd.

slapcat

L entradas da base de dados slapd e as escreve em um arquivo ou sada padro.

slaptest

Verifica a sintaxe do arquivo /etc/ldap/slapd.conf.

slapindex

Regenera os ndices em uma base de dados slapd.

slappasswd

Gera um hash de password apropriado para se usar no /etc/ldap/slapd.conf.

LDAP Tools
um conjunto de ferramentas clientes LDAP do OpenLDAP para se comunicar com qualquer servidor
LDAPv3. Essas ferramentas podem ser usadas para verificar se o servidor LDAP est funcionando
corretamente.

50

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Ferramentas de gerenciamento

Existe uma relao um-para-um entre essas ferramentas e as operaes do protocolo LDAP.
ldapadd

Adiciona entradas (no formato LDIF) em em diretrio LDAP.

ldapmodify

Alteras entradas LDAP existentes.

ldapcompare

Verifica se uma entrada possui um dado valor de atributo.

ldapdelete

Apaga entradas LDAP.

ldapmodrdn

Renomeia (altera o RDN) uma entrada LDAP existente.

ldappasswd

Altera o password de uma entrada.

ldapsearch

Procura entradas LDAP.

smbldap-tools
Conjunto de ferramentas scripts, que vem junto com o Samba, para gerenciamento de contas Samba em
um diretrio LDAP.
Possui scripts para mostrar informaes, adicionar, deletar e alterar grupos, alterar o password, mostrar
informaes, adicionar, deletar e alterar usurios e popular a base de dados LDAP.
Um comando til

usuario@sambaserver:~$ sudo smbldap-usermod -a login


que adiciona o objectclass sambaSAMAccount, permitindo a um usurio que antes era somente
POSIX se tornar um usurio Samba.

MigrationTools
Conjunto de scripts Perl para migrar usurios, grupos, aliases, hosts, grupos de redes, redes, protocolos,
RPC's e servios de nomes existentes (arquivos, NIS, NetInfo) para servidores LDAP.
A seguir vamos citar apenas alguns scripts:
migrate_passwd.pl

Migra usurios do arquivo /etc/passwd.

migrate_group.pl

Migra grupos do arquivo /etc/group.

migrate_hosts.pl

Migra hosts do arquivo /etc/hosts.

Ferramentas grficas
phpLDAPadmin
Ele definido em seu site oficial [http://phpldapadmin.sourceforge.net/] como um "um navegador LDAP
baseado na Web para gerenciar o seu servidor LDAP".

51

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Ferramentas de gerenciamento

Essa ferramenta um cliente LDAP implementado em PHP, que pode ser acessada por navegadores Web.
A sua visualizao da DIT e sua avanada funcionalidade de busca ajuda a tornar mais intuitiva a
administrao do diretrio LDAP.

Tela de login do phpLDAPadmin

Tela de edio do usurio da interface do phpLDAPadmin

52

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Ferramentas de gerenciamento

GOsa
O GOsa, assim como o phpLDAPadmin, um cliente LDAP implementado em PHP que pode ser acessada
por navegadores Web. A diferena principal deles que o GOsa mostra os dados em um nvel mais alto
de abstrao, deixando mais transparente a estrutura de rvore hierrquica do diretrio.

Tela principal da interface do GOsa

LAT
Essa ferramenta relativamente nova e significa LDAP Administration Tool. Ela permite navegar e
modificar as entradas de diretrios LDAP. Ela integrada com o GNOME, pois escrita em C# usando
Mono e Gtk#.

53

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Captulo 5. Ajuda
Resumo
Esse um captulo contendo informaes que o ajudaro a resolver certos problemas e solucionar
algumas dvidas. Organizamos ele em duas sees: uma de perguntas freqentes (tambm
conhecida como FAQ e outra de soluo de problemas (Troubleshooting).

Perguntas
freqentes
(Frequently Asked Questions)
P:

Existe outra maneira de realizar a integrao com redes Windows?

R:

Sim, existe. Uma alternativa fazer com que o os clientes Linux/Unix busquem as informaes de
autenticao que esto armazenadas em um servidor Microsoft Active Directory. Para maiores
informaes sobre como realizar essa implementao, consulte a documentao mantida pela
comunidade
Ubuntu:
Active
Directory
How
To
[https://help.ubuntu.com/community/ActiveDirectoryHowto].

P:

Gostaria de manter o servio NIS em minha rede, pois alguns terminais utilizam Solaris e no terei
como atualiz-los a curto prazo. Existe uma maneira de integrar o NIS ao diretrio LDAP?

R:

O servio de diretrio LDAP tem como intuito na verdade substituir o NIS. No entanto, existe uma
maneira de configurar um gateway NIS/LDAP utilizando uma soluo comercial da PADL Software.
Consulte o link NIS/LDAP Gateway [http://www.padl.com/Products/NISLDAPGateway.html] para
maiores informaes.

Soluo de problemas (Troubleshooting)


1.

Aps alguns pequenos ajustes nos ndices da base de dados, no arquivo /etc/ldap/slapd.conf,
o NSS e o finger no conseguem mais encontrar os usurios que esto armazenados no diretrio.
Sempre que os ndices forem alterados no arquivo /etc/ldap/slapd.conf, eles precisam ser
reconstrudos. Para fazer isso, primeiro pare o servio slapd:

usuario@ldapserver:~$ sudo /etc/init.d/slapd stop


Stopping OpenLDAP: slapd.
depois reconstrua os ndices utilizando o comando slapindex:

usuario@ldapserver:~$ sudo slapindex


e ento reinicie o servio:

usuario@ldapserver:~$ sudo /etc/init.d/slapd start


Starting OpenLDAP: running BDB recovery, slapd.
Tente realizar novamente a busca.

54

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Ajuda

2.

Executar o finger, id ou o getent como root retorna os registros que esto armazenados no diretrio.
Porm, ao executar esses mesmos comandos como um usurio comum, no possvel obter esses
resultados.
Para que o NSS consiga realizar consultas no diretrio LDAP ele precisa ter acesso ao arquivo
/etc/libnss-ldap.conf. Certifique-se de que esse arquivo possui acesso de leitura para todos
os usurios, caso contrrio, apenas o usurio root conseguir realizar essas buscas.
O ajuste de permisso recomendado para o arquivo /etc/libnss-ldap.conf 644, para
permitir a pesquisa dos registros do diretrio atravs do finger, id ou getent por todos os usurios
do sistema.
No se esquea de que esse ajuste s recomendado caso esse arquivo no contenha nenhuma
informao confidencial, como a senha do administrador do diretrio (rootdn). Ou seja, o NSS ter
que fazer as buscas utilizando bind annimo (sem autenticao) e para isso o direito de leitura ter
que ser liberado a todos os registros para todos os usurios, sem comprometer a segurana do sistema.
Consulte o Apndice A, ACL's para maiores informaes.

55

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Apndice A. ACL's
As ACL's (Access Control Lists) fornecidas pelo OpenLDAP possuem uma sintaxe simples e so muito
flexiveis e poderosas na sua implementao. A idia bsica definir Quem tm qual Nvel de Acesso a O
Qu?
As principais formas de "Quem" so:
*

Qualquer usurio conectado, incluindo conexes annimas.

self

O DN do usurio atualmente conectado.

anonymous

Conexes de usurios no autenticadas.

users

Conexes de usurios autenticadas.

expresso regular

Que case com um DN ou com uma identidade SASL.

A seguir est uma tabela que resume os vrios nveis de acesso. Nveis maiores possuem todas as capacidades
de nveis abaixo deles.

Tabela A.1. Nveis de acesso das ACL's


Nvel de acesso Permisso concedida
write

Acesso para atualizar valores de atributos

read

Acesso para ler resultados de buscas

search

Acesso para aplicar filtros de busca

compare

Acesso para comparar atributos

auth

Acesso para autenticar. Requer que o cliente mande o nome de usurio na forma de um
DN e algum tipo de credencial para provar a sua identidade

none

Nenhum acesso

Finalmente, "O Qu" define as entradas ou atributos aos quais a ACL deve ser aplicada. Ele composto
de trs partes, todas opcionais.

Uma expresso regular definindo o DN. A sintaxe dn.targetstyle=regex, onde targetstyle


base, one ou children, e regex uma expresso regular representando um DN.

Um filtro LDAP que obedea o [RFC4515 Lightweight Directory Access Protocol (LDAP): String
Representation of Search Filters [ftp://ftp.rfc-editor.org/in-notes/rfc4515.txt]]. A sintaxe bsica para
especificar um filtro filter=filtroLDAP.

Uma lista de nomes atributos separados por vrgula, cuja forma attrs=listaDeAtributos.

* para incluir tudo.

A seguir est um exemplo de ACL.

56

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

ACL's

Exemplo A.1. Uma ACL bsica


access to
by
by
by
by
access to
by
by

attrs=userPassword,sambaNTPassword,sambaLMPassword
dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
anonymous auth
self write
* none
*
dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
* read

Uma ACL listada antes tem precedncia sobre as ACL's listadas depois. Isso significa que as ACL's mais
restritas devem ser listadas antes das mais gerais para que tenham efeito.
A primeira configurao listada no exemplo garante direito de acesso aos atributos userPassword,
sambaNTPassword e sambaLMPassword para escrita ao cn=admin,dc=ime,dc=usp,dc=br, para
autenticao aos usurios no autenticados (annimos), de escrita aos usurios autenticados (apenas para
as suas prprias entradas), ou seja, permite que os usurios alterem a prpria senha, e nenhum acesso aos
outros.
A segunda configurao garante direito de acesso todo o diretrio ao cn=admin,dc=ime,dc=usp,dc=br,
e para leitura para todos os outros usurios.

57

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Apndice B. Arquivo LDIF


Introduo
LDIF (LDAP Data Interchange Format ou Formato de Intercmbio de Dados do LDAP) usado para
representar entradas LDAP em um formato de texto simples. Sua especificao tcnica est no [RFC2849
"The
LDAP
Data
Interchange
Format
(LDIF)
Technical
Specification"
[ftp://ftp.rfc-editor.org/in-notes/rfc2849.txt]].
Esse formato de arquivo apropriado para descrever informaes de diretrio ou modificaes feitas nas
informaes de diretrio. Ele tipicamente usado para importar ou exportar informaes de diretrio entre
servidores de diretrio LDAP, ou para descrever um conjunto de modificaes que aplicado a um diretrio.
Existem vrias situaes em que um formato de intercmbio padro desejvel. Por exemplo, algum
pode querer exportar uma cpia dos contedos de um servidor de diretrio para um arquivo, mover o
arquivo para uma outra mquina e importar os contedos em um segundo servidor de diretrio.
Alm disso, usando um formato bem definido, o desenvolvimento de ferramentas de importao de dados
facilitado.
O formato LDIF foi desenvolvido e usado originalmente na implementao LDAP da Universidade de
Michigan. O primeiro uso do LDIF era para descrever entradas entradas de diretrio. Depois o formato foi
expandido para permitir representar tambm modificaes nas entradas de diretrio.

Definio do LDIF
Um arquivo LDIF :

Uma coleo de registros separados por linhas em branco.

Um mapeamento de atributos a valores.

Uma coleo de diretivas que dizem ao parser como processar a informao.

Um registro consiste de uma seqncia de linhas descrevendo uma entrada do diretrio ou um conjunto
de modificaes em uma entrada do diretrio. Ele especifica um conjunto de entradas do diretrio ou um
conjunto de mudanas a ser aplicado nas entradas do diretrio, mas no ambos.
Existe uma relao um-para-um entre as operaes LDAP que modificam o diretrio (add, delete, modify
e modrdn) e os tipos de registros. Essa correspondncia intencional, pois permite uma traduo direta do
registro LDIF para as operaes do protocolo. Mais informaes sobre as operaes no Apndice D,
Operaes do LDAP.
A forma bsica de um registro :

# comentrio
dn: distinguished name
attrdesc: attrvalue
attrdesc: attrvalue
A seguir est um exemplo de um arquivo LDIF.

58

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Arquivo LDIF

Exemplo B.1. Arquivo LDIF


dn: dc=ime,dc=usp,dc=br
objectClass: domain
dc: ime
dn: cn=admin,dc=ime,dc=usp,dc=br
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: admin
description: Administrador do LDAP
userPassword: {CRYPT}NHiC2OYs6eym2
dn: ou=Users,dc=ime,dc=usp,dc=br
objectClass: organizationalUnit
ou: Users
description: Usurios da organizao
dn: ou=Groups,dc=ime,dc=usp,dc=br
objectClass: organizationalUnit
ou: Groups
description: Grupos do sistema
Cada registro consiste em um DN obrigatoriamente, e uma ou mais classes de objetos e mltiplas definies
de atributos. O objectClass especifica a classe de objeto da entrada. A classe define quais atributos
ou schema's so permitidos ou obrigatrios para a entrada. Os dados em um arquivo LDIF devem obedecer
as regras de schema do diretrio LDAP.
Agora vamos analisar alguns registros:

dn: dc=ime,dc=usp,dc=br
objectClass: domain
dc: ime
Esse registro define o domnio, que a raiz da rvore de diretrio.

dn: cn=admin,dc=ime,dc=usp,dc=br
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: admin
description: Administrador do LDAP
userPassword: {CRYPT}NHiC2OYs6eym2
Esse registro define a entrada que ser usada como administrador do diretrio. A classe
organizationalRole define entradas que representam cargos desempenhados pelas pessoas em uma
organizao. A classe simpleSecurityObject permite o uso de passwords por outras classes. cn
um atributo obrigatrio da classe organizationalRole. description um atributo da classe
organizationalRole, que define a descrio do cargo. userPassword um atributo obrigatrio
da classe simpleSecurityObject, que define o password da entrada.
cn (Common Name) um atributo usado para definir o nome (RDN) de uma entrada no diretrio. Ele
bem genrico, pois seu tipo no diz nada a respeito do que representa a entrada. O atributo dc (Domain

59

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Arquivo LDIF

Component) usado para definir uma parte do nome de um domnio. Ele tambm pode definir o RDN de
uma entrada, no exemplo, seria dc=ime.

dn: ou=Users,dc=ime,dc=usp,dc=br
objectClass: organizationalUnit
ou: Users
description: Usurios da organizao
dn: ou=Groups,dc=ime,dc=usp,dc=br
objectClass: organizationalUnit
ou: Groups
description: Grupos do sistema
Esses registros definem duas unidades organizacionais, ou=Users,dc=ime,dc=usp,dc=br, que contm os
usurios, e ou=Groups,dc=ime,dc=usp,dc=br, que contm os grupos de usurios. ou (Organizational
Unit) um atributo da classe organizationalUnit. Ela permite definir uma entrada como uma
unidade organizacional e tambm usado para definir o RDN da entrada.
Outro exemplo:

Exemplo B.2. Outro arquivo LDIF


dn: uid=barbosa,ou=Users,dc=ime,dc=usp,dc=br
objectClass: account
objectClass: posixAccount
uid: barbosa
uidNumber: 2424
gidNumber: 20000
cn: Barbosa Pinto
userPassword: {CRYPT}KSC/iTKEfKm0A
loginShell: /bin/bash
homeDirectory: /home/barbosa/
gecos: Barbosa Pinto
dn: cn=SI,ou=Groups,dc=ime,dc=usp,dc=br
objectClass: posixGroup
cn: SI
gidNumber: 20000
description: Grupo dos usurios do SI
O primeiro registro, que das classes account e posixAccount, representa um usurio Linux/Unix,
e o segundo, que da classe posixGroup, representa um grupo Linux/Unix. Na verdade essas classes
servem para definir usurio e grupo de qualquer sistema operacional que siga o padro POSIX.
uid (User Identification) um atributo que usado para definir o RDN da entrada que represente um
usurio.
Esses exemplos de arquivos LDIF poderiam ser usados para importar informaes de um diretrio. A
seguir est um exemplo que poderia ser usado para representar uma mudana a ser aplicada em uma entrada
do diretrio.

60

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Arquivo LDIF

Exemplo B.3. Arquivo LDIF para remover usurio


dn: uid=barbosa,ou=Users,dc=ime,dc=usp,dc=br
changetype: delete
A palavra-chave changetype usada para modificar registros existentes no diretrio. changetype
recebe o valor delete, que significa que o registro cujo dn uid=barbosa,ou=Users,dc=ime,dc=usp,dc=br
para ser apagado.

Dica
Trabalhar com arquivos LDIF assim como com ferramentas de linha de comando construtivo para o
aprendizado e entendimento das estruturas de dados do diretrio. Porm no muito conveniente na prtica.
Por isso existem vrias ferramentas grficas para isso. Mais informaes no Captulo 4, Ferramentas de
gerenciamento.

61

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Apndice C. Gerando um certificado SSL


auto-assinado
Certificados SSL so necessrios para que um determinado servio opere com suporte a conexo segura
por meio de criptografia.
Uma maneira de se obter o certificado, atravs de uma Autoridade Certificadora (Certificate Authority
ou CA). Outra maneira, gerando ele por conta prpria atravs de ferramentas adeqadas.
Um certificado gerado atravs de ferramentas pode ser de dois tipos: auto-assinado (self-signed) ou assinado
por uma CA. No caso de ser assinado por uma CA, voc ter que gerar dois certificados: um para a sua
prpria CA, e o outro para o servidor, sendo que esse ltimo ser assinado pela CA que voc criou. A
maneira mais direta gerar um certificado auto-assinado, pois nesse caso, no ser necessrio um certificado
separado apenas para a CA.
Quando utilizamos conexo segura, os clientes precisam apenas dos certificados das CA's em quem eles
confiam. Por isso que manter certificados auto-assinados pode tornar-se mais difcil. Para que o cliente se
conecte a um servio que usa certificado auto-assinado, precisar de uma cpia do prprio certificado do
servidor j que no existe um certificado separado apenas para a CA que o emitiu. Ou seja, para cada
servio existir um certificado que dever ser instalado em cada cliente, enquanto que poderamos instalar
apenas um certificado em cada cliente: o da CA responsvel pela emisso de todos os certificados da rede.
Repare que cada certificado aponta para uma CA, formando uma cadeia de confiana. A raiz dessa cadeia,
que geralmente uma CA de maior confiana, sempre vai possuir um certificado auto-assinado. Ou seja,
certificados auto-assinados funcionam como se fossem a raiz da cadeia de confiana.
Vamos explicar abaixo o processo de criao de um certificado auto-assinado. Se voc estiver pensando
em disponibilizar suporte SSL/TLS a outros servios de sua rede, talvez a melhor opo seja utilizar
certificados assinado por uma CA. Nesse caso, consulte o site Certificate Management and Generation
with OpenSSL [http://www.gagravarr.org/writing/openssl-certs/ca.shtml] para maiores informaes sobre
como criar uma CA para sua rede e assinar os seus prprios certificados, ou o site da CAcert
[http://www.cacert.org/], que uma organizao que fornece certificados digitais assinados gratuitamente.
Tambm existem vrias empresas que vendem este servio.
Para criar um certificado digital, necessrio que o pacote OpenSSL esteja instalado no servidor. Execute
os seguintes comandos na distriuio Ubuntu para realizar essa instalao:
1.

Atualize as listas dos repositrios

usuario@servidor:~$ sudo aptitude update


2.

Instale o pacote OpenSSL

usuario@servidor:~$ sudo aptitude install openssl


Tendo o pacote OpenSSL instalado, execute o script CA com o parmetro newreq para criar os arquivos
do certificado auto-assinado e de sua respectiva chave privada:

62

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Gerando um certificado SSL autoassinado

usuario@servidor:~$ /usr/lib/ssl/misc/CA.sh -newreq


Generating a 1024 bit RSA private key
...........++++++
..++++++
writing new private key to 'newkey.pem'
Enter PEM pass phrase:secret
Verifying - Enter PEM pass phrase:secret
----You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Sao Paulo
Locality Name (eg, city) []:Sao Paulo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Universidade de
Sao Paulo
Organizational Unit Name (eg, section) []:Instituto de Matematica e Estatis
tica
Common Name (eg, YOUR name) []:servidor.ime.usp.br
Email Address []:.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
Request is in newreq.pem, private key is in newkey.pem
No necessrio preencher os trs ltimos campos, por isso colocamos um ponto ('.') em cada um deles.
Voc pode preench-los se achar conveniente. importante que o campo Common Name seja preenchido
com o endereo correto do servidor (nome e domnio).
Teremos como resultado da execuo do script CA dois arquivos: newreq.pem, que contm o certificado
auto-assinado do servidor; e newkey.pem, que contm a chave privada do certificado protegida por uma
senha. Esses dois arquivos esto listados abaixo:

63

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Gerando um certificado SSL autoassinado

Exemplo C.1. Arquivo do certificado SSL auto-assinado (newreq.pem)


-----BEGIN CERTIFICATE REQUEST----MIIB6DCCAVECAQAwgacxCzAJBgNVBAYTAkJSMRIwEAYDVQQIEwlTYW8gUGF1bG8x
EjAQBgNVBAcTCVNhbyBQYXVsbzEiMCAGA1UEChMZVW5pdmVyc2lkYWRlIGRlIFNh
byBQYXVsbzEuMCwGA1UECxMlSW5zdGl0dXRvIGRlIE1hdGVtYXRpY2EgZSBFc3Rh
dGlzdGljYTEcMBoGA1UEAxMTc2Vydmlkb3IuaW1lLnVzcC5icjCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAzKogq6bdDdJeqwMeMf0tUV6k6D+x9cRNA4x3mWwJ
oFPmJAA39W8PoH8aEBNvbMuy4NSiM/Biy/1r6FmWiXQslsESnGTevfl4eZCDAsSK
XuoXWnP7k9AI7ViVZFP44dFnXjW7z58z4VtCJ8fmfhpiqhPdarHVYxf0CxabXdQU
hwUCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBALiDK8gb3omPp0Q+wk04QhfWavbQ
DTkOhCJuIsA3hDtGgCE+7JTHIBDLJPLdIQWs9qaVDjN9Uo3xRHZXQCM0pZ2dfhot
IGasL7xjfdnx8scacAQ/orv98xEe0jOQhZVuuel8Hh4n127S7tBlrggOwc+l25p5
1CAYNwmoTWIcAbmj
-----END CERTIFICATE REQUEST-----

Exemplo C.2. Arquivo da chave privada com senha (newkey.pem)


-----BEGIN RSA PRIVATE KEY----Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,3F786C9DC54571D9
yQrotxI53BdVvY+q+uy/0G0TTBr1e9V3TE65J0qLSqgdnIQ8Z68c5iwUFA/FF0ay
j40YaESPSodFbvPt9fMzLaNhkoRj3QmCfNkuboiJpfHX+DOXmDakE17OWOjOoUR2
hIOK6aSysNZ34UJEhdvL33voAzFp3SXNqhgJY4L9ctEeR7fr5GqQ+ewCR4IYiuOI
nfqbDVTE7H2tsaHqzB+ND/Aqul+YDq3NQRH0zutX4k0TEEiCIimKFbz8LDbXLHzN
sdwdq8ODwjlVnFbOTXq7ZpdEdcWgFs+mdLu7Bp6maG9u9qXPxD/ToLOiH/B68lJQ
T7SdysxUrft0xo5LNMgakKCrPqXjfsGhT6IxHltFV6WEKiOnVLH3CaEYsm1qpyDR
G7Wtf+/gzwAMRVdYptO1MaL8paupxq4OXjBBWWvpymQ/qbnpVDi5CA9rPCTfv9OQ
sXgA9fo0tGGd5AD6mJZd94LxHG+54v3mWR+N6SvMppqtD8Ym2yVwDJi3zQk7uhwH
PEQ1I7/6TU3VHLaL6Zf90+CRKUrOe6+86jNj/p4Q2WRojfEabcyO4yqE7jPez1aB
05PIaXMh0LwBbqTNmWPEe+nStvvP9znc8fNGa9KMZ2SA/vVczGu9nwTBav3NZtYF
SRZ71P9pAxK1rfU5jGDNts61+56hGMMwIuqLg0l4Dr3M0w1Y+zFjT0JQqoQKxcJz
UEMLIlX+WO8uUol2PGchqBRnsk6wsp3mdab3FjHm79uiEpi2Oi79uPM6D2Acmxue
VGCACKw+hjttKn4VprOIXNA0UD9SL6EFuGAlsynJn2DRsJzLiNXTmg==
-----END RSA PRIVATE KEY----Se o certificado auto-assinado que foi criado for usado para proteger um servio de rede, talvez seja
necessrio remover a senha de acesso chave privada. Se a chave privada for mantida com a senha, toda
vez que o servio que a utilizar for inicializado, a senha ter que ser digitada pelo administrador. Para
remover a senha de acesso chave privada execute o seguinte comando:

usuario@servidor:~$ openssl rsa -in newkey.pem -out openkey.pem


Enter pass phrase for newkey.pem:secret
writing RSA key
Esse comando vai abrir o arquivo da chave privada, para isso ele pedir a mesma senha que voc digitou
no incio da gerao do certificado. Ele criar ento um novo arquivo, contendo a mesma chave privada,
porm sem senha de acesso, que ser guardado no openkey.pem ou outro arquivo especificado na linha
de comando. A seguir temos um exemplo desse arquivo:

64

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Gerando um certificado SSL autoassinado

Exemplo C.3. Arquivo da chave privada sem senha (openkey.pem)


-----BEGIN RSA PRIVATE KEY----MIICXgIBAAKBgQDMqiCrpt0N0l6rAx4x/S1RXqToP7H1xE0DjHeZbAmgU+YkADf1
bw+gfxoQE29sy7Lg1KIz8GLL/WvoWZaJdCyWwRKcZN69+Xh5kIMCxIpe6hdac/uT
0AjtWJVkU/jh0WdeNbvPnzPhW0Inx+Z+GmKqE91qsdVjF/QLFptd1BSHBQIDAQAB
AoGBAJnzt5Ond0z4XAHj3IjZ24cD3KRflWw793qd5TFhVXRm6A1YpL9YhbbDJUXG
eOCr8aiyCjlrr8Wmoc8r5NMMsqRy4FIfJzVaAJozTM6r1JkdITHjW2DVN2zF3Tt6
PGfWygRwfMVqH5rNMpXV/3HwNqemoZJwRiWNhp9dP5vzzjhBAkEA9gWG9USF2mMx
hD0Jg0ZRm99JX6pwsJ+PXm+j1r1sILawNZcs4KFfcl2HAe9VWq/15eK9QJV8AmZ3
iD6QPXjYGQJBANT3L2yKxdxawEj5I7gf+iUm4h9Jxc2UlSEoFO27ZvegQ4Mcw4cd
+/MFvjbM+5KBnFu2RV3t0Gc8j/lCODOms80CQQDKUnFScy/BEaI/JhMUqlei4FXv
HrPeDNpSx2ztxImPva3b5J87fHqKCvBkXvbKxbpre7Q30LdTIgFbQlhMtXzBAkEA
t0mWk0BMUf35B9UEnO9IhrkUXAFOMET0pHiuqnxjfjN8Z1dWIO/5a4tBzkBVNB5A
x93zjYejmXZSIyCO5kVO8QJAJN54yvk62yolf0AKgDVB21A4uwGUFTyxZCdN/ZoO
m9W7YpQnowAe0t2RRm/J5IdDWSOAhdM5aXYDQTJVSN0qeg==
-----END RSA PRIVATE KEY----Repare a ausncia do cabealho em relao ao anterior. No se esquea de restringir o acesso a esse arquivo
agora, j que a chave do certificado no est mais protegida.

65

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Apndice D. Operaes do LDAP


Essas so as principais operaes do protocolo LDAP. Suas operaes so um subconjunto das operaes
do protocolo X.500, do qual se originou.
Bind autenticar

Essa operao serve para autenticar o cliente no servidor. Ela envia o DN, o password do
usurio e a verso do protocolo que est sendo usada. Por isso a conexo deve usar TLS ou
algum outro mecanismo de segurana. O servidor checa o password olhando o atributo
userPassword na entrada do usurio.

Unbind encerrar
sesso

Encerra uma sesso LDAP.

Search buscar

O servidor busca e devolve as entradas do diretrio que obedecem ao critrio da busca.

Compare - O servidor recebe um DN, um atributo e um valor, e responde se a entrada com aquele DN
comparar possui aquele atributo com aquele valor.
Add adicionar

Adiciona uma nova entrada no diretrio.

Modify modificar

Modifica uma entrada existente. O servidor recebe o DN da entrada a ser modificada e as


modificaes a serem feitas.

Delete apagar

Apaga uma entrada existente. O servidor recebe o DN da entrada a ser apagada do diretrio.

Modrdn modificar
RDN

Renomeia uma entrada existente. O servidor recebe o DN original da entrada, o novo RDN,
e se a entrada movida para um local diferente na DIT, o DN do novo pai da entrada.

Abandon abandonar

O servidor recebe o ID da mensagem da operao a ser abandonada.

As operaes de atualizao so atmicas, ou seja, so transaes. Elas so: Add, Delete, Modify e Modrdn.
LDAP no tem suporte para mltiplas operaes serem tratadas como uma nica transao. Se essa
caracterstica for desejada, fica a cargo do servidor LDAP implement-la.

66

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Parte Subjetiva
A Epopia
Quando estvamos no terceiro ano do Bacharelado em Cincia da Computao, trabalhvamos na SI (Seo de
Informtica) do IME-USP. ramos encarregados da assistncia tcnica para todo tipo de problema que surgia nos
equipamentos do Instituto. Nosso servio ia desde instalar um sistema Linux em uma mquina e configurar alguns
servios, at trocar uma placa de rede queimada.
Isso no era nenhum trabalho acadmico, mas foi muito construtivo, pois acreditamos que a pessoa tem que ter
conhecimentos gerais em toda rea da computao, incluindo at mesmo a parte tcnica. Tudo ajuda para a formao
do indivduo.
Na poca, quem ocupava o cargo de administrador da rede IME era o ex-BCC Alex Camargo. Um dia ele chegou com
uma proposta para ns: estudar LDAP para uma futura implantao de um servidor no IME, visando integrar a
autenticao dos clientes Windows e Linux/Unix atendidos pela nossa rede.
Na poca, o nosso amigo Paulo Cheque trabalhava conosco no SI e fazia parte de nossa equipe no projeto, mas ele no
est mais entre ns... Hoje ele um fiel discpulo do professor Fabio Kon e faz o seu trabalho de formatura sob a sua
orientao.
No fatdigo dia em que o Alex apresentou para ns a proposta, nunca havamos ouvido falar em LDAP. Ele ento
explicou o que era e comeamos a estudar sobre o assunto. LDAP no era to divulgado na poca como atualmente.
Ele estava numa poca de trevas onde no existia muita documentao, algumas das que existiam eram desatualizadas
e no seguiam nenhum padro. Alm disso, alguns programas que tinham que ser usados no existiam na forma de
pacotes do Debian com suporte a TLS.
Na poca, o Debian havia sido a distribuio Linux escolhida, pois era o padro no Instituto e alm disso ns j
estvamos bem familiarizados com ela. Depois foi decidido que usaramos a distribuio brasileira Kurumin, que tem
compatibilidade com o Debian. Inclusive utiliza os mesmos repositrios de pacotes. Hoje, a que estamos usando a
distribuio Ubuntu, pois apesar de ser relativamente nova, j est bem madura hoje em dia. Alm disso, ela tem pacotes
mais novos e estveis do que os da distribuio original Debian.

Onde est o Paul?


Depois que o Alex deixou o cargo de administrao da rede IME para trabalhar com desenvolvimento em Java, tivemos
outros administradores na rede (e inclusive nenhum por um tempo). Logo aps o Alex, tivemos a breve presena do
Paul na administrao. O Paul ficou to empolgado com o LDAP, que queria implant-lo no dia seguinte na rede, e j
migrar todos os usurios de uma s vez. claro que isso no foi possvel, pois a nossa configurao ainda no estava
muito madura, ainda estvamos trabalhando para que a transio fosse feita minimizando a possibilidade de erros e da
maneira mais transparente possvel para os usurios.
Algo muito estranho que aconteceu que um dia o Paul simplesmente parou de ir para o IME, sem antes avisar. Os
outros funcionrios do SI tentaram entrar em contato com ele, mas simplesmente no o encontraram. At hoje o
paradeiro dele desconhecido. Se voc viu esse homem ou tem qualquer informao que possa ajudar, ou sobre o
paradeiro dele, entre em contado com o SI.
O sumio de Paul deixou a todos no Instituto de "calas curtas", e como a abertura de um novo processo de seleo
levaria mais algum tempo para ser efetuado, ficamos um tempo sem uma pessoa ocupando o cargo de administrador
da Rede IME oficialmente. claro que a rede no ficou largada sua prpria sorte nesse momento, muito pelo contrrio.
Tivemos a colaborao mais do que valiosa de nossos colegas Airton Vilela e Marcelo Modesto, sempre com o auxlio
do prof. Arnaldo Mandel.

67

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Parte Subjetiva

Mas a rede no est mais rf: nosso administrador hoje em dia o Marcelo Succi (SUUUUUUUUUUUUUCCIIIIII!!!!).

Desafios e Frustraes
Para ns realmente foi um desafio comear a trabalhar com LDAP em uma poca em que ele no estava to popular
e no existia tanta documentao a respeito dele. Os pacotes Debian no tinham suporte a TLS, ento era preciso
compilar alguns pacotes, em vez de simplesmente usar o gerenciador de pacotes APT. Hoje esses pacotes j vem com
suporte TLS. Os pacotes do Ubuntu que usamos atualmente tambm possuem suporte a TLS. Isso de vital importncia
para manter a segurana da rede.
Alm disso, os desenvolvedores do OpenLDAP e do Samba adoram modificar os seus arquivos de configurao. Muitas
vezes acontecia de ns apenas atualizarmos os pacotes instalados e o servidor parar de funcionar ou no funcionar
corretamente. Esse um problema que enfrentamos ainda hoje de vez em quando.
Os arquivos de exemplo de alguns pacotes que acompanham as distribuies (Debian, Ubuntu), os encontrados em
documentaes sobre o assunto e at mesmo nos sites oficiais so todos despadronizados. s vezes exemplos encontrados
nos sites oficiais so os mais bagunados, no passando de um monte de linhas de configurao jogadas de qualquer
jeito sem nenhum critrio de organizao.

O pior de tudo so as documentaes que no explicam direito pontos importantes da configurao. Tm at mesmo
configuraes cujos parmetros que vm de padro parecem verdadeiras "Pegadinhas do Mallandro". Se o usurio no
for atento, e deixar a configurao padro que vem com o programa, simplesmente ao reiniciar o computador, corre o
risco de no conseguir logar mais.
A idia inicial do projeto era implantarmos o servio de diretrio LDAP no IME inteiro, mas tivemos vrios contratempos. Um deles era a mudana na administrao da rede. Cada administrador tinha um enfoque diferente e idias
diferentes do que devia ser feito.
Ento, no incio desse semestre, recebemos uma proposta do professor Alexandre Roma, que o responsvel pelo
laboratrio de Matemtica Aplicada. O problema que ele e os usurios do laboratrio enfrentavam era um caso tpico
que requeria o uso de um servio de diretrio LDAP para solucionar os problemas de autenticao. Ele ento deixou
em nossas mos o problema do laboratrio, para que tentssemos resolv-lo.
O plano havia, naquele momento, sido modificado. Ns iramos fazer a implantao do LDAP no laboratrio de
Matemtica Aplicada, o que serviria como uma implantao modelo para o Instituto. A implantao na Rede IME ser
feita pelos seus administradores, mas eles usaro a nossa instalao como base, alm de darmos assessoria para eles.
Apesar da mudana de planos, gostamos bastante do trabalho realizado, pois a nossa implantao e a do IME faro
parte de algo maior: o futuro servio de diretrio da USP.

Erich Soares Machado


Durante o estgio na Seo de Informtica do IME com certeza no faltaram desafios. Alm dos problemas que surgiam
nos equipamentos, que muitas vezes s eram resolvidos com uma soluo criativa, o tempo sempre foi um contra-peso
em relao s atividades que tinham que ser desenvolvidas.
Simplesmente no havia tempo suficiente para tudo. Ento o que se podia fazer era "escalonar" as atividades de acordo
com a prioridade. Durante as provas, no dava para manter a lista de chamados tcnicos em dia, em compensao

68

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Parte Subjetiva

depois era necessrio tirar o atraso. Em casos crticos, como na ocasio em que a rede do Instituto foi atacada por uma
avalanche de vrus que exploravam uma falha de segurana dos sistemas Windows 2000 e XP, todo o tempo livre da
semana era utilizado nesses atendimentos.
Aps um tempo de estgio, os administradores da rede perceberam a nossa vontade em aprender mais do que o que
seria possvel apenas com os atendimentos. Na poca, o administrador era o Alex Camargo, que um ex-aluno do
BCC. Ele sabia que ns teramos que fazer algo de maior profundidade, para que ajudasse em nossa formao acadmica.
Ele estava, na poca, procurando uma maneira de melhorar o gerenciamento da rede do Instituto.
Durante uma reunio com a administrao da rede, o Alex resolveu passar para ns (eu, o Flavio e o Paulo), a tarefa
de pesquisar a soluo que ele estava procurando. No tivemos muita informao a respeito do assunto, ele apenas
disse que seria algo baseado em LDAP e que ele estava planejando implantar na rede do IME, para acabar com problemas
de sincronismo entre as contas dos usurios dos ambientes Windows e Linux/Unix. Como material, recebemos um
exemplar da revista Linux Journal, em que o assunto de capa era justamente o gerenciamento centralizado baseado
em servio de diretrio LDAP.
No incio no fazamos a menor idia do que era LDAP nem servio de diretrio. O contedo da revista que ele nos
passou ajudou a entender o objetivo de forma mais clara, mas era uma matria meramente ilustrativa. A maior parte
do material que conseguamos na poca era resultado de pesquisas na Internet. Naquela poca o material sobre LDAP
era escasso, e o que encontrvamos no tinha uma qualidade muito boa. Ou era tcnico demais, apenas com as
especificaes das RFC's e do protocolo, ou era superficial de forma que no resolvia nossas dvidas sobre o assunto.
Mesmo assim, reunimos informaes suficientes para, depois de muito esforo, colocar o servio pela primeira vez
em funcionamento na nossa mquina de testes (um antigo servidor da rede, IBM NetFinity 5000).
Para ns, o sistema ainda estava funcionando como se fosse um "passe de mgica". Ainda no tnhamos idia do que
muitos parmetros faziam. Somente aps vrias tentativas e instalaes, reunimos informaes suficientes sobre as
principais configuraes e comeamos a escrever o nosso "manual de instalao".
Vimos que era necessrio uma fonte de informao mais embasada para entender certos aspectos e conceitos relacionados
ao servio de diretrio que estvamos implantando. Foi quando descobrimos o livro LDAP System Administration de
Gerald Carter, publicado pela editora O'Reilly. A princpio iramos comprar o livro com recursos prprios, mas aps
uma conversa com o pessoal do SI, vimos a possibilidade de utilizar uma verba que estava disponvel para a nossa
seo para realizar essa aquisio. Foi tambm mais ou menos nessa poca que o Paulo decidiu deixar o projeto.
Mesmo depois que j tnhamos um conhecimento mais aprofundado, e demonstramos os testes que fizemos no laboratrio
com algumas poucas mquinas que nos foram disponibilizadas, enfrentamos problemas para implantar o servio na
rede do IME, j que esse era o objetivo do nosso projeto. Aps a sada do Alex do cargo de administrao, a prioridade
do projeto de implantao passou a ter um carter indefinido.
Em um dado momento, o administrador seguinte, o Paul, queria colocar todas as contas dos usurios do Instituto no
nosso servidor de testes. Isso parecia perigoso demais, j que apesar dos testes que havamos feito no laboratrio, a
dimenso da rede do IME era incomparvel. De qualquer maneira, no tivemos tempo para realizar a loucura, pois o
Paul desapareceu sem deixar vestgios...
Depois, a espera sempre tinha um motivo diferente: uma hora era pelo futuro administrador, j que ele teria que
acompanhar a nossa instalao, outra hora por um novo servidor, j que as mquinas que tnhamos disponveis no
iriam suportar a carga da rede inteira a longo prazo.
Mesmo assim, as experincias que desenvolvemos no foram em vo. A documentao que criamos vai ajudar os
administradores da Rede IME a implantar o servio de forma definitiva em um futuro prximo, e tambm pudemos
transformar o nosso ambiente de testes em uma implantao real dentro do prprio Instituto, atravs de uma oportunidade
que surgiu no Departamento de Matemtica Aplicada, graas ao Prof. Alexandre Roma.
De uma forma geral, gostei bastante do contato que tivemos com administrao de redes, e espero continuar meus
estudos nessa rea tambm. Pretendo estudar para as provas de certificao, aproveitando o fato de que LDAP e

69

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Parte Subjetiva

autenticao de redes so os assuntos da prova de nvel mais avanado do LPI (Linux Professional Institute), para a
certificao de administradores de rede Linux avanados. claro que ainda terei que estudar muito para obter essa
certificao, pois o contedo dos nveis I e II, que so pr-requisitos para o nvel III, muito mais abrangente do que
esse assunto que estudamos. No entanto, o fato de ter surgido um exame de certificao sinaliza que esse conhecimento
est sendo valorizado pelo mercado de trabalho atual.
Tambm desenvolvi interesses na rea de desenvolvimento de sistemas, atravs de paradigmas orientados a objetos e
mtodos geis, e pretendo estudar estes tpicos no futuro.

Disciplinas cursadas no BCC mais relevantes para o


trabalho
MAC0110 - Introduo
Computao

a primeira matria de programao do curso e os conceitos apresentados aqui


so fundamentais para compreender a lgica do computador. Tambm tem uma
participao significativa como incentivo para os alunos no incio da graduao.

MAC0211 - Laboratrio de
Programao I

Aprendemos a trabalhar com as ferramentas de programao e de produtividade,


como o shell do Linux. Tambm desenvolvemos o primeiro projeto em equipe.

MAC0242 - Laboratrio de
Programao II

Os primeiros passos em orientao a objetos (pelo menos para a nossa turma)


e programao com scripts, o que muito importante em administrao de redes.
Essa matria foi uma das que mais ajudou a cultivar o conhecimento de
programao que obtive na graduao.

MAC0323 - Estruturas de Dados

Fundamental para compreender as estruras de armazenamento e o seu


processamento. Com certeza um pr-requisito para o desenvolvimento de nosso
projeto de formatura.

MAC0422 - Sistemas Operacionais

O conhecimento adquirido nessa matria ajudou a compreender como os sistemas


evoluram e funcionam nos dias atuais. Fundamental para entender o
funcionamento dos servios de rede.

MAC0426 - Sistemas de Bancos de


Dados

Os modelos de dados, o seu armazenamento e recuperao esto intimamente


relacionados com a proposta do nosso projeto, por isso essa disciplina teve
importncia chave durante o desenvolvimento do trabalho de formatura e da
monografia.

MAC0438 - Programao
Concorrente

Os modelos de concorrncia tm presena constante atualmente, principalmente


em sistemas de rede e distribudos, j que existem vrios usurios acessando a
atualiando as mesmas informaes simultaneamente. Uma das matrias mais
interessantes do curso.

MAC0441 - Programao Orientada Orientao a objetos um paradigma que ajuda a resolver muitos problemas da
a Objetos
rea da computao e, com criatividade, at de outras reas. Essa matria com
certeza nos ajuda a sair com mais preparo para o mercado de trabalho e com a
viso mais aberta a novos conceitos. difcil acreditar que ela no obrigatria
para a graduao.
MAC0448 - Programao para Redes Essencial para quem quiser ter experincia com a programao em ambientes
de Computadores
de rede. Essa matria foi um timo exerccio para os conceitos apresentados em
PCS0210.

70

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Parte Subjetiva

PCS0210 - Redes de Computadores

Apresenta os conceitos necessrios a qualquer pessoa que queira atuar na rea


de redes de computadores. Seus conhecimentos so teis no apenas na rea de
programao para redes, como na rea de administrao de redes.

MAC0433 - Administrao de
Sistemas Unix *

* Gostaria muito de ter feito essa matria como optativa eletiva, mas infelizmente
no consegui aproveitar o oferecimento dela em um semestre que tivesse horrio
compatvel. Espero ter a oportunidade de freqent-la no futuro, mesmo que
como ouvinte.

Flavio da Silva Mori Junior


Fazer esse trabalho de formatura foi uma verdadeira Epopia, no s pelo tempo que levamos como pelas dificuldades
que encontramos.
A proposta do Alex foi muito interessante para ns, pois alm de ser uma rea do nosso interesse, tambm poderamos
comear a desenvolver o nosso trabalho de formatura com antecedncia. Essa antecedncia foi boa, pois nos deu mais
tempo para entrarmos em contato com os assuntos relacionados e pesquisarmos. Porm, isso tambm fez enfrentarmos
mais desafios, como por exemplo, as documentaes existentes no incio do nosso trabalho, que no eram to atualizadas
e detalhadas como as existentes atualmente.
Alm disso, alguns programas que usamos no tinham pacotes APT com suporte TLS, o que nos obrigava a compillos. Algo que achei legal foi que o perodo do desenvolvimento do nosso trabalho de formatura foi mais ou menos o
mesmo do LDAP tornar-se popular.
O que me impressionou, foi ver como a maioria das equipes que desenvolvem software livre no se preocupa em fazer
uma documentao decente. Alm de no explicar pontos crticos, elas possuem exemplos despadronizados e sem
nenhuma organizao. Vrias vezes, quando tnhamos implantado algum servio, descobramos que havia um outro
modo melhor de faz-lo.
No incio, principalmente, foi uma verdadeira batalha o nosso trabalho no SI. J que dividamos o tempo de atender
chamados com o de pesquisa do LDAP, muitas vezes ficvamos atolados em chamados. Computadores necessitando
manuteno, instalao de programas e sempre um vrus novo ameaando a segurana da Rede IME.
Depois que paramos de trabalhar no SI e continuamos somente com o projeto de formatura, tivemos mais tempo, mas
mesmo assim nem tanto, afinal tnhamos as outras matrias para fazer.
Um dos nossos objetivos que essa monografia sirva de base para pesquisa para pessoas que esto iniciando no LDAP.
Para escrevermos ela, utilizamos um formato chamado DocBook, que o formato em que o TLDP (The Linux
Documentation Project) aceita as documentaes e em que os livros da O'Reilly so escritos. Portanto, tambm tivemos
que aprender DocBook, mas com certeza valeu a pena, pois esse formato muito bom para se escrever artigos, livros
e documentaes.
No incio, fazamos regularmente reunies com o Arnaldo para explicarmos as caractersticas do LDAP e como ele
poderia atender s necessidades da rede. Ento o Arnaldo nos dizia os requisitos que deveriam ser atendidos e deixvamos
combinado que iramos pesquisar sobre algum assunto.
Alm dessas reunies com o Arnaldo, que o supervisor da rede, tambm fazamos reunies o Alex, que na poca era
o administrador da rede.
Depois do Alex, tivemos mais dois administradores de rede: o Paul, que no sabemos o que aconteceu com ele aps
o seu surto de empolgao com o LDAP, e o Succi, o administrador atual.

71

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Parte Subjetiva

Essas mudanas na administrao tambm foram desafiadoras para ns. Tnhamos que chegar a um acordo entre as
idias do Arnaldo e a dos administradores, j que cada vez era um diferente. Passou-se at mesmo uma poca entre o
Paul e o Succi em que a rede ficou sem administrador.
O Marcelo e o Airton, que veio do CEC para o SI, tambm acompanharam o desenvolver do nosso trabalho.
De uma forma geral, o trabalho com o Erich e os outros membros do SI fluiu bem. Aprendemos com isso a ter jogo
de cintura e a trabalhar em equipe.
Eu gosto da rea de gerenciamento de redes, pois atualmente todo sistema grande de computao em qualquer empresa
envolve uma rede de computadores. O servio de diretrio do LDAP vem de uma idia muito boa de centralizao de
informao. Sabemos que no mundo de hoje, o armazenamento e gerenciamento de informao algo vital,
principalmente com a demanda crescente pelo seu acesso.
Eu provavelmente vou querer seguir a minha vida profissional na rea de conhecimento relacionada com o trabalho
de formatura. Alm do LDAP propriamente dito, em reas relacionadas a gerenciamento de rede, banco de dados e
segurana.
Eu pretendo prestar as provas da LPI. At mesmo porque a terceira prova cobra muito do conhecimento que usamos
no nosso trabalho: autenticao, Samba e LDAP. Uma outra certificao muito boa para gerenciamento de redes, que
eu viso fazer, a da CISCO. Alm disso, tambm quero outras certificaes relacionadas a outras reas, como a de
Java.

Disciplinas do BCC Mais Relevantes


MAC0110 - Introduo
Computao

atravs dessa matria que temos o primeiro contato com a computao na


faculdade. Com certeza essa matria pre-requisito para todas as outras, pois
introduz conceitos importantes que usamos ao longo da faculdade.

MAC0211 - Laboratrio de
Programao I

Nessa matria aprendemos ferramentas de linha de comando do Linux. Esse


conhecimento indispensvel para a administrao de uma rede de computadores.

MAC0242 - Laboratrio de
Programao II

Aprendemos programao com scripts. O uso de scripts so fundamentais para


a implantao do servio de diretrio assim como de vrios outros servios de
rede.

MAC0323 - Estruturas de Dados

A estrutura da DIT (Directory Information Tree) uma estrutura de dados em


que so representadas as informaes do diretrio. uma estrutura de rvore
hierrquica. Essa matria ajudou a conhecermos a estrutura de dados de rvore
e outras estruturas que so usadas no servio de diretrio LDAP.

MAC0332 - Engenharia de Software Nessa matria aprendemos como fazer a anlise e especificao de requisitos e
tambm testes, necessrios para esse nosso projeto.
MAC0426 - Sistemas de Bancos de
Dados

As informaes do servio de diretrio so armazenados em uma base de dados


que funciona como backend. Nessa matria aprendemos os conceitos de bancos
de dados necessrios para o entendimento de como funciona o armazenamento
das informaes.

MAC0422 - Sistemas Operacionais

O objetivo do nosso trabalho autenticao integrada de diferentes sistemas


operacionais em uma rede de computadores. Com essa matria, entendemos
melhor a diferena entre o funcionamento dos diferentes sistemas operacionais.

72

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Parte Subjetiva

MAC0448 - Programao para Redes Essas matrias ajudaram a entender melhor como funciona uma rede de
de Computadores e PCS0210 - Redes computadores. Foram inmeros tpicos fundamentais para desenvolvermos
de Computadores
nosso trabalho de formatura, como TCP/IP, servios de rede e segurana de
dados.
MAC0441 - Programao Orientada Na implementao do servidor LDAP existem vrios conceitos de programao
a Objetos e MAC0413 - Tpicos de orientada a objeto. Por exemplo: uma entrada do diretrio pertence a uma ou
Programao Orientada a Objetos
mais classes, que determinam quais os atributos a entrada tem. Alm disso, essas
matrias ensinaram a gente como organizar um projeto.
FLC0474 - Lngua Portuguesa

Essa matria importante, pois sem saber o uso correto da lngua portuguesa,
no seria possvel escrever essa monografia!

Agradecimentos
Agradecemos primeiramente ao professor Arnaldo Mandel, o nosso orientador nesse trabalho de formatura. Nas reunies
que tnhamos com ele eram levantados requisitos importantes para serem analisados. Isso serviu como uma linha-guia
para o nosso projeto.
Tambm agradecemos ao Alex Camargo, pois foi ele quem teve a iniciativa de implantar LDAP no IME e nos apresentou
a proposta do trabalho. Foi atravs dele que tivemos o contato inicial com LDAP.
Tambm agradecemos aos funcionrios do SI, que sempre estiveram conosco desde a poca em que trabalhvamos
como tcnicos. Eles sempre estiveram acompanhando o desenvolver do nosso trabalho. O Marcelo Modesto at mesmo
foi em um workshop sobre LDAP conosco e o Airton Vilela de Oliveira tem nos acompanhado muito ultimamente.
Ao professor Alexandre Megiorin Roma, que teve a confiana de deixar sob nossa administrao o laboratrio de
Matemtica Aplicada, o qual ele o responsvel.
Agradecemos a todos os amigos que conhecemos na faculdade e tambm aos bons professores que fazem parte do
corpo docente do IME (Carlos Eduardo Ferreira, Joo Eduardo Ferreira, Jos Coelho de Pina Jnior, Siang Wun Song,
entre outros).
As ilustraes presentes nesta monografia foram feitas por uma amiga nossa chamada Camila Torrano e por isso
agradecemos a ela.
Tambm no podemos deixar de agradecer s nossas famlias e s nossas maravilhosas namoradas, Fabiana Vidoto e
Karina Andrade, que sempre estiveram ao nosso lado, ajudando a liberar a tenso e agentando a gente quando estvamos
sob grande presso na faculdade!!!

73

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Glossrio
A
ACL's - Access Control Lists

Definem quem tem qual nvel de acesso a qual informao no diretrio LDAP.

Active Directory

Implementao do servio de diretrio da Microsoft, que possui suporte a LDAP.

B
backend

uma base de dados. Esse termo est relacionado ao termo front-end, que
aplicao que acessa a base de dados.
Ver Tambm Banco de dados.

Banco de dados

Conjunto de dados com uma estrutura definida para organizar informaes.


Normalmente gerenciado por um SGBD.
Ver Tambm SGBD - Sistema Gerenciador de Banco de Dados.

C
CA - Certificate Authority

CA's so entidades responsveis por emitir certificados digitais para terceiros.


Essas autoridades so tpicas de esquemas de Infra-estrutura de Chaves Pblicas
(ICP).
Ver Tambm ICP - Infra-estrutura de Chaves Pblicas.

CUPS - Common Unix Printing


System

Sistema que fornece uma camada de impresso portvel para sistemas operacionais
Unix.

D
daemon
DAP Protocol

Processo que roda em background e realiza uma funo especfica ou uma tarefa
relacionada ao sistema.
Directory

Access

Protocolo para acessar servios de diretrio X.500, que funciona sobre a pilha de
protocolos OSI.
Ver Tambm LDAP - Lightweight Directory Access Protocol.

Diretrio

Repositrio de informaes sobre objetos, organizados segundo um critrio que


facilite a sua consulta.
Ver Tambm Servio de diretrio.

DIT - Directory Information


Tree

Estrutura de rvore hierrquica em que so organizadas as entradas do servio de


diretrio LDAP.

DN - Distinguished Name

Atributo de uma entrada em um diretrio LDAP usado para se referir a uma entrada
sem ambigidade.
Ver Tambm Diretrio.

DNS - Domain Name System

Um servio de diretrio distribudo que faz o mapeamento entre o os hostnames


e endereos IP.

74

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Glossrio

Ver Tambm Servio de diretrio.

I
ICP - Infra-estrutura de Chaves
Pblicas

Uma Infra-Estrutura de Chaves Pblicas um rgo ou inciativa pblica ou privada


que tem como objetivo manter uma estrutura de emisso de chaves pblicas,
baseando-se no princpio da terceira parte confivel, oferecendo uma mediao de
acreditao e confiana em transaes entre partes que utilizam certificados digitais.

IP - Internet Protocol

Protocolo que roteia os pacotes de dados de uma mquina a outra.

IPC
Inter-Process
Communication

Grupo de mecanismos que permite aos processos transferirem informao entre


si.

L
LDAP - Lightweight Directory
Access Protocol

Protocolo leve para acessar servios de diretrio baseados nos padres X.500, que
funciona sobre a suite de protocolos TCP/IP. considerado leve em comparao
com o protocolo DAP, do qual se originou.
Ver Tambm DAP - Directory Access Protocol.

LDIF - LDAP Interchange


Format

Formato padro de arquivo texto para armazenamento de informaes de


configurao e contedos de diretrios LDAP.
Ver Tambm LDAP - Lightweight Directory Access Protocol.

N
NFS - Network File System

Sistema de arquivo projetado para compartilhar arquivos entre hosts Unix.

NSS - Name Service Switch

Framework que fornece um servio que permite aos administradores especificarem


em quais arquivos ou servios de diretrio sero realizadas pesquisas de nomes,
no ambiente Linux/Unix.

O
OpenLDAP

Uma sute de aplicativos LDAP open-source.


Ver Tambm LDAP - Lightweight Directory Access Protocol.

OSI - Open
Interconnection

Systems

OU - Organizational Unit

Modelo de referncia desenvolvido pela ISO (International Standards Organization)


para que os fabricantes pudessem criar protocolos a partir desse modelo.
Usado para representar uma unidade organizacional, por exemplo usurios, grupos,
computadores, etc, em um diretrio LDAP.
Ver Tambm Diretrio.

P
PA M
Pluggable
Authentication Modules

Framefork que permite desenvolvedores e administradores personalizarem os


servios usados para autenticar usurios.

75

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Glossrio

PDC - Primary
Controller

Domain

um servidor Windows responsvel por manipular todas as contas em um domnio.


Ele quem autentica os usurios.

POSIX - Portable Operating


System Interface X

Ramo do IEEE (Institute of Electrical and Electronics Engineers) cujo objetivo


padronizar os comandos, chamadas de sistema e bibliotecas de interface.

S
SAM Manager

Security

Account

Base de dados que armazena as informaes de usurios do domnio Windows.


Ver Tambm Samba.

Samba

Sute de aplicativos open-source que fornece servios de rede a clientes SMB/CIFS


(incluindo vrias verses do Microsoft Windows) em hosts Linux.
Ver Tambm SMB - Server Message Block.

SASL

Mecanismo genrico de autenticao que pode ser integrado em uma variedade


de protocolos.
Ver Tambm TLS.

schema's

Arquivos que definem qual tipo de informao poder ser armazenada no diretrio.

Servio de diretrio

um servio de armazenamento de informaes otimizado para busca e leitura.

SGBD - Sistema Gerenciador de


Banco de Dados

Conjunto de programas responsveis pelo gerenciamento de um banco de dados.


O principal objetivo retirar da aplicao cliente a responsabilidade de gerenciar
o acesso, manipulao e organizao dos dados.
Ver Tambm Banco de dados.

SID - Security Identifier

Identificador nico atribudo a todos os elementos de um domnio Windows


(usurio, grupo ou computador).

slapd

daemon da sute de aplicativos OpenLDAP que implementa o servidor LDAP.


Ver Tambm OpenLDAP.

slurpd

daemon da sute de aplicativos OpenLDAP usado para fornecer um servio


replicado de diretrio.

SMB - Server Message Block

Protocolo para o compartilhamento de arquivos, impressoras e portas seriais entre


computadores. Funciona segundo os modelos cliente-servidor e requisio-resposta.
Ver Tambm Samba.

SQL - Structured
Language

Linguagem de consulta estruturada para bancos de dados relacionais.


Ver Tambm Samba.

Query

SSL - Secure Sockets Layer

Protocolo projetado para fornecer criptografia de dados e autenticao entre um


cliente e um servidor sobre TCP/IP. a base do protocolo TLS.
Ver Tambm TLS.

T
TLS

Protocolo projetado para fornecer criptografia de dados e autenticao entre um


cliente e um servidor sobre TCP/IP.
Ver Tambm SSL - Secure Sockets Layer.

76

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Glossrio

Transao

uma operao all-or-nothing, ou seja, que s deve ser realizada totalmente, no


podendo ser concluida parcialmente.
Ver Tambm Samba.

Trava de escrita

usada em sistemas, como sistemas gerenciadores de bancos de dados, para evitar


que mais de uma pessoa edite o mesmo arquivo ao mesmo tempo.
Ver Tambm SGBD - Sistema Gerenciador de Banco de Dados.

X
X.500

Um conjunto de padres para servios de diretrio.


Ver Tambm DAP - Directory Access Protocol.

77

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Bibliografia
[LSA03] LDAP System Administration [http://www.oreilly.com/catalog/ldapsa/index.html]. Gerald Carter. O'Reilly
Media, Inc.Maro de 2003. Primeira Edio. ISBN 1-56592-491-6.
[OAG05] OpenLDAP Software 2.3 Administrator's Guide [http://www.openldap.org/doc/admin23/]. The OpenLDAP
Project.9 de Agosto de 2005.
[ULD04] Using LDAP for Directoty Integration. Steven Tuttle, Kedar Godbole, e Grant McCarthy. IBM.Fevereiro de
2004. Segunda Edio. SG24-6163-01.
[PPG05] Plug-in Programmer's Guide [http://www.redhat.com/docs/manuals/dir-server/plugin/7.1/titlepg.html]. Red
Hat Directory Server. Red Hat, Inc.26 de Maio de 2005. Verso 7.1.
[LAH02] Linux Administration Handbook. Evi Nemeth, Garth Snyder, e Trent R. Hein. Prentice Hall PTR.2002.
Primeira Edio. ISBN 0-13-008466-2.
[FDL02] Licena de Documentao Livre GNU [http://www.ic.unicamp.br/~norton/fdl.html]. Norton T. Roman e Joo
S. O. Bueno Calligaris. Free Software Foundation, Inc.Novembro de 2002. Verso 1.2.
[

S 0 3 ]
W h a t
i s
T L S / S S L ?
[http://technet2.microsoft.com/WindowsServer/en/library/ed5ae700-e05e-45ef-b536-45795dbb99a21033.mspx?mfr=true].
Copyright 2006 Microsoft Corporation. Microsoft TechNet.28 de Maro de 2003.

78

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/

Você também pode gostar