Sei sulla pagina 1di 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 schemacheck # servio pidfile argsfile loglevel modulepath moduleload # segurana allow

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

/var/run/slapd/slapd.pid /var/run/slapd/slapd.args 296 /usr/lib/ldap back_bdb

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. O schema cosine.schema pr-requisito do nis.schema. Contm a estrutura de atributos bsica para armazenar informaes de autenticao de usurios Linux/Unix. Especifica os atributos utilizados para armazenar informaes de catlogo de endereos (informaes sobre os usurios).

cosine.schema nis.schema

inetorgperson.schema

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 loglevel modulepath moduleload

/var/run/slapd/slapd.pid /var/run/slapd/slapd.args 296 /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. Especifica o diretrio onde esto os mdulos que sero carregados dinmicamente.

modulepath caminho

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 0 1 2 4 8 16 32 64 128 256 512 Todas as informaes de log Nenhuma informao de log Chamadas de funes Depurao do manuseamento dos pacotes Depurao detalhada Gerenciamento da conexo Pacotes enviados e recebidos Processamento do filtro de pesquisa Processamento do arquivo de configurao Processamento das listas de controle de acesso Estatsticas para conexo, operaes e resultados 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. 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. 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. 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 (appr oximate) 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.

suffix

directory

index

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. 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. 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. 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. 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. Parmetro para melhorar a performance do banco de dados. Especifica quantas entradas devem ser armazenadas em cache na memria.

rootpw

lastmod

mode

cachesize

3.

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 /etc/ssl/certs/ssl-cert-ldapserver.pem /etc/ssl/certs/ssl-cert-ldapserver.pem /etc/ssl/private/ssl-cert-ldapserver.key

TLSCACertificateFile TLSCertificateFile TLSCertificateKeyFile

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 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. 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. compat ldap compat ldap compat ldap files dns mdns files db db db db nis files files files files

passwd: group: shadow: hosts: networks: protocols: services: ethers: rpc: netgroup:

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. sufficient pam_ldap.so required pam_unix.so nullok obscure min=4 max=8 md5

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

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 /etc/ssl/certs/ssl-cert-ldapserver.pem

TLS_CACERT

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
Resumo

Ferramentas

de

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 slapcat slaptest slapindex slappasswd L registros LDIF de um arquivo ou entrada padro e escreve as novas entradas na base de dados slapd. L entradas da base de dados slapd e as escreve em um arquivo ou sada padro. Verifica a sintaxe do arquivo /etc/ldap/slapd.conf. Regenera os ndices em uma base de dados slapd. 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 ldapmodify ldapcompare ldapdelete ldapmodrdn ldappasswd ldapsearch Adiciona entradas (no formato LDIF) em em diretrio LDAP. Alteras entradas LDAP existentes. Verifica se uma entrada possui um dado valor de atributo. Apaga entradas LDAP. Renomeia (altera o RDN) uma entrada LDAP existente. Altera o password de uma entrada. 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 migrate_group.pl migrate_hosts.pl Migra usurios do arquivo /etc/passwd. Migra grupos do arquivo /etc/group. 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: R: Existe outra maneira de realizar a integrao com redes Windows? 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]. 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? 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.

P: R:

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: * self anonymous users expresso regular Qualquer usurio conectado, incluindo conexes annimas. O DN do usurio atualmente conectado. Conexes de usurios no autenticadas. Conexes de usurios autenticadas. 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 read search compare auth none Acesso para atualizar valores de atributos Acesso para ler resultados de buscas Acesso para aplicar filtros de busca Acesso para comparar atributos 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 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. Encerra uma sesso LDAP.

Unbind encerrar sesso 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 Modify modificar Delete apagar Modrdn modificar RDN Abandon abandonar Adiciona uma nova entrada no diretrio. Modifica uma entrada existente. O servidor recebe o DN da entrada a ser modificada e as modificaes a serem feitas. Apaga uma entrada existente. O servidor recebe o DN da entrada a ser apagada do diretrio. 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. 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. Aprendemos a trabalhar com as ferramentas de programao e de produtividade, como o shell do Linux. Tambm desenvolvemos o primeiro projeto em equipe. 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. Fundamental para compreender as estruras de armazenamento e o seu processamento. Com certeza um pr-requisito para o desenvolvimento de nosso projeto de formatura. 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. 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. 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.

MAC0211 - Laboratrio de Programao I MAC0242 - Laboratrio de Programao II

MAC0323 - Estruturas de Dados

MAC0422 - Sistemas Operacionais

MAC0426 - Sistemas de Bancos de Dados

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

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. * 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.

MAC0433 - Administrao de Sistemas Unix *

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 MAC0211 - Laboratrio de Programao I MAC0242 - Laboratrio de Programao II MAC0323 - Estruturas de Dados 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. Nessa matria aprendemos ferramentas de linha de comando do Linux. Esse conhecimento indispensvel para a administrao de uma rede de computadores. 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. 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. 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.

MAC0422 - 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 Active Directory Definem quem tem qual nvel de acesso a qual informao no diretrio LDAP. 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. Conjunto de dados com uma estrutura definida para organizar informaes. Normalmente gerenciado por um SGBD. Ver Tambm SGBD - Sistema Gerenciador de Banco de Dados.

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. Sistema que fornece uma camada de impresso portvel para sistemas operacionais Unix.

CUPS - Common Unix Printing System

D
daemon DAP Protocol Diretrio Directory Access Processo que roda em background e realiza uma funo especfica ou uma tarefa relacionada ao sistema. Protocolo para acessar servios de diretrio X.500, que funciona sobre a pilha de protocolos OSI. Ver Tambm LDAP - Lightweight Directory Access Protocol. Repositrio de informaes sobre objetos, organizados segundo um critrio que facilite a sua consulta. Ver Tambm Servio de diretrio. Estrutura de rvore hierrquica em que so organizadas as entradas do servio de diretrio LDAP. Atributo de uma entrada em um diretrio LDAP usado para se referir a uma entrada sem ambigidade. Ver Tambm Diretrio. Um servio de diretrio distribudo que faz o mapeamento entre o os hostnames e endereos IP.

DIT - Directory Information Tree DN - Distinguished Name

DNS - Domain Name System

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. Protocolo que roteia os pacotes de dados de uma mquina a outra. Grupo de mecanismos que permite aos processos transferirem informao entre si.

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. Formato padro de arquivo texto para armazenamento de informaes de configurao e contedos de diretrios LDAP. Ver Tambm LDAP - Lightweight Directory Access Protocol.

LDIF - LDAP Interchange Format

N
NFS - Network File System NSS - Name Service Switch Sistema de arquivo projetado para compartilhar arquivos entre hosts Unix. 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 OSI - Open Interconnection Systems Uma sute de aplicativos LDAP open-source. Ver Tambm LDAP - Lightweight Directory Access Protocol. 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.

OU - Organizational Unit

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. Ramo do IEEE (Institute of Electrical and Electronics Engineers) cujo objetivo padronizar os comandos, chamadas de sistema e bibliotecas de interface.

POSIX - Portable Operating System Interface X

S
SAM Manager Samba Security Account Base de dados que armazena as informaes de usurios do domnio Windows. Ver Tambm 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. Mecanismo genrico de autenticao que pode ser integrado em uma variedade de protocolos. Ver Tambm TLS. Arquivos que definem qual tipo de informao poder ser armazenada no diretrio. um servio de armazenamento de informaes otimizado para busca e leitura. 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. Identificador nico atribudo a todos os elementos de um domnio Windows (usurio, grupo ou computador). daemon da sute de aplicativos OpenLDAP que implementa o servidor LDAP. Ver Tambm OpenLDAP. daemon da sute de aplicativos OpenLDAP usado para fornecer um servio replicado de diretrio. Protocolo para o compartilhamento de arquivos, impressoras e portas seriais entre computadores. Funciona segundo os modelos cliente-servidor e requisio-resposta. Ver Tambm Samba. Linguagem de consulta estruturada para bancos de dados relacionais. Ver Tambm Samba. 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.

SASL

schema's Servio de diretrio SGBD - Sistema Gerenciador de Banco de Dados

SID - Security Identifier slapd slurpd SMB - Server Message Block

SQL - Structured Language

Query

SSL - Secure Sockets Layer

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. 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.

Trava de escrita

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. [ T L 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/

Potrebbero piacerti anche