Escolar Documentos
Profissional Documentos
Cultura Documentos
Manografia OPENLDAP
Manografia OPENLDAP
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].
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
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
Lista de Tabelas
2.1. Nveis de log do OpenLDAP .......................................................................................................... 17
A.1. Nveis de acesso das ACL's ........................................................................................................... 56
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
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.
Introduo
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
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.
Transaes so operaes all-or-nothing, ou seja, que s devem ser realizadas totalmente, no podendo ser concludas parcialmente.
Introduo
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]].
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.
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.
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.
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.
Introduo
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.
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).
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.
Introduo
O servio pode ser local, assim um servidor LDAP rodando em uma mquina fornece servio de diretrio
apenas para o domnio local.
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".
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.
10
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
Instalao
Execute os seguintes comandos para instalar o pacote necessrio no servidor:
1.
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
Linhas com espaos em branco na primeira coluna sero consideradas como continuao da linha
anterior.
13
/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
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
cosine.schema
nis.schema
inetorgperson.schema
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
modulepath
caminho
16
Carrega um determinado mdulo. No caso estamos carregando o mdulo que dar suporte
backend BDB (Sleepycat Berkeley Database v4).
Chamadas de funes
Depurao detalhada
Gerenciamento da conexo
16
32
64
128
256
512
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
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.
18
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
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
3.
rootdn
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
mode
cachesize
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
Dica
Ao finalizar a configurao do seu arquivo /etc/ldap/slapd.conf, execute o comando slaptest
para verificar se est tudo certo:
21
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:
22
Copie o arquivo da chave privada sem senha para o diretrio /etc/ssl/private, seguindo
tambm esse padro:
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.
# 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
24
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.
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].
25
Integrao
1.
Aqui voc precisa informar qual a raiz (ou base) do diretrio LDAP.
26
Integrao
3.
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
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.
28
Integrao
7.
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
Integrao
/etc/nsswitch.conf
#
#
#
#
passwd:
group:
shadow:
compat ldap
compat ldap
compat ldap
hosts:
networks:
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.
O pacote libpam-ldap dever ser instalado junto com o pacote libnss-ldap normalmente, no entanto,
caso isso no ocorra execute o seguinte comando:
30
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].
31
Integrao
2.
32
Integrao
4.
33
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.
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
Integrao
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
Integrao
password
password
#
#
#
#
#
#
#
#
9.
sufficient pam_ldap.so
required
pam_unix.so nullok obscure min=4 max=8 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
36
Integrao
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
Integrao
Execute o seguinte comando para instalar os pacotes necessrios no servidor que disponibilizar o
Samba:
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
Integrao
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.
39
Integrao
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
40
Integrao
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
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:
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:
41
Integrao
Depois execute o comando abaixo para extrair o arquivo necessrio para o local correto:
# 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:
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:
Como alteramos as configuraes dos ndices da base de dados, teremos que reconstru-los. Para isso,
primeiro pare o servio slapd:
42
Integrao
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:
[ 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:~$
conf
usuario@sambaserver:~$
bind.conf
usuario@sambaserver:~$
bldap.conf
usuario@sambaserver:~$
bldap_bind.conf
43
Integrao
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:
44
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)
45
Integrao
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
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
Integrao
48
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
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.
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
slapcat
slaptest
slapindex
slappasswd
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
Ferramentas de gerenciamento
Existe uma relao um-para-um entre essas ferramentas e as operaes do protocolo LDAP.
ldapadd
ldapmodify
ldapcompare
ldapdelete
ldapmodrdn
ldappasswd
ldapsearch
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
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
migrate_group.pl
migrate_hosts.pl
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
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.
52
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.
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
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:
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.
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:
54
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
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:
*
self
anonymous
users
expresso regular
A seguir est uma tabela que resume os vrios nveis de acesso. Nveis maiores possuem todas as capacidades
de nveis abaixo deles.
read
search
compare
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.
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.
56
ACL's
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
Definio do LDIF
Um arquivo LDIF :
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
Arquivo LDIF
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
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:
60
Arquivo LDIF
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
62
63
64
65
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
Search buscar
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
Modify modificar
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
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
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.
67
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.
68
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
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.
MAC0211 - Laboratrio de
Programao I
MAC0242 - Laboratrio de
Programao II
MAC0438 - Programao
Concorrente
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
Parte Subjetiva
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.
71
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.
MAC0211 - Laboratrio de
Programao I
MAC0242 - Laboratrio de
Programao II
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
72
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
Glossrio
A
ACL's - Access Control Lists
Definem quem tem qual nvel de acesso a qual informao no diretrio LDAP.
Active Directory
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
C
CA - Certificate Authority
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
DN - Distinguished Name
Atributo de uma entrada em um diretrio LDAP usado para se referir a uma entrada
sem ambigidade.
Ver Tambm Diretrio.
74
Glossrio
I
ICP - Infra-estrutura de Chaves
Pblicas
IP - Internet Protocol
IPC
Inter-Process
Communication
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.
N
NFS - Network File System
O
OpenLDAP
OSI - Open
Interconnection
Systems
OU - Organizational Unit
P
PA M
Pluggable
Authentication Modules
75
Glossrio
PDC - Primary
Controller
Domain
S
SAM Manager
Security
Account
Samba
SASL
schema's
Arquivos que definem qual tipo de informao poder ser armazenada no diretrio.
Servio de diretrio
slapd
slurpd
SQL - Structured
Language
Query
T
TLS
76
Glossrio
Transao
Trava de escrita
X
X.500
77
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