You are on page 1of 46

RONALDO LOURO MENEGUITE

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 ACL AD AIX APT BDB BSD CCITT DAP DNS FTP GPO HP-UX HTTP IETF IMAP IP ISO LDAP LDIF MTA NT OSI POP RFC SMTP SNMP SQL SSH

SIGNIFICADOS Access control list Active Directory Advanced Interactive eXecutive Advanced Packaging Tool Berkeleys Data Base Berkeley Software Distribution Consultative Committee for International Telegraphy and Telephony Directory Access Protocol Domain Name System File Transfer Protocol Group Policy Objects Hewlett Packard UniX HyperText Transfer Protocol Internet Engineering Task Force Internet Message Access Protocol Internet Protocol International Organization Standardization Lightweight Directory Access Protocol LDAP Interchange Format Mail Transfer Agent New Technology Open Systems Interconnection Post Office Protocol Request for Comments Simple Mail Transfer Protocol Simple Network Management Protocol Structured Query Language Secure Shell

SSL SSO TCP TSL

Secure Socket Layer Single Sign On Transmission Control Protocol Transport Layer Security

SUMRIO

INTRODUO ............................................................................................................ 12 1. O PROTOCOLO LDAP ........................................................................................... 1.1 Origens do LDAP ........................................................................................... 14 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 ............................................................................................... 2.3 OpenLDAP ............................................................................................ 23 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 ..................................................................... 3.2 Definio de softwares a serem usados .................................................. 30 31

3.2.1 Sistema operacional ................................................................ 31 3.2.2 Sistema gerenciador de domnio e autenticao..................... 32 3.2.3 Sistema de e-mail ................................................................... 3.2.4 Servidor FTP .......................................................................... 32 32

3.2.5 Servidor de arquivo ............................................................... 3.3 Definio da diviso dos servios entre os servidores ............................ 3.4 Instalao do Servidor OpenLDAP ....................................................... 3.4.1 Requisitos para a instalao do OpenLDAP ........................

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

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)

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 Dc C O Ou Cn Uid Gn Descrio Identificao nica do Objeto (do ingls Distinguished Name) Para diretrios que representam pases (do ingls country) Para o nome da empresa (do ingls organization) Para departamento (do ingls organization unit) Como atributo de Nome (do ingls common name) Identidade do usurio (do ingls user id) 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. 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 Abaixo apresentado algumas caractersticas dessas principais

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 , possui como principais caractersticas:

Michigan e mantido pelo Projeto OpenLDAP

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, tecnologia NT). HP-UX, Mac OS X, Solaris e Microsoft Windows ( Baseados na

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 by cn=backup,dc=secure,dc=inf,dc=br by *

write read 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

Ad m

PH PM y

e Op

SH nS

Gestor LDAP Servidor LDAP Servidor LDAP

Servidor SSH

s Po

tfix

Servidor MTA (E-mail)

e Op

SH nS e Op nL

P DA ste r

Replicao

Servidor SSH

Servidor POP e IMAP

m Sa

ba

Servidor Web

Servidor Proxy

ftp Pro

M PA

Webmail

Servidor FTP

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

Sq u

Servidor de Arquivos + Servidor PDC

a Ap

Legenda

i rre

ch

e2

u Sq

id

lm

ail

Ma

L en Op ave Sl

P DA

yr

us

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 192.168.239.134 serv1.secure.inf.br serv1.secure.inf.br serv1 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.

You might also like