Você está na página 1de 46

RONALDO LOURO MENEGUITE

OUTROS TRABALHOS EM:


www.projetoderedes.com.br

LDAP AUTENTICAO CENTRALIZADA

BACHARELADO EM SISTEMAS DE INFORMAO

FACULDADES UNIFICADAS DOCTUM DE CATAGUASES


CATAGUASES MG BRASIL
2009
RONALDO LOURO MENEGUITE

LDAP AUTENTICAO CENTRALIZADA

Trabalho de Concluso de Curso apresentado


Banca Examinadora das Faculdades
Unificadas Doctum de Cataguases como
requisito parcial para a obteno do ttulo de
Bacharel em Sistemas de Informao, sob a
orientao do Prof. Marlia das Dores de
Barros.

FACULDADES UNIFICADAS DOCTUM DE CATAGUASES


CATAGUASES MG BRASIL
2009
RONALDO LOURO MENEGUITE

LDAP AUTENTICAO CENTRALIZADA

Trabalho de Concluso de Curso apresentado


Banca Examinadora das Faculdades
Unificadas Doctum de Cataguases como
requisito parcial para a obteno do ttulo de
Bacharel em Sistemas de Informao.

BANCA EXAMINADORA

_____________________________________________
Profa. Marlia das Dores de Barros. Orientadora
Faculdades Unificadas Doctum de Cataguases

_____________________________________________
Prof. Norberto da Silva Prado
Faculdades Unificadas Doctum de Cataguases

_____________________________________________
Prof. Frands de Souza Franco
Faculdades Unificadas Doctum de Cataguases

CATAGUASES MG BRASIL
2009
Dedico este trabalho memria de meu
querido av Olvio Silveira Louro, que
certamente foi fundamental para tornar
esta graduao possvel.
AGRADECIMENTOS

Agradeo a Deus.

minha noiva e companheira Mara, por sua compreenso e dedicao em todos os

momentos.

Aos meus pais e famlia que, com muito carinho e apoio, no mediram esforos para

que eu chegasse at esta etapa de minha vida.

professora e orientadora Marlia Barros por seu apoio e inspirao no

amadurecimento dos meus conhecimentos e conceitos que me levaram a execuo e

concluso desta monografia.

professora Fabiana S. N. Menta por sua dedicao e zelo quanto s revises deste

trabalho.

Ao amigo Samuel Honorato, que sempre se manteve disponvel para os meus

questionamentos, apoiando e incentivando a busca de novos conhecimentos.

Aos professores Norberto, Miriam e Maria Aparecida por suas contribuies,

mesmo quando este ainda era apenas um projeto.


Uma mente que se abre a uma nova idia
jamais volta ao seu tamanho original.
(Albert Einstein)
RESUMO

Este documento tem por objetivo sintetizar e discorrer sobre o protocolo LDAP,
demonstrar suas origens, seus pontos fracos e fortes, bem como, destacar a importncia do
mesmo para a administrao de uma rede, tanto para uma administrao centralizada,
evitando redundncia e retrabalhos, quanto no mbito da segurana das informaes,
baseando-se em mtodos criptogrficos atuais como o SSL e TLS que so capazes de
assegurar um alto nvel de segurana em uma consulta LDAP. Ser discriminado tambm as
principais solues disponveis hoje no mercado, as quais, implementam o protocolo.
A principal abordagem desse documento se dar em solues livres que possuem todas
as principais funcionalidades disponveis em solues proprietrias, porm sem a necessidade
de despender recursos na compra de licenas. Teremos nesse tambm, um estudo de caso
fictcio, com uma anlise de solues disponveis de todos os principais servios
implementados internamente em empresas de pequeno a mdio porte, gerando uma soluo
completa baseada em softwares OpenSource e sempre com foco na centralizao gerada pela
implementao do protocolo LDAP.

Palavras-chave: LDAP, OpenLDAP , Centralizao, Criptografia e OpenSource


LISTA DE FIGURAS

Figura 1 - Aplicao LDAP .................................................................................................... 16

Figura 2 - Caracterstica do LDAP .......................................................................................... 18

Figura 3 - Estrutura no estilo X.500 ........................................................................................ 20

Figura 4 - Estrutura no estilo DNS .......................................................................................... 20

Figura 5 - Exemplo de implementao do Active Directory .................................................. 23

Figura 6 - Exemplo de implementao do eDirectory ............................................................ 24

Figura 7 - Implementao do LDAP + phpLDAPAdmin ....................................................... 25

Figura 8 - Estrutura de diviso dos servios entre os servidores ............................................ 33


LISTA DE TABELAS

Tabela 1 - Estrutura de diviso dos servios entre os servidores ......................................... 19


LISTA DE SIGLAS

SIGLAS SIGNIFICADOS
ACL Access control list
AD Active Directory
AIX Advanced Interactive eXecutive
APT Advanced Packaging Tool
BDB Berkeleys Data Base
BSD Berkeley Software Distribution
CCITT Consultative Committee for International Telegraphy and Telephony
DAP Directory Access Protocol
DNS Domain Name System
FTP File Transfer Protocol
GPO Group Policy Objects
HP-UX Hewlett Packard UniX
HTTP HyperText Transfer Protocol
IETF Internet Engineering Task Force
IMAP Internet Message Access Protocol
IP Internet Protocol
ISO International Organization Standardization
LDAP Lightweight Directory Access Protocol
LDIF LDAP Interchange Format
MTA Mail Transfer Agent
NT New Technology
OSI Open Systems Interconnection
POP Post Office Protocol
RFC Request for Comments
SMTP Simple Mail Transfer Protocol
SNMP Simple Network Management Protocol
SQL Structured Query Language
SSH Secure Shell
SSL Secure Socket Layer
SSO Single Sign On
TCP Transmission Control Protocol
TSL Transport Layer Security
SUMRIO

INTRODUO ............................................................................................................ 12
1. O PROTOCOLO LDAP ........................................................................................... 14
1.1 Origens do LDAP ........................................................................................... 14
1.2 Protocolo X.500 vs LDAP .............................................................................. 15
1.3 Noes tericas sobre o LDAP ....................................................................... 16
1.3.1 Definies de diretrios ....................................................................... 16
1.3.2 Caractersticas do LDAP ..................................................................... 17
1.3.3 Estrutura do LDAP .............................................................................. 19
1.3.4 Schema ................................................................................................. 20
1.3.5 Arquivos LDIF ..................................................................................... 21
2. IMPLEMENTAES DO PROTOCOLO LDAP ................................................... 22
2.1 Active Directory ..................................................................................... 22
2.2 eDirectory ............................................................................................... 23
2.3 OpenLDAP ............................................................................................ 24
2.3.1 Replicao ............................................................................. 25
2.3.1.2 Replicao Master x Slave .................................. 26
2.3.1.2 Replicao Master x Master (multimaster) ......... 26
2.3.1.3 Diretrios Distribudos ....................................... 26
2.3.2 Criptografia ............................................................................ 27
2.3.3 Mdulos de banco de dados ................................................... 27
2.3.4 Listas de controle de acesso (ACLs)...................................... 27
2.3.5 Backups e restaurao............................................................. 28
3. ESTUDO DE CASO ................................................................................................. 30
3.1 Levantamento de requisitos ..................................................................... 30
3.2 Definio de softwares a serem usados .................................................. 31
3.2.1 Sistema operacional ................................................................ 31
3.2.2 Sistema gerenciador de domnio e autenticao..................... 32
3.2.3 Sistema de e-mail ................................................................... 32
3.2.4 Servidor FTP .......................................................................... 32
3.2.5 Servidor de arquivo ............................................................... 32
3.3 Definio da diviso dos servios entre os servidores ............................ 33
3.4 Instalao do Servidor OpenLDAP ....................................................... 33
3.4.1 Requisitos para a instalao do OpenLDAP ........................ 33
3.4.2 Instalao do OpenLDAP e seus utilitrios .......................... 34
3.5 Ativando suporte a criptografia .............................................................. 37
3.5.1 Ativando suporte a TLS ........................................................ 38
3.5.2 Ativando TLS no OpenLDAP ............................................. 39
3.6 Replicao .............................................................................................. 39
3.6.1 Configurando o serv1.secure.inf.br (MASTER) .................... 40
.....................................................
3.6.2 Configurando o serv2.secure.inf.br (SLAVE) ........................ 40
CONCLUSO .............................................................................................................. 42
REFERNCIAS BIBLIOGRFICAS ......................................................................... 43
12

INTRODUO

Este documento tem por objetivo orientar e discorrer sobre um protocolo que, apesar

de ser muito utilizado, sendo um padro em empresas de mdio a grande porte, so poucos os

que realmente conhecem suas funcionalidades mais avanadas. Isso ocorre visto que solues

proprietrias tendem a abstrair esse nvel de configurao, engessando um protocolo

extremamente flexvel, limitando-os a apenas fraes de suas funcionalidades.

No decorrer desse material o leitor ser encaminhado por uma introduo sobre os

conceitos que so necessrios para o entendimento do protocolo, passando pelas

implementaes dessa ferramenta, hoje disponveis no mercado; um exemplo de estudo de

caso, onde a partir de uma necessidade inicial de um cliente desenvolvido um estudo de

quais ferramentas mais se adequariam aos requisitos, sempre focando a centralizao das

informaes em uma nica base LDAP.

O presente documento divide-se em captulos.

No captulo 1, intitulado O PROTOCOLO LDAP, temos a parte introdutria do

trabalho, onde so apontadas as origens, influncias do protocolo LDAP, as diferenas do

mesmo e seu antecessor o X.500, alm da conceituao de diretrios, estrutura do LDAP,

mtodos de organizao da rvore e conceituao de schemas e arquivos LDIF.

No captulo 2, intitulado IMPLEMENTAES DO PROTOCOLO LDAP, so

abordadas as principais solues baseadas no protocolo, identificando suas principais

caractersticas e dando uma maior nfase a soluo OpenSource de nome OpenLDAP ,

sendo demonstrado os seus mtodos de replicao, criptografia, modelos de banco de dados

compatveis e mtodo de trabalho com as ACLs.


13

No captulo 3, intitulado ESTUDO DE CASO, apresentado um estudo de caso

fictcio de uma empresa de nome Secure Info Ltda, onde a mesma define uma srie de

requisitos para a implementao de um sistema que atender sua estrutura tanto interna

quanto externa. Estes requisitos so trabalhados durante todo o captulo. Com os requisitos

em mos, ser assim iniciada a definio dos softwares mais adequados para o atendimento

aos mesmos, aps essas definies sero demonstradas as instalaes dos principais softwares

que se relacionam diretamente com o servidor LDAP, visto que esse o foco principal do

trabalho.

Finalmente, conclui-se que este documento elaborado, principalmente, para pessoas

envolvidas diretamente em manuteno e gerenciamento de redes e para estudantes da rea de

tecnologia.
14

1. O PROTOCOLO LDAP

1.1 Origens do LDAP

No incio da dcada de 80, ao se unirem a ISO e o CCITT com o objetivo de criar um

servio de mensagens, surgiu a necessidade de desenvolver um protocolo que tivesse a

capacidade de organizar entradas em um servio de nomes de forma hierrquica, capaz de

suportar grandes quantidades de dados e com uma enorme capacidade de procura de

informaes. Esse servio criado pelas duas instituies, foi apresentado em 1988, sendo

denominado X.500, juntamente com um conjunto de recomendaes e normas ISO 9594. O

X.500 especificava que a comunicao entre o cliente e o servidor do diretrio deveria usar o

Directory Access Protocol (DAP) que era executado sobre a pilha de protocolos do modelo

OSI.

Devido alta complexidade e o custo elevado, pesquisadores da Universidade de

Michigan criaram um servidor LDAP, o slapd, que atuava sobre os protocolos TCP/IP. Este

servidor foi apresentado como uma alternativa ao protocolo DAP em 1993, como citado por

GOUVEIA (2005), disponibilizando as fontes na Internet e criando listas de discusso para

divulgar e aperfeioar esse novo protocolo. Assim a evoluo do mesmo foi acompanhada por

pessoas do mundo inteiro, e o mesmo deixou de ser uma mera alternativa para o protocolo

DAP, tornando-se um servio de diretrio completo, agora competindo diretamente com o

X.500.

O LDAP um protocolo especializado em organizar os recursos de rede de forma

hierrquica, atravs de uma rvore de diretrios, que roda sobre os protocolos TCP/IP,

diferente do protocolo no qual foi baseado, o DAP, o qual roda sobre o modelo OSI. Para
15

BARTH e SIEWERT (2009) essa foi uma das principais causas da adoo em larga escala do

protocolo, visto que com essa nova plataforma foi possvel reduzir consideravelmente o

overhead1 de camadas superiores do modelo OSI.

Segundo GOUVEIA (2005) o LDAP ganhou fora aps o ano de 1997, quando foi

lanada sua terceira verso, alm de uma fundao a qual mantm uma soluo OpenSource

a OpenLDAP Foudation, vrias outras empresas como Novell, Microsoft e Netscape

comearam a oferecer produtos baseados nessa nova plataforma.

1.2 Protocolo LDAP vs X.500

Segundo TRIGO (2007), o LDAP possui as seguintes simplificaes em relao ao

X.500:

executado diretamente sobre o TCP/IP;

A maioria dos elementos de dados so representados como cadeias de caracteres,

processadas de modo mais fcil que os dados na representao estruturada Abstract

Syntax Notation One (ASN.1) usada pelo X.500;

Codifica dados para transporte em redes usando uma verso simplificada das mesmas

regras de codificao usadas pelo X.500;

Elimina caractersticas pouco usadas e tambm operaes redundantes do X.500.

1
Overhead geralmente considerado qualquer processamento ou armazenamento em excesso, seja de tempo de
computao, de memria, de largura de banda ou qualquer outro recurso que seja requerido para ser utilizado
ou gasto para executar uma determinada tarefa.
16

Figura 1: Aplicao LDAP


Fonte: OpenLDAP Foundation (2009)

1.3 Noes tericas sobre o LDAP

1.3.1 Definies de diretrios TRIGO (2007) descreve que diretrio literalmente

definido como algo usado para indicar direes, ou seja, para indicar um caminho para se

chegar quilo que se procura.

Segundo a definio de TUTTLE (2009):

Diretrio uma lista de informaes sobre objetos organizados ou


catalogados em uma ordem, e que fornece o acesso aos dados dos objetos.
So os diretrios que permitem que usurios ou aplicaes encontrem
recursos no ambiente com as caractersticas necessrias para um tipo de
tarefa particular.

Diretrios nos cercam a todo tempo, seja em uma lista telefnica, na estrutura de

pastas do computador, em blogs, em servios de buscas, alm de vrios outros lugares. Outro
17

exemplo de diretrio o DNS o qual possui uma relao de nomes de host2 e seu respectivo

IP.

Segundo TRIGO (2007) muito comum ocorrer confuso com o uso de diretrios,

pois apesar de ser possvel fazer com eles praticamente qualquer coisa, desde salvar

informaes como um banco de dados, salvar arquivos como um sistema de arquivos e

disponibilizar arquivos como um sistema FTP, no se justifica o mesmo, pois para cada uma

dessas funes existe um sistema que foi desenvolvido para fazer somente essa tarefa, assim

sem dvida, o far muito melhor do que o diretrio.

1.3.2 Caractersticas do LDAP Segundo TRIGO (2007), o LDAP foi

padronizado em junho de 1993, no RFC 1487 da IETF.

O LDAP, segundo BARTH e SIEWERT (2009) foi projetado para resolver

problemas de distribuio de diretrios pela rede, contando com nove aspectos que lhe

garantiram essa habilidade, sendo eles:

Seu desenho genrico

Simplicidade do protocolo

Arquitetura distribuda

Segurana

Padro aberto

Solicitao de funcionalidades e esquemas do servidor

Internacionalizao

Suporte ao IPv6

Berkeleys Data Base (BDB)

2
No contexto abordado host qualquer mquina ou computador conectado a uma rede
18

Ainda segundo BARTH e SIEWERT (2009) uma aplicao que o LDAP

disponibiliza o conceito de Single Sign On (SSO), ou seja, autenticao unificada,

possibilitando e facilitando a integrao com diversos outros servios, assim o usurio tem

apenas um userid ou identificao nica na rede e com esse pode acessar diversos recursos da

mesma.

TUTTLE (2009) afirma que o LDAP um padro aberto capaz de facilitar, de forma

flexvel, o compartilhamento, a manuteno e o gerenciamento de grandes volumes de

informaes, definindo um mtodo-padro de acesso e atualizao de informaes dentro de

um diretrio.

Para LOSANO (2009) a principal caracterstica do LDAP a integrao com outros

servios, complementando assim a infra-estrutura de redes, fornecendo novos recursos e,

especialmente, maior integrao, diferentemente de outros protocolos e linguagens

estabelecidos como exemplo: SNMP, HTTP, SMTP, IMAP ou SQL.

Abaixo a figura 2 representa essa caracterstica.

Figura 2: Caracterstica do LDAP


Fonte: OpenLDAP Foundation (2009)
19

1.3.3 Estrutura do LDAP TRIGO (2007) afirma que o grande fator responsvel pela

flexibilidade do LDAP a sua organizao de forma hierrquica. A rvore de informaes

possui um elemento-raiz, por onde comea a busca das informaes. A partir da, o sistema

vai percorrendo os ns filhos at que consiga encontrar o elemento desejado. A raiz e os

ramos da rvore so os diretrios os quais podem conter outros diretrios. Abaixo desses

diretrios esto os elementos ou tambm chamados de entradas. Para cada entrada podemos

ter um ou mais valores associados a ela. A tabela 1 abaixo mostra os principais atributos e

suas descries.

Tabela 1: Exemplos de atributos, com suas respectivas descries:


Fonte: Prpria

Atributo Descrio
Dc Identificao nica do Objeto (do ingls Distinguished Name)
C Para diretrios que representam pases (do ingls country)
O Para o nome da empresa (do ingls organization)
Ou Para departamento (do ingls organization unit)
Cn Como atributo de Nome (do ingls common name)
Uid Identidade do usurio (do ingls user id)
Gn Nome prprio da pessoa (do ingls given name)

Segundo TRIGO (2007), existem duas maneiras de organizar uma rvore de diretrios;

no estilo X.500 onde a estrutura da rvore de diretrios baseado em regies, como

demonstrado na figura 3 e no estilo DNS, no qual, os dados so organizados como se fossem

domnios. A grande vantagem de se usar o estilo DNS o fato de poder configurar o servio

de LDAP para uma empresa a partir de um nome de domnio vlido, garantindo o carter

nico da identidade quando disponibilizado atravs da Internet.


20

Na figura 4 abaixo podemos visualizar uma estrutura baseada nesse estilo.

Figura 3: Estrutura no estilo X.500


Fonte: Prpria

Figura 4: Estrutura no estilo DNS


Fonte: Prpria

1.3.4 Schema Segundo GOUVEIA (2005), os schemas so responsveis por manter a

integridade dos dados do diretrio. So extensveis, possibilitando a adio de atributos ou

classes de acordo com a necessidade.


21

Schemas definem quais object class podem ser inseridos no diretrio, quais os atributos

de uma determinada object class e quais os valores possveis para esses atributos. Assim, caso

um objeto no obedea s regras do schema, no poder ser inserido no mesmo.

1.3.5 Arquivos LDIF Segundo TRIGO (2007), arquivos LDIFs so arquivos de

texto puro, usados para importar, modificar e exportar informaes. Esse formato de arquivo

o nico meio de entrada de dados em um servidor LDAP; mesmo programas que trabalham

diretamente com o servidor LDAP, inserindo e removendo registros, como o caso do

PHPMyAdmin, utilizam-se de arquivos LDIF para suas transaes. Abaixo colocado dois

arquivos LDIF onde o primeiro responsvel pela insero de um usurio em uma base, e o

seguinte pela modificao do valor do atributo userPassword, no caso, a senha do usurio.

Arquivo insereUser.ldif

dn: cn=ronaldo,dc=secure,dc=inf,dc=br
cn: ronaldo
objectClass: simpleSecurityObject
objectClass: organizationalRole
userPassword: {SSHA}4P4F2gCtCh7PthUlS1AJ+DOMXOI0iUpH
description: Usuario Ronaldo

Arquivo atualizaUser.ldif

dn: cn=ronaldo,dc=secure,dc=inf,dc=br
changetype: modify
replace: userPassword
userPassword: {SSHA}tNnd/KF/Rg/dCTq4S1yo7OEiUK4aFk9g
22

2. IMPLEMENTAES DO PROTOCOLO LDAP

Como mencionado anteriormente, o protocolo LDAP apenas um conjunto de

conceitos e definies que possibilitam uma padronizao na troca de informaes entre

diversas solues baseadas no protocolo. Assim os mtodos utilizados para armazenar as

informaes internamente e de replicao, por exemplo, so peculiaridades de cada

implementao. Abaixo apresentado algumas caractersticas dessas principais

implementaes.

2.1 Active Directory

O Active Directory uma implementao do servio de diretrio utilizando o protocolo

LDAP que armazena informaes sobre objetos em redes de computadores e disponibiliza

essas informaes a usurios e administradores desta rede. um software da Microsoft

utilizado em ambientes Windows e que segundo SANTANA (2009) surgiu juntamente com o

Windows 2000 Server.

Objetos como usurios, grupos, membros dos grupos, senhas, contas de computadores,

relaes de confiana, informaes sobre o domnio, unidades organizacionais, etc., ficam

armazenados no banco de dados do AD que alm de armazenar esses vrios objetos em seu

banco de dados, disponibiliza vrios servios, como: autenticao de usurios, replicao do

seu banco de dados, pesquisa dos objetos disponveis na rede, administrao centralizada da

segurana utilizando GPO, entre outros. Esses recursos tornam a administrao do AD bem

mais fcil, sendo possvel administrar todos os recursos disponveis na rede

centralizadamente.
23

Figura 5: Exemplo de implementao do Active Directory


Fonte: Prpria

2.2 eDirectory

Assim como a Microsoft, a Novell tambm disponibiliza uma implementao do LDAP,

o eDirectory, que a base de identidade que vincula os usurios e seus direitos de acesso aos

recursos, dispositivos e polticas de segurana da empresa. Ele oferece a compatibilidade,

segurana, confiabilidade, escalabilidade e gerenciabilidade necessrias para distribuies

internas e de Internet. O eDirectory possui caractersticas muito prximas do Active Directory

da Microsoft.
24

Figura 6: Exemplo de implementao do eDirectory


Fonte: Novel (2009)

2.3 OpenLDAP

O OpenLDAP uma implementao do LDAP desenvolvida pela Universidade de

Michigan e mantido pelo Projeto OpenLDAP , possui como principais caractersticas:

suporte ao IPv4 e IPv6, autenticao, segurana no transporte usando SSL e TSL, controle de

acessos, alta performance em mltiplas chamadas e a replicao de base. O OpenLDAP tem

uma licena especfica chamada de The OpenLDAP Public License (OpenLDAP Project,

2009) e independente de plataforma, assim vrias distribuies Linux j disponibilizam o

mesmo em seus repositrios. Alm do Linux o OpenLDAP tambm compatvel com AIX,

variantes de BSD, HP-UX, Mac OS X, Solaris e Microsoft Windows ( Baseados na

tecnologia NT).
25

Figura 7: Implementao do LDAP + phpLDAPAdmin


Fonte: Prpria

2.3.1 Replicao - A replicao um mtodo muito utilizado quando trabalhamos em

um ambiente corporativo, onde existe a necessidade de alta disponibilidade nos servios. na

verdade a manuteno de uma cpia, seja parcial ou total, dos dados em outros servidores.

No OpenLDAP existem duas tcnicas distintas de replicao, as quais so o slurpd e o

syncrepl, sendo que a slurpd, uma tcnica mais antiga a qual foi descontinuada na verso 2.4

do OpenLDAP , por possuir uma srie de limitaes que foram supridas por sua sucessora a

syncrepl. As principais limitaes eram as limitaes para replicar uma base parcialmente e a

utilizao de mais de um servidor Master.

Quando trabalhamos com o syncrepl o servidor LDAP pode assumir duas posturas

quanto replicao, Master ou Slave. Quando Master o servidor assume todas as funes de

um servidor OpenLDAP , desde a insero, atualizao e consulta dos dados. Porm quando

slave o servidor s aceitar execues de consultas em sua base de dados quando originadas
26

de mquinas clientes, assim para que qualquer informao seja alterada, a solicitao dever

ser feita ao servidor Master o qual se encarregar de replicar as alteraes para seus servidores

slaves.

2.3.1.1 Replicao Master x Slave Nesse mtodo de replicao temos um nico

servidor Master o qual tem seu contedo replicado em todos os seus servidores escravos.

Nesses servidores slaves no ocorre entrada de dados, apenas replicam passivamente os dados

de um servidor principal. Esse mtodo de replicao o mais comum e atende a grande parte

das demandas de servidores LDAP.

2.3.1.2 Replicao Master x Master (multimaster) Replicao multimaster um

mtodo de replicao mais recente no OpenLDAP , porm j implementado no Active

Directory desde sua primeira verso. Esta uma replicao que atende a demandas muito

singulares e apesar de funcionar muito bem ainda pouco difundida e aplicada.

Esta replicao consiste na utilizao de dois ou mais servidores Masters,

independentes, os quais possuem todas as suas funcionalidades ativadas, porm criado por

parte dos servidores um controle interno para que seja possvel manter a integridade dos

dados, algo que era muito mais simples de controlar quando existia uma nica entrada de

dados.

2.3.1.3 Diretrios Distribudos Utilizando o OpenLpad com o mtodo de replicao

syncrepl podemos no somente criar uma cpia da rvore de diretrios em outros servidores,

mas tambm criar polticas de replicao e replicar a cada servidor somente aquilo que se

pretende que o mesmo tenha acesso, assim por exemplo, quando temos uma empresa com

sede em Minas Gerais e filial em So Paulo, a mesma no precisa replicar toda sua base para a
27

filial, apenas aqueles usurios que a pertenam, evitando assim um trfego desnecessrio na

rede alm de aumentar a segurana.

2.3.2 Criptografia Fazendo-se uso da definio de FADEL (2009):

O termo Criptografia tem origem grega e surgiu da fuso das palavras


krypts" e graphein", que significam oculto" e escrever",
respectivamente. Trata-se de um conjunto de conceitos e tcnicas que visa
codificar uma informao de forma que somente o emissor e o receptor
possam acess-la, evitando que um intruso consiga intercept-la.

Segundo TRIGO (2007), na maioria das vezes, o servidor LDAP utilizado para

armazenar dados de usurios, como senha de autenticao, por exemplo, assim segurana

algo fundamental. Para aumentarmos a segurana no transporte de dados possvel

criptograf-los, usando TLS ou SSL, assim mesmo que algum consiga interceptar os dados,

no conseguir visualizar o que est sendo trafegado.

2.3.3 Mdulos de Banco de Dados Como mencionado anteriormente o LDAP

apenas um protocolo de comunicao entre um cliente e um servio de diretrios. A definio

do armazenamento das informaes da rvore de diretrios independente do mesmo, assim

cada implementao do protocolo responsvel por fazer essa definio, podendo variar

desde um simples arquivo texto at um banco de dados relacional completo. Segundo TRIGO

(2007), o OpenLDAP possui dois bancos de dados nativos, o LDBM e o BerkeleyDB, sendo

que o segundo para ele a melhor opo quanto ao desempenho.

2.3.4 Listas de Controle de Acesso (ACLs) ACL a definio de todos os recursos

de acesso controlado e todos aqueles usurios que tm acesso a eles. Segundo CARTER

(2009), as ACLs disponibilizadas pelo OpenLDAP possuem uma sintaxe simples, alm de
28

serem tambm muito flexveis e robustas em sua implementao. A idia bsica das ACLs

definir quem tem acesso a qu. Abaixo exposto um exemplo de ACL no OpenLDAP :

# ACL do Atributo userPassword


Access to attrs=userPassword
by self write
by cn=backup,dc=secure,dc=inf,dc=br read
by * auth

A ACL acima tem a funo de permitir que apenas o dono tenha acesso de escrita no

campo userPassword, ou seja, s ele pode mudar sua senha, que o usurio

cn=backup,dc=secure,dc=inf,dc=br consiga apenas ler esse atributo e que todos os demais

devero se autenticar como um usurio com permisso de acesso a esse atributo.

Resumidamente a sintaxe das ACLs no OpenLDAP :

access to <o que> by <quem> <controle>

2.3.5 Backups e Restaurao O backup e restaurao de uma base LDAP

extremamente fcil, como demonstrado com os comandos abaixo:

Para efetuarmos Backup de toda a base:

slapcat > backup.ldif

Retornar o backup ( necessrio estarmos com a base parada)

slapadd l backup.ldif

Existem outras maneiras de fazer os procedimentos acima relacionados. Por exemplo,

usando o ldapadd, no precisamos parar o servio do OpenLDAP para efetuarmos o retorno

dos dados, porm precisaremos ter um usurio com permisso administrativa para inserir os

mesmos, diferente do slapcat o qual s precisa ter acesso ao diretrio do banco de dados do
29

OpenLDAP no caminho /var/lib/ldap/. Saber definir qual o procedimento mais adequado

para a necessidade do cliente extremamente importante.


30

3. ESTUDO DE CASO

3.1 Levantamento de requisitos

Para uma demonstrao prtica sobre o tema foi feito um estudo de caso da empresa

Secure Info Ltda, uma empresa de consultoria na rea de segurana da informao a qual est

se preparando para entrar no mercado. A Secure Info possui demanda de uma srie de

servios os quais pretende prover internamente, sendo eles:

Servidor interno de e-mail (com solues SMTP, POP e IMAP);

Sistema gerenciador de domnio e autenticao (mquinas Windows e Linux);

Servidor FTP;

Sistema de Webmail;

Servidor de Proxy;

Servidor Web;

Servidor SSH;

Servidor de Arquivos.

Para esta implementao foi definido como requisito a integrao da autenticao entre

os servios, assim no dever haver redundncia de informaes cadastrais dos usurios e

lista de contatos, outro requisito a utilizao de solues OpenSource de maneira a no

dispor de recursos na aquisio de novas licenas.

Este documento abordar somente a instalao e configurao dos servidores LDAP,

informaes sobre a instalao dos outros servios citados podem ser encontradas no prprio
31

website do desenvolvedor, onde normalmente j disponibilizam materiais com instrues para

a instalao, como tambm nos livros de CARTER (2009) e TRIGO (2007).

3.2 Definio de Softwares a serem usados

3.2.1 Sistema operacional Para a implementao destes servidores o primeiro item a

ser definido o sistema operacional que ser usado, pois todos os softwares definidos

posteriormente dependero diretamente dessa definio.

Diversos sistemas foram considerados nessa implementao, porm alguns como o

Windows Server e Unix foram descartados por termos como requisito, um sistema

OpenSource o qual no demande custo de licenas, o que no o caso dos mesmos. Assim se

enquadram nesse perfil os sistemas LINUX, porm os mesmos possuem uma infinidade de

derivaes, denominadas distro ou distribuies, as quais se diferenciam em diversos casos

muito uma da outra, assim escolher uma distribuio que se enquadre melhor aos requisitos

do projeto fundamental para o sucesso do mesmo.

As distribuies avaliadas foram:

Suse Linux Enterprise 11;


OpenSuse 11.1;
RedHat Enterprise 5.4;
Fedora 11;
Unbutu Server 8.04 LTS;
Debian 5;

Diante das distribuies avaliadas, duas inicialmente j foram descartadas por se

tratarem de distribuies comerciais as quais demandam um custo elevado para aquisio da

licena de uso, so elas: Suse Linux Enterprise 11 e RedHat Enterprise 5.4. Das demais,

todas cumpririam os pr-requisitos identificados, assim definimos o Debian 5 como a soluo

a ser implementada, pois trata-se de um sistema robusto, leve, possui um gerenciador de


32

pacotes extremamente poderoso, o APT, alm de contar com um sistema massivo de testes

que garantem que os softwares disponibilizados para o mesmo, estaro realmente maduros,

sendo esse seu principal diferencial.

3.2.2 Sistema Gerenciador de Domnio e Autenticao Para essa definio foram

considerados as trs principais implementaes do protocolo LDAP, o Active Directory,

eDirectory e uma soluo integrada entre OpenLDAP + Samba, porm a nica soluo que

cumpre os requisitos a juno OpenLDAP + Samba, j que os outros so proprietrios e

demandam um investimento alto na aquisio de suas licenas.

3.2.3 Sistema de e-mail Diversos sistemas gerenciadores de e-mails tambm

conhecidos como MTA esto disponveis hoje no mercado, os principais so Microsoft

Exchange, Qmail e Postfix. O Microsoft Exchange um sistema muito bom, porm no

compatvel com o sistema operacional adotado, assim restam-nos duas solues o Qmail e

PostFix, diante das mesmas optaremos pela soluo Postfix a qual conta com um

desenvolvimento bem mais ativo que o Qmail, alm de possuir material de apoio muito bom e

amplo.

3.2.4 Servidor FTP Existe hoje uma infinidade de opes em solues FTP, como

por exemplo, proftpd, pureftp e o vsftpd, porm as mesmas possuem caractersticas muito

similares sendo assim optaremos pela implementao da soluo proftpd a qual atende os

requisitos e possui uma maior compatibilidade de integrao com o servidor de autenticao

baseada no OpenLDAP .

3.2.5 Servidor de Arquivo Para servidor de arquivo utilizaremos o SAMBA por

atender os requisitos iniciais do projeto alm de j estar disponvel no sistema devido a

necessidade do mesmo para autenticarmos os usurios na rede.


33

3.3 Definio da diviso dos servios entre os servidores

Para esta implementao usaremos a seguinte estrutura:

serv1.secure.inf.br serv2.secure.inf.br
in

SH
m

nS
Ad

e
Op
y
PM
PH

Servidor SSH s tfix


Gestor LDAP Po
Servidor LDAP Servidor LDAP

Servidor MTA (E-mail)

SH
e nS P P
Op DA Replicao DA
e nL en
L
Op ste
r Op ave

us
Ma Sl

yr
Servidor SSH

C
Servidor POP e IMAP

m ba
Sa

ail
lm
Servidor de Arquivos e2 id
ch u

i rre
+ Servidor PDC Ap
a Sq

u
Sq
ftp M
Servidor Web Servidor Proxy Pro PA Webmail

Servidor FTP

Legenda

Trfego em texto Plano


Trfego Criptografado

Figura 8: Estrutura de diviso dos servios entre os servidores


Fonte: Prpria

Cada figura de servidor representa um servio rodando dentro do respectivo servidor.

3.4 Instalao do Servidor OpenLDAP

3.4.1 Requisitos para a instalao do OpenLDAP - O primeiro procedimento

adotado foi a atualizao dos repositrios instalados com o comando:

apt-get update

Logo depois a atualizao dos pacotes instalados:

apt-get upgrade
34

Antes de iniciar a instalao verificamos alguns parmetros importantes no sistema, os

quais, faro grande diferena no ato da instalao do OpenLDAP .

O primeiro parmetro verificado se encontra no arquivo /etc/hosts, onde dever ser

informado o IP do servidor, nome, domnio e apelido da mquina.

Foram inseridos os seguintes parmetros logo abaixo da linha, que referencia o

localhost.

127.0.0.1 serv1.secure.inf.br serv1


192.168.239.134 serv1.secure.inf.br serv1

O segundo parmetro verificado foi no arquivo /etc/hostname onde substitumos o nome

serv1 para seu nome completo serv1.secure.inf.br.

Com esses parmetros configurados cumprimos os requisitos bsicos para iniciarmos a

instalao.

3.4.2 Instalao do OpenLDAP e seus utilitrios - Para a instalao do OpenLDAP

e seus utilitrios utilizamos o seguinte comando:

apt-get install slapd ldap-utils

Na instalao inicial, o prprio debian cria baseado nos parmetros os quais foram

alterados anteriormente uma estrutura previa da rvore, assim no precisamos fazer esse

processo manualmente.

Nesta instalao a rvore em formato DNS foi criada com a raiz

"dc=secure,dc=inf,dc=br", parmetro esse que servir de base para todos os itens que o

sucederem.
35

O arquivo de configurao principal do OpenLDAP o /etc/ldap/slapd.conf, este

algo como um centro de controle do OpenLDAP e nele que faremos vrias configuraes

durante todo o processo de instalao do servidor.

Com a base montada procedemos com o seguinte comando para verificar se o servidor

OpenLDAP est de fato configurado corretamente:

ldapsearch -x -h localhost -b "dc=secure,dc=inf,dc=br"

O retorno foi:

dn: dc=secure,dc=inf,dc=br
objectClass: top
objectClass: dcObject
objectClass: organization
o: secure.inf.br
dc: doctum

dn: cn=admin,dc=secure,dc=inf,dc=br
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

Com esse retorno demos sequncia instalao inserindo alguns objetos na rvore, de

maneira a povo-la adequadamente. Como descrito anteriormente, a nica maneira de

transferir dados a um servidor LDAP fazendo uso de arquivos do tipo ldif, assim

prosseguiremos criando um arquivo, o qual ser o responsvel por criar alguns grupos em

nossa rvore.

Abaixo podemos visualizar o contedo do arquivo grupos.ldif :

dn: ou=grupos,dc=secure,dc=inf,dc=br
ou: Grupos
objectClass: organizationalUnit
objectClass: top
36

dn: ou=usuarios,dc=secure,dc=inf,dc=br
ou: Grupos
objectClass: organizationalUnit
objectClass: top

dn: ou=ti,ou=usuarios,dc=secure,dc=inf,dc=br
ou: ti
objectClass: organizationalUnit
objectClass: top

dn: ou=base_teste,ou=usuarios,dc=secure,dc=inf,dc=br
ou: base_teste
objectClass: organizationalUnit
objectClass: top

dn: ou=administracao,ou=usuarios,dc=secure,dc=inf,dc=br
ou: administracao
objectClass: organizationalUnit
objectClass: top

Para inserirmos esses grupos em nossa rvore faremos uso do seguinte comando:

ldapadd -h localhost -x -D cn=admin,dc=secure,dc=inf,dc=br -w senha -f grupos.ldif

Para a insero de usurios usaremos o arquivo usuarios.ldif descrito abaixo:

dn: uid=ronaldo,ou=ti,ou=usuarios,dc=secure,dc=inf,dc=br
uid: ronaldo
cn: Ronaldo Meneguite
sn: Meneguite
objectClass: inetOrgPerson
objectClass: posixAccount
homeDirectory: /home/ronaldo
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
userPassword: {SSHA}sZmrhpFA7XTkVGVrljx7QiUqU8kFLMlo
dn: cn=replicator,dc=secure,dc=inf,dc=br
cn: replicator
objectClass: simpleSecurityObject
objectClass: organizationalRole
userPassword: {SSHA}sZmrhpFA7XTkVGVrljx7QiUqU8kFLMlo
description: LDAP Replicator

dn: uid=estagio,ou=ti,ou=usuarios,dc=secure,dc=inf,dc=br
uid: estagio
37

cn: Estagiario
sn: Estagiaro
objectClass: inetOrgPerson
objectClass: posixAccount
homeDirectory: /home/estagio
loginShell: /bin/bash
uidNumber: 1002
gidNumber: 1000
userPassword: {SSHA}sZmrhpFA7XTkVGVrljx7QiUqU8kFLMlo

Para inserirmos esses grupos em nossa rvore faremos uso do seguinte comando:

ldapadd -x -D cn=admin,dc=secure,dc=inf,dc=br -w senha -f usuarios.ldif

Com o comando abaixo, podemos verificar se os grupos e usurios foram inseridos com

sucesso.

ldapsearch x b =secure,dc=inf,dc=br

Com sucesso nos comandos acima, foi listado todo o contedo do diretrio LDAP

inclusive com os grupos e usurios inseridos anteriormente, tendo assim em mos um servidor

OpenLDAP configurado e pronto para usar.

Para o segundo servidor o serv2.secure.inf.br foi efetuado o mesmo procedimento de

instalao do servio, no inserindo os usurios e grupos como no servidor principal, visto

que os mesmos sero replicados quando configurarmos a replicao.

3.5 Ativando suporte a criptografia

O servidor OpenLDAP suporta trabalhar com dois esquemas de criptografia sendo

eles, o SSL ou TLS onde a diferena entre eles que o SSL por ser uma camada de

segurana, tem sua porta alterada para uma porta diferente da padro, a 389, enquanto no

TLS, a criptografia feita na camada de transporte, o que propicia ser ativado sem alterao

da porta do servio.
38

A resistncia da criptografia quando em ataque, tanto na SSL quanto do TLS

basicamente a mesma, visto que ambos so fornecidos pelo OpenSSL. Para este estudo de

caso utilizaremos o TLS como mtodo de criptografia.

3.5.1 Ativando suporte a TLS Para ativar o suporte a TLS ser usado a seguinte

sequncia de comandos:

Instalar o OpenSSL

apt-get install openssl

Criar o diretrio para armazenamento da chave

mkdir /etc/ldap/tls
cd /etc/ldap/tls

Criando a agncia certificadora

/usr/lib/ssl/misc/CA.sh newca

Criando certificado do servidor:

openssl req new nodes keyout newreq.pen out newreq.pem

Assinando o certificado do servidor com o da agncia certificadora criada:

/usr/lib/ssl/misc/CA.sh sign

Alterando os nomes dos certificados gerados para facilitar a identificao:

mv newcert.pem srvcert.pem
mv newreq.pem srvkey.pem

Copiando o certificado da agncia certificadora para o mesmo diretrios dos outros:

cp demoCA/cacert.pem .
39

3.5.2 Ativando TLS no OpenLDAP Para ativarmos o suporte a TLS no OpenLDAP

devemos adicionar no arquivo /etc/ldap/slapd.conf as seguintes linhas logo aps a incluso

dos schemas:

TLSCertificateFile /etc/ldap/tls/srvcert.pem
TLSCertificateKeyFile /etc/ldap/tls/srvkey.pem
TLSCACertificateFile /etc/ldap/tls/cacert.pem

Aps a insero das linhas acima mencionadas reiniciamos o servidor com o seguinte

comando:

/etc/init.d/slapd restart

Para testarmos a comunicao criptografada, prosseguimos com a configurao do

cliente LDAP, sendo ele instalado junto com o servidor, de maneira que o mesmo possa

utilizar TLS, bastando para isso inserirmos no final do arquivo a seguinte linha:

TLS_CACERT /etc/ldap/tls/cacert.pem

Para visualizamos o funcionamento da criptografia, faremos uso do seguinte comando:

ldapsearch x ZZ

Para futuro uso copiaremos os certificados gerados para a pasta /etc/ldap/tls/ do

serv2.secure.inf.br.

3.6 Replicao

Como descrito anteriormente existe hoje duas maneiras de fazermos uma replicao

utilizando o OpenLDAP , uma usando o slurpd e outra usando o syncrepl, porm o slurpd

foi descontinuado na verso 2.4 do OpenLDAP , alm de possuir uma srie de limitaes.

Assim foi definido a utilizao do syncrepl.


40

3.6.1 Configurando o serv1.secure.inf.br (MASTER) Foi iniciado a configurao do

servidor Master alterando o arquivo de configurao /etc/ldap/slapd.conf, alterando o

parmetro modulepath para syncprov e inserindo as seguintes linhas logo abaixo da opo

ndex:

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

Inserimos tambm junto a ACL responsvel pelos atributos de senha, userPassword e

shadowLastChange a seguinte linha:

by dn="cn=replicator,dc=secure,dc=inf,dc=br" read

Assim inserimos a permisso para o usurio replicador ler os campos de senha dos

usurios, pois sem o acesso a leitura ele no conseguiria efetuar a replicao completa da

base. Neste ponto foi reiniciado o servidor com o comando:

/etc/init.d/slapd restart

3.6.2 Configurando o serv2.secure.inf.br (SLAVE) Iniciamos a configurao do

servidor slave editando o arquivo de configurao /etc/ldap/slapd.conf e removendo o

caracter # antes da linha rootdn, e logo aps inserimos as seguintes linhas abaixo de

index:

syncrepl rid=1
provider=ldap://serv1.secure.inf.br:389
type=refreshAndPersist
retry="5 + 5 +"
interval=00:00:00:10
searchbase="dc=secure,dc=inf,dc=br"
filter="(objectClass=*)"
scope=sub
attrs="*"
schemachecking=on
41

bindmethod=simple
binddn="cn=replicator,dc=secure,dc=inf,dc=br"
credentials=doctum2009

Aps os procedimentos acima citamos, inserimos a linha TLS_CACERT

/etc/ldap/tls/cacert.pem no aquivo /etc/ldap/ldap.conf , paramos o servidor OpenLDAP ,

removemos os diretrios e novamente iniciamos o servidor, para isso utilizamos as seguintes

linhas de comando:

/etc/init.d/slapd stop
rm /var/lib/ldap/*
/etc/init.d/slapd start

Assim temos agora os dois servidores configurados, sendo que os dados do

serv1.secure.inf.br esto sendo replicados para o servidor serv2.secure.inf.br, porm o mesmo

no tem autoridade sobre os dados fazendo com que para alterarmos qualquer informao na

base, teremos que fazer isso no serv1.secure.inf.br e essa atualizao ser replicada de

imediato para o serv2.secure.inf.br.


42

CONCLUSO

Este trabalho tem por objetivo apresentar um protocolo extremamente importante

quando falamos em centralizao de aplicativos conectados em rede, o LDAP, demonstrando

que este uma tima soluo por contar com uma arquitetura distribuda, mtodos nativos de

segurana, contar com padro aberto, internacionalizao e suporte ao ipv6, alm de diversas

outras funcionalidades. Tambm foi demonstrado nesse trabalho o quanto flexvel o protocolo

LDAP pode ser, possibilitando uma gama de possibilidades para o uso do mesmo. Este foi

focado na soluo livre OpenLDAP , a qual, apresentou caractersticas compatveis com

ferramentas proprietrias e, em alguns casos, at mesmo os superando, isso sem a necessidade

de desprendermos recursos para aquisio de licenas.

Acredita-se que este servir como instrumento de referncia para estudantes e

profissionais da rea de tecnologia que pretendem se aprofundar nesse protocolo, que a longa

data utilizado, massivamente, em empresas de mdio a grande porte de todo o mundo.


43

REFERNCIAS BIBLIOGRFICAS

BARTH, D. G.; SIEWERT, V. C. Conceituao de DNS. Disponvel em:


<http://artigocientifico.uol.com.br/uploads/artc_1148560980_24.pdf>. Acesso em: jun. 2009.

CARTER, G.. LDAP Administrao de Sistemas. Rio de Janeiro: Alta Books, 2009.

FADEL, D.. Criptografia RSA. Disponvel em: <


http://www.ime.unicamp.br/~ftorres/ENSINO/MONOGRAFIAS/desi_RSA.pdf>. Acesso em:
nov. 2009.

GOUVEIA, B.. LDAP para iniciantes. Disponvel em: <http://www.ldap.org.br/>. Acesso


em: jun. 2009.

LOSANO, F.. Integrao de Rede com Diretrios LDAP. Disponvel em:


<http://www.revistadolinux.com.br/ed/025/assinantes/rede.php3>. Acesso em: mar. 2009.

NOVELL. Novell Documentation: Novel Audit 2.0. Disponvel em:


<http://www.novell.com/documentation/novellaudit20/index.html?page=/documentation/nove
llaudit20/novellaudit20/data/b27qg60.html>. Acesso em: abr. 2009.

OPENLDAP FOUNDATION. OpenLDAP Software 2.4 Administrator's Guide.


Disponvel em: <http://www.openldap.org/doc/admin24/>. Acesso em: mai. 2009.

SANTANA, F.. Instalao do Active Directory. Disponvel em:


<http://www.fabianosantana.com.br/windows-2000/287-ad>. Acesso em: mai 2009.
44

TRIGO, C. H. OpenLDAP: Uma abordagem integrada. So Paulo: Novatec Editora, 2007.

TUTTLE, S. EHLENBERGER, A.; GORTHI, R. Understanding LDAP: Design and


Implementation. Disponvel em: <http://www.redbooks.ibm.com/>. Acesso em: abr. 2009.

OUTROS TRABALHOS EM:


www.projetoderedes.com.br

Você também pode gostar