Artigo-Fund Linux-23-02-2012

17
OpenLDAP: Uma Proposta de Integração com o Proxy Squid José Lidonês Alexandre Borges 1 1 Instituto Infnet – Escola Superior da Tecnologia da Informação Caixa Postal xx.xxx – 20.010-020 – Rio de Janeiro – RJ – Brazil 2 Department of Computer Science – University of Durham Durham, U.K. 3 Departamento de Sistemas e Computação Universidade Regional de Blumenau (FURB) – Blumenau, SC – Brazil [email protected] Abstract. This meta-paper describes the style to be used in articles and short papers for SBC conferences. For papers in English, you should add just an abstract while for the papers in Portuguese, we also ask for an abstract in Portuguese (“resumo”). In both cases, abstracts should not have more than 10 lines and must be in the first page of the paper. Resumo. Este artigo tem por objetivo demonstrar a implantação de um serviço de internet, no caso o Proxy SQUID, integrado a um serviço de autenticação central. Esse mecanismo, através do protocolo LDAP, irá possibilitar o acesso dos servidores autorizados pela UNIRIO às bases de dados da CAPES, por intermédio de uma estrutura open- source, no caso OpenLDAP. Os conceitos e soluções propostas neste trabalho são complementados com a apresentação de cenários reais de uso em redes de produção que demonstram a aplicabilidade das soluções de gerenciamento de identidades apresentadas. Palavras chave: Autenticação Centralizada, Serviço de Diretório, OpenLDAP

Transcript of Artigo-Fund Linux-23-02-2012

OpenLDAP: Uma Proposta de Integraçãocom o Proxy Squid

José Lidonês Alexandre Borges1

1Instituto Infnet – Escola Superior da Tecnologia daInformação

Caixa Postal xx.xxx – 20.010-020 – Rio de Janeiro – RJ –Brazil

2Department of Computer Science – University of DurhamDurham, U.K.

3Departamento de Sistemas e ComputaçãoUniversidade Regional de Blumenau (FURB) – Blumenau, SC –

[email protected]

Abstract. This meta-paper describes the style to be used in articles andshort papers for SBC conferences. For papers in English, you shouldadd just an abstract while for the papers in Portuguese, we also ask foran abstract in Portuguese (“resumo”). In both cases, abstracts shouldnot have more than 10 lines and must be in the first page of the paper.

Resumo. Este artigo tem por objetivo demonstrar a implantação deum serviço de internet, no caso o Proxy SQUID, integrado a um serviçode autenticação central. Esse mecanismo, através do protocolo LDAP,irá possibilitar o acesso dos servidores autorizados pela UNIRIO àsbases de dados da CAPES, por intermédio de uma estrutura open-source, no caso OpenLDAP. Os conceitos e soluções propostas nestetrabalho são complementados com a apresentação de cenários reaisde uso em redes de produção que demonstram a aplicabilidade dassoluções de gerenciamento de identidades apresentadas.

Palavras chave: Autenticação Centralizada, Serviçode Diretório, OpenLDAP

1. IntroduçãoO Portal de Periódicos da Capes é uma biblioteca virtualque reúne e disponibiliza a instituições de ensino epesquisa no Brasil o melhor da produção científicainternacional. Ele conta atualmente com um acervo de maisde 30 mil periódicos com texto completo, 130 basesreferenciais, dez bases dedicadas exclusivamente apatentes, além de livros, enciclopédias e obras dereferência, normas técnicas, estatísticas e conteúdoaudiovisual. Possuem acesso livre e gratuito ao conteúdo doPortal de Periódicos professores, pesquisadores, alunos efuncionários vinculados às instituições participantes. OPortal é acessado por meio de terminais ligados a Internete localizados nessas instituições ou por elas autorizados[xx]. O principal objetivo deste trabalho é proporcionar acesso apessoas autorizadas nesse Portal que estejam conectadas emcomputadores externos à Rede UNIRIO. Em virtude disso, estetrabalho irá apresentar os conceitos do LDAP. O LDAP(Lightweight Directory Access Protocol) é um protocolo que define oacesso aos serviços de diretórios, onde diretório é umaestrutura de armazenamento organizada de forma hierárquica,que facilita o armazenamento e busca de informações. OOpenLDAP é um pacote do LDAP adicionado de recursos esoftwares necessários para torná-lo funcional, que ofereceum serviço de diretório prático e seguro. Este serviço éusado para armazenar todos os dados da rede, como senhas,IDs de usuários, nomes, endereços além de outros,centralizando as pesquisas e consultas em si. De acordo com

especialistas, essa centralização é a chave para abrir umcaminho que leva a praticidade na administração de uma redede qualquer tamanho [xx]. Na seção 2 serão elencados os conceitos associados àimplementação OpenLDAP. Na seção 3, será apresentado umserviço de Proxy, especificamente o squid. Já na seção 4,será apresentado para consideração um estudo de caso, cujoconteúdo irá abordar a instalação de um serviço dediretório, com acesso através do OpenLDAP, e a suaintegração com um serviço de internet. Por último, naseção 5 serão apresentadas as considerações finais e ostrabalhos futuros.

2. O LDAP na prática: OpenLDAPO OpenLDAP é um software livre de código aberto queimplementa o protocolo LDAP. Ele é um serviço de diretóriobaseado no padrão X.500. O OpenLDAP é independente desistema operacional. Várias distribuições Linux incluem opacote do OpenLDAP. Esse software foi desenvolvidoinicialmente pela Universidade de Michigan com as seguintescaracterísticas principais:

- suporte a IPv4 e IPv6;

- autenticação (Cryrus Sasl-Kerberos V, GSSAPI, Digest-MD5);

- segurança no transporte – SSL e TLS;

- controle de acessos;

- escolha entre banco de dados;

- capacidade de atender a múltiplos bancos de dadossimultaneamente;

- alta performance em múltiplas chamadas;

- replicação de base.

O OpenLDAP é composto pelos seguintes elementos:

- SLAPD (Stand Alone LDAP Daemon) – Servidor;

- SLURPD (Stand Alone LDAP Update Replication Daemon);

- Bibliotecas diversas de implementação do protocolo LDAP;

- Ferramentas, utilitários diversos e clientes de exemplo.

Possui basicamente dois arquivos de configuração, que são,respectivamente:

a) slapd.conf - configuração do daemon;

b) ldap.conf - configuração para acesso dos clientes àbase.

O OpenLDAP possui os arquivos padrões chamados de schemas.Uma importante característica desses arquivos é seremextensíveis e assim pode-se adicionar mais atributos ouclasses em função das necessidades [Sungaila 2008]. Parausar um schema é necessário incluí-lo no arquivo deconfiguração slapd.conf. Os schemas definem:

- as classes de objetos (object classes) que podem serinseridas num diretório;

- os atributos de uma determinada classe de objetos;

- os valores possíveis para os atributos.

Se um objeto (entrada), não obedecer às regras do schema,ele não poderá ser inserido no diretório. Portanto cadaentrada estará condicionada a uma hierarquia dearmazenamento dos dados na base LDAP. Isto é especificadoatravés do Distinguished Name (DN).

O DN é usado para identificar uma entrada de forma nãoambígua num serviço de diretório. Esse atributo é compostopor uma seqüência de Relative Distinguished Name (RDN) e cadaRDN corresponde a um ramo na árvore do diretório, desde araiz até a entrada à qual o DN faz referência. Um DN éformado por uma série de RD´s separados por vírgulas. Segueexemplo de composição de dn e seus atributos

dn: uid=alexandre,ou=usuarios,dc=unirio,dc=br

No que se refere à organização estrutural das informaçõesdo LDAP e a ordem de leitura da informação, temos osprimeiros níveis de diretórios refletindo o nome dedomínio da empresa, conforme pode ser observado na FIG.xxxx:

Figura xxxx – Estrutura da árvore de busca do LDAP

A inserção dos dados na base LDAP será feita por meio dearquivos ldif (LDAP Data Interchange Format), um arquivo detexto comum que pode ser criado ou alterado por qualquereditor de textos, obedecendo-se apenas, o schema dodiretório. As funções do arquivo ldif são: importar dadospara o diretório, alterar objetos existentes, criar obackup do diretório e replicação do diretório.

A seguir, um exemplo de arquivo ldif: dn: uid=alexandre,ou=aluno,dc=unirio dc=br objectClass: top objectClass: organizationPerson objectClass: mailUser uid: alexandre

4 Estudo de CasoEsta seção apresenta um estudo de caso que irá abordar ainstalação de um serviço de diretório, com acesso atravésdo OpenLDAP, e a sua integração com um serviço deinternet, no caso o Proxy Squid em uma InstituiçãoAcadêmica.

Na seção 4.1, será apresentado um cenário inicial que irámostrar de onde as informações referentes aos usuários daUNIRIO serão utilizadas para autenticar realizar aintegração com o serviço de internet. Nesse caso, énecessário que se faça uma reestruturação desses dados paraque sejam concentrados em um único sistema, garantindo aunicidade, a confiabilidade e centralização dasinformações, tornando-se acessíveis a quaisquer sistemaspretendidos no futuro pela Instituição.

4.1 Cenário AtualA UNIRIO tem um corpo social constituído por discentes,técnicos-administrativos e docentes qualificados etitulados-doutores, mestres e especialistas nas maisvariadas áreas de conhecimento. A Instituição possuisistema de bibliotecas, arquivos e está implantando ainformatização em toda a área acadêmica. A Universidade do

Rio de Janeiro está plenamente adequada aos dispositivosestabelecidos pela nova Lei de Diretrizes e Bases daEducação n° 9394 96.

Os usuários da UNIRIO, em sua maioria, têm à disposição umcomputador com sistema operacional cliente Windows 7 paraexecutarem suas tarefas. Além disso, a Instituição possuiem seu parque tecnológico servidores que hospedam diversosserviços e sistemas, dentre eles o sistema de Proxy SQUID.Além disso, existe o Sistema de Informações para o Ensino(SIE), é um Projeto que teve apoio pela Secretaria deEnsino Superior (SESu) do Ministério da Educação (MEC).Trata-se de uma aplicação para gestão integrada que propõea integração de todas as atividades de uma Instituição deEnsino Superior, permitindo a gestão de informação atravésda integração de módulos.

Esse sistema possui o cadastro dos mais variados perfis deusuários da Instituição, ou seja, discentes, docentes etécnicos administrativos. Cada qual com uma conta deusuário e senha para acesso aos seus respectivos módulosadministrativos. A base de dados desse sistema não seintegra aos demais sistemas e serviços existentes naUNIRIO.

Em relação aos acessos à Internet, apesar de haver umcontrole sobre eles por meio de alguns serviços, osusuários não precisam de autenticação nesses acessos. Alémdisso, esse ambiente não possui um controle nem descriçãodetalhada sobre os acessos de cada usuário.

Em virtude do que foi mencionado, percebe-se que ainfraestrutura computacional da Instituição encontra-se numcontexto de difícil gerenciamento. Logo, necessita de umareestruturação que proporcione a centralização dessasdiversas informações referentes aos usuários e que seja,além de acessível por todos os sistemas e serviçosexistentes, de fácil manutenção e passível deescalabilidade.

4.2 Proposta do ProjetoEste projeto tem por objetivo propor uma solução viável esuficiente para atender a demanda elencada na seção 1(Introdução) deste trabalho. Considera-se como principalrequisito a integração da autenticação entre o Sistema deGestão SIE e o serviço de Internet disponível daInstituição, destacando o serviço de autenticação deusuários através de um sistema gerenciador de domínio eautenticação e o serviço de Proxy. Esse requisito visagarantir a unicidade e a não redundância das informaçõesrelativas aos usuários, além da centralização dasinformações.

4.3 Requisitos necessários de software Como proposta foram utilizadas soluções OpenSource, nocaso, a solução de software OpenLDAP descrita na seção 2deste trabalho na implementação do protocolo LDAP.

O sistema operacional adotado na implementação desteprojeto será o Linux. A distribuição escolhida foi o SUSE.Ela é robusta, estável e acima de tudo possuir totalintegração com o software OpenLDAP [02]. Em adição, é adistribuição utilizada pela UNIRIO nas máquinas virtuais(Virtuais Machines- VMs) dos seus servidores Linux.

Para o sistema gerenciador de domínio e autenticação,utilizar-se-á a integração entre os aplicativos provedoresde serviço OpenLDAP. Para o sistema de Proxy, utilizar-se-áa solução de software SQUID. Esse software não serádetalhado por não ser foco principal deste trabalho.

4.4 Os Procedimentos para Implantação do ProjetoPara este projeto, tem-se como objetivo a implementação doprotocolo LDAP numa VM de um servidor Linux SUSE, a fim deprover autenticação centralizada inicialmente às bases dedados da CAPES e futuramente aos diversos sistemas eserviços providos. Assim, segue o planejamento dasatividades:

1. Verificar infraestrutura de servidores e capacidade deintegração;

2. Verificar compatibilidade de Sistema Operacional doservidor SUSE com o protocolo LDAP e a solução OPenLDAP;

3. Verificar compatibilidade da solução OpenLDAP comsistema de Proxy SQUID;

4. Instalar o software OpenLDAP e suas respectivasdependências;

5. Popular base de dados do OpenLDAP com os grupos eusuários do sistema de gestão SIE;

6. Integrar autenticação dos usuários do SIE ao sistema deProxy SQUID;

7. Configurar sistema de Proxy Squid para integrar-se aoOpenLDAP;

8. Configurar navegador da estações de trabalho para quebusquem autenticação através do Proxy SQUID;

9. Testar e homologar a solução proposta;

10. Documentar e elaborar manuais com os procedimentos;

11. Preparar tutoriais para configuração dos navegadoresclientes e realizar a divulgação ao público alvo.

4.5 A Implementação do Projeto

Conforme exposto na seção 4.3, a distribuição Linuxutilizada na implementação do OpenLDAP é o SUSE. De acordocom os itens da seção 4.3, verificou-se que hácompatibilidade desse sistema operacional com os softwaresnecessários elencados para o projeto. Na instalação doOpenLDAP e suas respectivas dependências utilizaremos ogerenciador de pacotes denominado YaST. Ele é a ferramentade instalação e configuração das distribuições openSUSE edo SUSE Linux Enterprise. Essa ferramenta é muito popularpor sua fácil e atrativa interface gráfica, que permite deforma rápida, simples e inteligente, a configuração do seusistema durante e após a instalação. O YaST (Yet anotherSetup Tool), pode ser usado para configurações diversas emseu sistema como: configuração de hardware, configuração de

rede, serviços do sistema, configurações de segurança,instalação/remoção de programas entre outros. Tudo isso apartir do centro de controle YaST. [2]

4.5.1 Instalação e Configuração do Servidor OpenLDAPO LDAP (Lightweight Directory Access Protocol) é umprotocolo utilizado pelos servidores para concentrarinformações em um repositório logicamente organizado. Égraças a ele que informações comuns podem ser inseridas,alteradas, excluídas e consultadas de uma espécie de "bancode dados de informações". Ao se registrar um usuário nodomínio, por exemplo, as informações referentes a esseusuário estarão armazenadas e disponíveis graças ao usodeste protocolo. Por sua vez, o OpenLDAP é umaimplementação OpenSource do LDAP.

O primeiro procedimento foi a instalação e configuração doOpenLDAP. Para isso, editou-se o arquivo/etc/openldap/slapd.conf. A seguir, definiu-se a raiz debusca do LDAP e o usuário responsável pela administração dabase de informações de diretórios:

suffix “dc=unirio,dc=br” rootdn “cn=admin,dc=unirio,dc=br”

O passo seguinte foi a definição de uma senha esse usuário.Para isso, foi utilizado o utilitário slappasswd que gerouuma senha criptografada com o algoritmo SSHA, padrão doOpenLDAP. O hash gerado foi copiado para o campo rootpw doarquivo de configuração slapd.conf. Após esses procedimentos, iniciou-se o serviço do OpenLDAPpara testar se as configurações realizadas estavamcorretas.

4.5.2 População da base LDAPPara o povoamento da base de informações de diretórios doLDAP foram executados os seguintes procedimentos:

a. carga inicial: com o uso do script popula-base-ldap-inical.sh;

b. consulta no DB2 (DB) do sistema de gestão SIE,através do script JdbcTestDB2.java;

c. conversão do arquivo TXT (do DB2) para o padrãoLDIF, com o uso do script converte-sie-ldif.sh;

d. popular a base LDAP com o conteúdo do arquivoLDIF, através de comandos específicos (ldaladd xxxxxxxx).

4.5.3 Integração da Base LDAP com o Serviço de ProxyUma vez que a base de informações de diretórios do LDAP jáfoi povoada com as informações básicas necessárias, oserviço estará pronto para receber os diversos cadastros degrupos e usuários que se fizerem necessário. Sendo assim,para adicionar um grupo na base de informações dediretórios providos pelo OpenLDAP.Com isso, tem-se o LDAP implementado por meio do softwareOpenLDAP. A partir desse estágio pode-se realizar aintegração OpenLDAP com os demais serviços providos pelaUNIRIO. No caso deste projeto com o serviço de Internet ProxySQUID.Para a integração com o serviço de Proxy SQUID inicialmenteeditou-se o arquivo squid.conf situado no diretório/etc/squid. O primeiro passo é definir os parâmetros deautenticação do SQUID adicionando ao arquivo algumas linhasde configuração. Em seguida, definiu-se uma regra que forceo uso das credenciais de acesso do usuário de forma apermitir a navegação na Internet. Para isso, foramadicionadas as seguintes linhas no arquivo de configuraçãodo SQUID: acl password proxy_auth REQUIRED

http_acccess allow password

Feito isso, encontram-se integrados os serviços de ProxySQUID e OpenLDAP.

4.5.4 TestesUma vez que o OpenLDAP foi implementado e integrado oserviço de Proxy SQUID foram executados testes com oobjetivo de garantir o sucesso dessa implementação e ocumprimento dos requisitos. Para isso, foi configurado oendereço de Proxy no navegador de uma estação da rede deprodução da UNIRIO, conforme figura xx.

******* como fazer os testes de integração base LDAP e Proxy SQUID??? ******

FIGURA x - Configuração de Proxy no navegador InternetExplorer.

As configurações do servidor Proxy são importantes para queas requisições de páginas que saem das estações de trabalhopassem pelo servidor Proxy a fim de validar as informaçõesde contas de usuários antes de irem para a Internet. Umavez configurado o navegador, digita-se um endereço de umapágina web qualquer a fim de verificar se será solicitada aentrada de credenciais LDAP para autorizar a navegação.Caso as credenciais sejam válidas, ou seja, de acordo comuma conta no sistema de gestão da Universidade, o acessoserá liberado.

FIGURA xx - Pedido de credenciais LDAP pelo serviço de Proxy no navegador de Internet.

A seguir, mensagens de LOG do serviço de Proxy SQUID noservidor que confirmam o sucesso da operação. Conforme podeser visto, o serviço de Proxy SQUID registrou o acesso àpágina “http://www.google.com” pelo usuário bsa.

1290697575.627 367 192.168.122.194 TCP_MISS/302 791 GET http://www.google.com/ bsa DIRECT/64.233.163.104 text/html 1290697575.868 240 192.168.122.194 TCP_MISS/200 7435 GET http://www.google.com.br/ bsa DIRECT/64.233.163.104 text/html 1290697576.397 112 192.168.122.194 TCP_NEGATIVE_HIT/204 287 GET http://clients1.google.com.br/generate_204 bsa NONE/- text/html 1290697576.639 242 192.168.122.194 TCP_MISS/204 369 GET http://www.google.com.br/csi? bsa DIRECT/64.233.163.104 text/html

Considerações Finais

Este artigo apresentou uma proposta para um projetoacadêmico totalmente open-source. Concluiu-se que com o usodo OpenLDAP é possível unificar diferentes serviços esistemas autenticando uma única vez. Tal afirmaçãomostrou-se verdadeira, pois uma vez instalado e validado oOpenLDAP, povoou-se a base de dados com informaçõesiniciais de configuração do próprio protocolo eforam adicionada informações de grupos de usuários dosistema de gestão (SIE) da Universidade. Partiu-se entãopara a integração com o serviço de Proxy SQUID. Após testes de configuração das integrações foramrealizados, com o objetivo de validar se os serviçosestariam em condições de uso. Integrados os serviços deProxy e o sistema OpenLDAP, os resultados comprovaram osucesso e o cumprimento do objetivo proposto para estaproposta.

Dentre os testes realizados, os principais foram o deautenticação da estação de trabalho ao OpenLDAP e testes deautenticação de forma a liberar a navegação na Internet.Diante dessas informações comprovadas, demonstrou-se aeficácia do OpenLDAP e do protocolo LDAP como solução nacentralização e disponibilidade de informações.

Trabalhos FuturosComo trabalhos futuros sugere-se um estudo do modelo desegurança do LDAP integrado a outros serviços,principalmente nas questões ligadas à confidencialidade eintegridade das informações. Em adição, a escalabilidade dediretório com base serviços para Internet é passível deestudo. Além disso, sugere-se um trabalho com esquemas pararepresentar consultas e modelos em um diretório LDAP. Cabesalientar que no momento está em andamento a vinculação dabase LDAP proposta com outros serviços de Internet, taiscomo: SAMBA, Active Directory, Postfix e outros.

References[1] TRIGO, Clodonil Honório; OpenLDAP : uma abordagemintegrada, São Paulo: Novatec, 2007.

[2] http://pt.opensuse.org/Portal:YaST[3] www.openldap.org

[4] BUTCHER, Matt. Mastering OpenLDAP: Configuring,Securing, and Integrating Directory Services. Olton:Packt Publishing Ltd., 2007.

[5] OPENLDAP FOUNDATION. The OpenLDAP Foundation Overview.Nevada. Disponível em:<http://www.openldap.org/foundation>. Acesso em: xx dez.2012.