OpenLDAP: A Chave é a Centralização
Por Jaime Ribeiro Junior | 11/12/2008 | TecnologiaOPENLDAP: a chave é a centralização
Autores:
Escritor: JAIME RIBEIRO JUNIOR
Revisor: MÁRIO CÉSAR DE CASTRO
Universidade Estadual de Goiás
Unidade de Pires do Rio
Curso Superior de Tecnologia em Redes de Computadores
Sites recomenedados
www.ueg.br
www.strc-ueg.blogspot.com
Resumo: LDAP é um protocolo que define o acesso aos serviços de diretórios, onde diretório é uma estrutura de armazenamento organizada de forma hierárquica, que facilita o armazenamento e busca de informações. O OpenLDAP é um pacote do LDAP adicionado de recursos e softwares necessários para torná-lo funcional, que oferece um 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, esta centralização é a chave para abrir um caminho que leva a praticidade na administração de uma rede de qualquer tamanho. Para que todos compreendam melhor ao decorrer do artigo serão mostrados conceitos como segurança, diretórios e a história do LDAP objetivando despertar o interesse de todos aqueles que são envolvidos com a área de redes de computadores.
Palavras-chave: LDAP. OpenLDAP. Diretório. Centralização. Segurança. Administração. Redes de computadores.
Abstract: LDAP is a protocol that defines the access to directories services, where directory is a structure of storage organized in a hierarchical form, which facilitates the storage and searching for information. The OpenLDAP is a package of LDAP added ofneeded resources and softwares to make it functional, which offers a practical and safe directory service. This service is used to store all data of the network, such as passwords, user IDs, names, addresses and other, centralizing the researches and consultations in itself, this centralization is the key to open a path that leads to a convenience in the administration of a network of any size. So that everyone best understands in the course of the article will be presented concepts such as security, directories and history of LDAP, aiming to arouse the interest of all those who are involved in the area of computer networks.
Key-words: LDAP. OpenLDAP. Directory. Centralization. Security. Administration. Computer network.
1 – INTRODUÇÃO
LDAP (Lightweight Directory Access Protocol) Protocolo Leve de Acesso a Diretório. Trata-se, como o nome já diz de um protocolo, que rege a forma de acesso a serviços de diretórios e respectivos clientes, em outras palavras ele fornece a comunicação entre usuários e serviços de diretórios.
Em sua forma implementada temos o OpenLDAPque é o LDAP atribuído de recursos e funcionalidades. Ele oferece a integração com protocolos de comunicação como o IPv4 e IPv6 e de transferências de arquivos como FTP e outros, além da integração do banco de dados, chaves criptográficas dentre outras ferramentas que fazem com que o LDAP possa ser implementado de forma segura e funcional, possuindo dentre outras a capacidade de armazenamento de dados dos usuários da rede de forma prática e segura, inclusive logins e senhas.
Dentre todas as funcionalidades do OpenLDAP, a que consideramos como a de principal destaque, é a capacidade de oferecer a autenticação de usuários usando sua base de dados. Com ela, pode-se acessar as referências de todas as informações dos usuários da rede em um único lugar permitindo também que todos os protocolos e serviços de diretórios vinculados a ele possam utilizar seus dados para a autenticação de seus clientes, isso gera o que se denomina de centralização, pois a autenticação de todos os serviços de rede se concentrarão em uma única árvore de informações, como conseqüência facilitando, o trabalho do gerente de redes.
Atualmente existe uma escassez de profissionais qualificados para a sua instalação e manutenção, uma vez que como qualquer ferramenta avançada traz consigo a necessidade de um profissional especializado para poder resolver os percalços encontrados no caminho de sua implementação.
Este artigo tem por finalidade fazer com que o leitor conheça a origem do LDAP e entenda como o OpenLDAP, pode através da centralização facilitar o trabalho do administrador da rede durante a gestão dos serviços da mesma, facilitando a gerência de cadastros de usuários e também entender o LDAP passando por conceitos como: Diretório, Centralização e Segurança.
Aqui será abordado de forma sintetizada os itens citados acima com enfoque à centralização da base de dados, objetivando apresentar o OpenLDAP, mostrando suas características, origem e principalmente a praticidade que eletraz depois de implantado.
Possíveis problemas também serão detalhados ao longo do desenvolvimento como dificuldades na implementação e segurança, para isso realizaremos uma revisão teórica, abordando o assunto, tanto em material impresso como digital e uma análise prática feita apenas com o intuito de testar aquilo que a teoria pesquisada nos mostra, tanto que por não considerarmos importante a execução deste em um projeto, nosso trabalho não citará como foi o trabalho de implementação, mas sim suas características, afim de despertar o interesse dos leitores pelo mesmo.
A criação deste se justifica na exposição do OpenLDAP que poderá ajudar não só aos gerentes de redes, mas também aos estudantes de informática, futuros administradores de redes, que ao dominar tal ferramenta terão em suas mãos mais um diferencial de mercado de alto conceito. Fazer com que o leitor conheça e compreenda o que ele é e suas funções, com isso difundindo mais essa ferramenta que, como já salientada, muito interessante quando se fala em administrar uma rede, seja ela de pequeno, médio ou grande porte.
2 – AFINAL O que é um diretório? onde ele é aplicado?
Antes de prosseguir é importante que se saiba realmente o conceito de diretório. Diretórios por si só não são difíceis de serem compreendidos. Uma estrutura organizada em diretórios tem por finalidade facilitar a busca de informações armazenadas na mesma. Sua existência é fundamentada na necessidade da indicação de direções.
Imagine que você precise pesquisar uma palavra no dicionário, primeiro você pega o dicionário procura a letra inicial da palavra desejada e depois procura a palavra que se deseja encontrar, sendo que cada uma dessas etapas depende de uma outra e são organizadas de forma hierárquica.
Eles possuem o mesmo princípio de orientação do dicionário e são organizados de forma hierárquica onde um principal, chamado de raiz, é a base para todos os demais. Os diretórios pertencentes a tal podem conter outros que por sua vez podem conter outros e assim sucessivamente formando uma hierarquia onde a organização da mesma recebe o nome de árvore.
Esta estrutura guia o usuário para facilitar a procura de uma informação, passando desde a raiz, depois pelos diretórios subjacentes até se chegar à informação desejada.
Sua organização deve ser de uma forma lógica e coerente, para que suas direções sempre estejam corretas. Imagine agora que você está procurando uma palavra no dicionário que comece com a letra "A" mas a palavra foi colocada entre as de letra "B", isso geraria uma dor de cabeça terrível, afinal invés de ajudar a direção estaria atrapalhando, contrariando o princípio de sua existência.
2.1. Aplicações de diretórios no mundo da Informática
Trigo (2007, p. 18), define Diretório como sendo "um serviço de armazenamento hierárquico de informações de objetivo principal de facilitar a pesquisa e a recuperação dessas informações". Por sua vez, Tuttle (2003, doc. eletrônico) descreve o diretório como "uma lista de informações sobre objetos organizados ou catalogados em uma ordem, e que fornece o acesso aos dados dos objetos".
Na informática tudo que se precisa de organização utiliza o princípio de diretórios, sistemas de arquivos, protocolos de transferência de arquivos, sistemas de armazenamento WEB, banco de dados e até mesmo o editor de registro do MS-Windows, ou seja, seu conceito é usado por tudo que se precise de organização, mas apesar de serem organizados em forma de diretórios eles não são um serviço de diretório, podendo a vir usufruir da utilização de um.
O serviço de diretório é responsável por prover o armazenamento, a organização das informações durante a escrita e o armazenamento, que serão resgatadas por terceiros, sendo uma ferramenta a mais que pode ser usada para complementar à utilização de outros serviços facilitando manutenção, a busca e localização de dados por usuários e aplicativos, onde todos os serviços compartilham o mesmo servidor de diretório e a mesma árvore de informações.
A utilização de um serviço de diretório se justifica no âmbito de redes de computadores, sendo ela de pequeno, médio ou grande porte, pois ao utilizar um servidor de diretórios, os dados atualizados ficarão disponíveis a todos os serviços da rede, facilitando e muito a vida dos administradores, através da utilização do conceito denominado centralização de informações.
Com a centralização ficará muito mais fácil a manutenção dos dados, tal como a disponibilização de novas informações na rede. Imagine uma empresa onde existem dez máquinas e todas elas devem manter dados de clientes atualizados em diversos aplicativos, caso não utilizem um serviço de diretório, a manutenção destes teria que ser feita na base de dados de cada aplicativo onde seria difícil dar a garantia de que os dados, em todos eles, ficariam 100% sincronizados.
O serviço de diretório é aquele que armazena informações de forma hierárquica, obedecendo aos critérios que regem seu princípio de organização, possibilitando buscas e consultas, podendo ser ou não distribuídos, disponibilizando suas informações para auxiliar outros serviços, protocolos e aplicativos.
Quando se fala em diretórios distribuídos significa que irá trabalhar com mais de um servidor de diretórios, uma árvore de diretórios é considerada distribuída quando ela está armazenada em dois ou mais servidores. Apesar da árvore estar fisicamente separada, a pesquisa continua centralizada, todos os dados pertencem à mesma árvore, sendo que em cada servidor há referências para os nós da rede em que estão os demais servidores e fazem com que logicamente a árvore seja uma só.
Uma busca pode ser realizada através do princípio da árvore (raiz) ou a partir de um nó, indicado pelo usuário, que esteja mais próximo da informação desejada, no segundo caso a resposta será mais rápida. No caso de diretórios distribuídos, a pesquisa será realizada primeiro no servidor raiz e depois passa pelos demais, caso seja estipulado pelo usuário um servidor específico para se iniciar a pesquisa, a resposta será consideravelmente mais rápida, pois ao invés de pesquisar em todos os servidores, a pesquisa será feita a partir de um ponto específico da árvore.
Já os diretórios distribuídos que utilizem meios externos, como a internet, a pesquisa será feita inicialmente no servidor ou servidores locais, se informação não for encontrada o servidor local redirecionará a busca para os servidores externos, tendo um tempo de resposta consideravelmente mais lento, considerando que a banda da internet é muito menor que a de uma rede local. Claro que em todos os casos citados acima, para que as buscas ocorram da forma esperada é inevitável que os servidores de diretórios sejam previamente configurados de forma correta pelo técnico responsável ou o administrador da rede.
3 – Do X.500 ao OpenLDAP
3.1. Um pouco da História, a origem do LDAP
O X.500 é um padrão de protocolos de serviços de diretórios, utilizados em redes de computadores, foi elaborado para trabalhar em cima do modelo OSI e incorporado ao pacote de protocolos do mesmo,ISO/IEC 9594. Designado para dar suporte ao padrão X.400, que define a troca de mensagens eletrônicas entre os usuários da rede local, onde a função do X.500 é prover serviços de diretórios para rede, centralizando a base de dados dos usuários da rede em um servidor X.500.
O protocolo de acesso a diretórios – DAP (Directory Access Protocol) faz parte das especificações do padrão X.500, foi feito para trabalhar junto a todas as camadas do modelo OSI, e tinha por objetivo definir o acesso de usuários aos serviços de diretórios que seu padrão provia.
Assim como o OSI, o X.500, conseqüentemente, o DAP foram feitos antes do advento da internet e originalmente não foram preparados para trabalhar com o TCP/IP, visto que segundo Trigo (2007), a aplicação do mesmo além de ser de difícil implementação, gerava aplicações complexas e lentas. Além do mais o estilo da organização da árvore de diretórios do X.500 não foi preparado para a utilização de diretórios distribuídos.
Quando se trata de redes, tudo gira em torno dos protocolos, a Internet, e-mail, intranets, transferência de arquivos acessos a diretórios e outros providos pela pilha TCP/IP são todas operações baseadas em protocolos como, HTTP, FTP, UDP, TCP, IP, POP, SMTP e tantas outras siglas terminadas em "P", sendo um conjunto de regras que estabelecem funções específicas.
A grande vantagem da utilização de protocolos se resume na compatibilidade que eles oferecerem tanto entre hardwares como entre softwares de diversos fabricantes, o que os tornaram compatíveis entre si. Um exemplo prático disso é a possibilidade de se estabelecer a comunicação entre Sistemas Operacionais diferentes, ou partindo para o nível de hardware, que é, por exemplo, fazer com que placas de rede de fabricantes distintos possam se comunicar.
Já se é aceito que a implementação do Modelo OSI utiliza uma gama maior de recursos de rede, onde se trafega uma grande quantidade de dados desnecessários, e a pilha TCP/IP por sua vez trabalha de forma mais leve exigindo menos dos recursos da rede, tanto que com a disseminação da internet, o TCP/IP passou a ser usado como um padrão internacional. O sucesso foi tanto que os protocolos do X.500 foram adaptados para que as redes TCP/IP pudessem trabalhar com os servidores X.500. Posteriormente percebeu-se a necessidade da criação de protocolos que se encaixassem melhor as suas características.
O LDAP foi criado como uma alternativa ao DAP, para prover acesso aos serviços de diretórios do X.500 pelos protocolos da pilha TCP/IP. O LDAP é mais fácil de ser implementado do que o DAP além de exigir menos dos recursos da rede e memória. Ele foi desenvolvido, e não adaptado como o DAP, para aplicações TCP/IP, sendo assim o LDAP obteve um maior desempenho. Por esses motivos recebeu o nome Lightweight Directory Access Protocol (protocolo leve de acesso a diretórios), que é o nome de seu antecessor acrescentado de Lightweight (leve).
Posteriormente foram criados servidores de diretórios voltados para o TCP/IP e o LDAP. O Slapd (stand-alone LDAP daemon - servidor) foi escolhido como a melhor opção e consolidado. Com sua utilização, passa a se colocar em prática um software provedor de serviços de diretórios específicos para o TCP/IP e o LDAP deixando de lado o X.500 que é uma mera adaptação de um padrão desenvolvido para o modelo OSI. Com isso haverá um ganho em performance e funcionalidades e melhor integração com o LDAP.
Assim sendo o LDAP passou a ser a melhor forma de se obter o acesso a serviços de diretórios e foi padronizado em julho de 1993 no RFC 1487 da IETF (Internet Engineering Task Force – Força-Tarefa de Engenharia da Internet) estando na versão 2.4.12.
3.2. O LDAP em prática: OpenLDAP
Cada vez fica mais difícil encontrar servidores X.500, pois o LDAP possui custo menor de hardware mostrando-se mais fácil de se implementar e possui uma melhor eficiência de funcionamento. Com o modelo OSI enterrado a utilização de um servidor X.500 adaptado ao invés de um servidor LDAP passa a ser uma displicência do administrador da rede, pois pra quem já conhece o funcionamento de X.500 se qualificar para o uso do LDAP fica fácil.
Como já citado o LDAP é o protocolo que rege a comunicação entre usuários e os serviços de diretórios e nada mais. Para que o LDAP seja funcional o mesmo tem que ser integrado com o software servidor de serviços de diretórios (slapd), além de outros softwares que atribuem aos servidores de diretórios diversas funções como, softwares de autenticação de usuário, banco de dados, chaves criptográficas e os demais protocolos de comunicação.
Com o objetivo de facilitar o uso do LDAP a Universidade de Michigan, nos Estados Unidos da América, desenvolveu inicialmente o OpenLDAP, que por ser um software livre traz consigo todas as vantagens que um software livre possui, como a rápida ampliação de recursos e correção de bugs. O OpenLDAP é a implementação do LDAP sendo que ele adiciona os recursos necessários para sua utilização. A suíte é composta pelos softwares:
·Slapd - stand-alone LDAP daemon (servidor);
·Slurpd - stand-alone LDAP update replication daemon;
·Syncrepl – Replicação de base é mais flexível e tem mais recursos que o slurpd, mas só funciona nas versões mais novas do OpenLDAP;
·Bibliotecas de implementação do protocolo LDAP;
·Utilitários, ferramentas e amostras clientes;
Segundo Trigo (2007):
As principais características do OpenLDAP são:
·Suporte a IPv4 e IPv6;
·Autenticação (Cryrus Sasl-Kerberos V, GSSAPI, Digst-MD5);
·Controle de acessos;
·Escolha entre bancos de dados (LDBM e o BerkeleyDB);
·Capacidade de atender a múltiplos bancos ao mesmo tempo;
·Alta performance em múltiplas chamadas;
·Replicação de base.(TRIGO,2007, p. 30)
Pode-se concluir que o OpenLDAP é um pacote de softwares que trabalha vinculado com o LDAP, e que juntos oferecem um serviço de diretório prático e seguro, com várias funcionalidades como autenticação de usuário e armazenamento de informações, facilidade de backup, funcionamento em redes TCP/IP versão 4 e 6 entre outros.
4 – O OPENLDAP E A CENTRALIZAÇÃO
Ao se utilizar o SLDAP (servidor LDAP, máquina onde o OpenLDAP está instalado), como base para busca de informações, pode-se fazer com que todos os serviços e aplicativos da rede o usem para buscar as informações, de forma que todos compartilhem uma única árvore. Fazendo com que todos os serviços da rede fiquem integrados a ele, facilitando muito a administração de redes de qualquer tamanho.
Ao se colocar todos os dados da rede em uma única árvore de informações e fazendo com que todos os serviços e aplicativos passem a utilizar o SLDAP, estará se centralizando todos os dados e as buscas dos mesmos, isto é o que se denomina centralização! Onde ela é a chave para a utilização de um estilo que traz facilidade e eficiência na gerência de redes.
Enfocando que centralização é o ato de se utilizar um serviço de diretório na rede fazendo com que todos os outros serviços e softwares que necessitem buscar informações façam todas suas buscas no servidor de diretórios.
Com a utilização da centralização o administrador de redes tornará os serviços e softwares da rede, muito mais práticos e fáceis de se gerenciar, pois ao utilizar está "chave" ele abrirá uma "porta" para uma gerência de forma inovadora, como a autenticação de todos os serviços da rede em uma única base de dados, uma agenda com todos os dados dos usuários que pode ser acessada de qualquer ponto da rede, ou seja, as informações do SLDAP poderão ser utilizadas por qualquer software que venha precisar delas.
4.1. Funcionamento do OpenLDAP
Todo tipo de informação pode ser armazenado nos atributos da base do OpenLDAP como nomes, ID's de usuário, fotos, locais de trabalho, senhas, e-mails entre outros. Os responsáveis por determinar quais tipos de entradas são válidas na base do OpenLDAP são arquivos chamados schema, segundo Trigo (2007, p. 24) "schema é como uma planta-baixa, uma definição da estrutura das entradas e dos atributos que podem ser inseridos nelas".
Qualquer software que venha a necessitar da consulta de informações para seu funcionamento, é um forte candidato para a utilização do OpenLDAP, para isso basta que o mesmo tenha um arquivo schema. Criar arquivos schemas é possível, entretanto não é fácil, por isso o OpenLDAP traz consigo os schemas necessários para a configuração de seus principais recursos. Serviços conhecidos como Samba, FTP, Apache, já possuem schemas prontos disponíveis em repositórios na Internet, se o software que o usuário pretender usar não tiver nenhum schema existente ele poderá criá-lo.
Schemas são registrados e padronizados sob RFCs, segundo Trigo (2007) :
Cada elemento de um schema é identificado por um OID (Object Identifier – Identificadores de Objetos). Por questões de padronização e para evitar ambigüidades, esses Identificadores de Objetos são registrados por uma autoridade específica, a IANA (Internet Assigned Numbers Authority – Autoridade de Atribuição de Números da Internet.
O Sistema de numeração de objetos é hierárquico, e a IANA garante que aquele OID é usado apenas por um objeto. O objeto organization, por exemplo, usa o número 2.5.6.4 Este número representa um ramo de uma árvore de numerações, onde cada número separado por um ponto indica um nível da árvore. (TRIGO, 2007, p. 77).
Portanto caso seja necessário criar um schema primeiro deve-se informar o IANA e solicitar um OID para os novos objetos a serem criados e também pegar os OIDs dos objetos já existentes, que serão utilizados no schema, para que não haja um mesmo objeto com mais de um OID, pois no caso da existência de um o solicitante ficará sabendo automaticamente.
Para que os softwares vinculados ao LDAP utilizem os objetos da árvore o schema correspondente deverá conter quais objetos serão usados pelo software e a responsabilidade de adicionar o objeto à árvore ficará sob responsabilidade do administrador.
Vamos supor que temos três serviços que necessitem autenticação e que todos precisem de um objeto "ID de usuário", nos três serviços será o mesmo objeto com o mesmo OID, na árvore de informações existirá também o mesmo objeto com o mesmo OID, assim todos os três serviços compartilharam o objeto "ID de usuário", caracterizando a centralização.
Os serviços de diretório que o OpenLDAP provem, é estabelecido através do Slapd e a comunicação do mesmo com os usuários, serviços e etc é feito através do LDAP. Segundo Trigo (2007) a forma de armazenamento das informações da árvore de diretórios independe do protocolo, podendo variar de um simples arquivo de texto até um banco de dados relacional completo.
Um item de grande importância são os arquivos ldif (ex: arquivo.ldif), estes são arquivos de texto comum e são com eles que o protocolo LDAP faz a importação e exportação de informações da base de dados. Podem ser editados por qualquer editor de texto como o VI, gedit, kedit e outos.
Os bancos de dados nativos do OpenLDAP são o LDBM e o BerkeleyDB sendo eles feitos especificamente para este tipo de serviço. Mas se necessário, o OpenLDAP pode trabalhar com banco de dados relacionais, onde através dele poderão ser feitas buscas e consulta, onde a autenticação para acesso ao banco de dados poderá ser feita através do OpenLDAP, ou seja, será criada a possibilidade de que o OpenLDAP envie dados para o banco de dados e o mesmo também realize pesquisas. Para que se vincule um banco de dados relacional ao OpenLDAP ele deve ser compilado com suporte a SQL e ao ODBC (Open Data Base Connectivity - Conectividade de Banco de dados aberto), pois banco de dados relacionais dependem o ODBC para estabelecer conexões, além da adição do Schema. TRIGO (2007) destaca, que o OpenLDAP possui suporte para os seguintes banco de dados relacionais: IBMDb2, Mssql, MySQL, Oracle, PostgreSQL, e Timesten.
O OpenLDAP é capaz de atender a múltiplos banco de dados ao mesmo tempo, isso torna possível, caso necessário, utilizar mais de um. Gerando, no entanto, um grande tráfego na rede e exigindo que elas estejam fisicamente preparadas.
Como já enfatizado o OpenLDAP, provém um conjunto de softwares que são implementados juntos ao LDAP e ao Slapd para que SLDAP ser torne funcional, o Cryrus Sasl-Kerberos V, GSSAPI e Digst-MD5 fazem parte da família OpenLDAP e são softwares responsáveis por prover a autenticação de usuários. Estes softwares permitem o OpenLDAP oferecer o serviço de autenticação utilizando a base SLDAP de informações. Assim poderá ser feito como que todos os serviços da rede como FTP, SAMBA, SQUID, APACHE, QMAIL, domínios Windows, e domínios Linux e diversos outros serviços de redes autentiquem na base do SLDAP e não em bases individuais.
Com o OpenLDAP instalado e configurado um nome de usuário senha poderá ser buscado na base LDAP de qualquer ponto da rede ,e o usuário terá acesso normal a todos os serviços que lhe for permitido. O mesmo acontece com a busca de qualquer tipo de informação que poderá ser buscada em qualquer ponto da rede sendo necessário apenas que o usuário que a busque tenha permissão para o mesmo.
Dentre as configurações da OpenLDAP existem entradas responsáveis por definir o nível de acesso de um usuário. Quando um usuário é adicionado à árvore, para que ele tenha acesso a algum serviço da rede, o administrador deve configurar o nível de acesso liberando e restringindo o que for conveniente.
O OpenLDAP trabalha com dois estilos de organização da árvore, uma no estilo X.500, clássico, que não funciona com diretórios distribuídos e outra no estilo DNS que por natureza funciona muito bem com diretórios distribuídos, onde o próprio serviço DNS que é utilizado na internet é feito através de servidores distribuídos pelo mundo todo.
As principais vantagens obtidas com a centralização são:
·Maior facilidade e praticidade e menor probabilidade de falhas ao adicionar ou excluir indivíduos da rede, uma vez que ao se adicionar precisará ser criado apenas um usuário para diversos serviços, e ao excluir um único ID de usuários o administrador estará excluindo o indivíduo de todos os serviços que ele era vinculado não correndo o risco de esquecer-se de algum e deixar uma brecha de segurança na rede;
·Realização do Backup de apenas um seguimento de informações que conterão todos os dados da rede, facilitando esta tarefa.
·A criação de uma agenda virtual na base centralizada disponibilizando o acesso de qualquer ponto da rede.
·Portabilidade, já que é possível ter acesso aos serviços da rede de qualquer ponto da mesma por qualquer usuário.
·É capaz de prover controle de acesso e transmissão criptografada oferecendo segurança no transporte de dados.
A junção de todas essas vantagens é o trunfo da centralização onde fica comprovada a sua eficiência.
4.2. Aplicações para o OpenLDAP
O OpenLDAP pode ser usado em todo tipo de redes desde as pequenas até as redes corporativas, pois o LDAP consegue atender múltiplas chamadas ao mesmo tempo, em outras palavras, ele conseguirá atender vários usuários e requisições de software sem perca de desempenho, visto que OpenLDAP irá até onde o hardware permitir, a nível de tráfego da rede e de processamento do servidor.
Preferencialmente o OpenLDAP deve ser instalado no início da utilização da rede e todos os dados dela precisam ser armazenados nele, mas nada impede que o OpenLDAP seja implementado em uma rede já existente, o problema é que depois toda a base de dados tem que ser movida para a base do SLDAP, imagine um sistema com milhares ou milhões de usuários. Existem aplicações que fazem este trabalho, não sendo necessário fazê-lo manualmente, mas o processo mesmo automatizado leva algum tempo dependendo da quantidade de informação que será copiada para base do SLDAP, obviamente o backup dos dados precisa ser feito antes para prevenir alguma perda.
Para realizar buscas através do terminal o LDAP utiliza o comando ldapsearc onde podem ser feitas pesquisas bem elaboradas através de filtros de pesquisa. Claro que buscas através do terminal e configuração manual de arquivos ldif dentre outras aplicações não muito "amigáveis" são apenas a parte "grossa" da utilização, pois existem diversos softwares feitos para auxiliar na utilização e administração do OpenLDAP.
Para pessoas que não gostam de sofrer em um terminal, temos aplicativos gerenciadores dos dados do SLDAP, que facilitam a utilização do mesmo depois de implementado, adicionar ou excluir, fazer pesquisar e consultas, se tornam tarefas práticas. Sendo que estes softwares podem ser instalados a parte com muitas opções, segue abaixo alguns exemplos extraídos de Trigo(2007):
·GQ, ótima ferramenta para testar o servidor LDAP e para incluir e excluir dados.
·Luma é um bom programa de gerenciamento de entradas de diretórios.
·DirectoryAssistant, ferramenta que inclui e pesquisa informações.(TRIGO, 2007, p. 84,85 e 86).
Existem outras ferramentas algumas piores, outras muito melhores do que as citadas acima, no site www.freshmeat.com como:
·Eye Of Newt
·Jxplore
·LDAP Account Manager
·LDAP User Manager for the Web
·phpLDAPadmin
·Gosa
·Kdiradm
·Swiss Army LDAP Tool
O OpenLDAP pode ser usado com diretórios distribuídos, basta estar devidamente configurado para isso, onde ele terá que trabalhar com o estilo DNS de organização da árvore. Assim teremos mais de um SLDAP, onde existirão dados na árvore responsáveis por indicar as direções das outras árvores pertencentes aos outros SLDAP, formando logicamente uma árvore única .
Para entender melhor a aplicação de um Servidor LDAP distribuído considere a existência de uma empresa que possui uma matriz e três filiais espalhadas por cidades distintas, onde esta empresa usa através do OpenLDAP a centralização. Ela tanto em sua matriz como em suas filiais possui uma rede estruturada e os servidores contam com um backbone gigabit que evitará que o intenso tráfego que chega até ele faça esse ponto da rede virar um gargalo e que as filiais manterão a comunicação via meios externos como a internet através de uma VPN (Virtual Private Network – Rede privada Virtual) ou outro tipo de canal dedicado de comunicação oferecido pela provedora de Internet.Teremos duas analogias, uma em que o SLDAP é distribuído entre a matriz e filiais e outra em que ele fica apenas na matriz ou mesmo distribuído, todos os SLDAP ficam na matriz.
Se o SLDAP não for distribuído, teremos o seguinte cenário, todos os dados de clientes, funcionários, empresas terceirizadas entre outras estarão na base centralizada, e todas as filiais estão constantemente buscando informações no SLDAP da matriz de forma em que esse se torna um serviço crítico e indispensável para o funcionamento da empresa fazendo com que o SLDAP sofra com a sobrecarga de processos devido ao alto número de requisições.
Com isso teremos um problema, pois devido ao alto tráfego de dados o tempo de resposta do SLDAP em relação às filiais se tornará muito demorado devido ao meio de comunicação entre filial e matriz que é lento em comparação com uma rede local, fazendo com que a própria qualidade do serviço da empresa fique prejudicada.
Mesmo que se usem Servidores LDAP distribuídos dentro da matriz isso só irá aliviar para o servidor, pois o processamento de dados e o tráfego de dados do mesmo ficaram divididos, melhorando a qualidade de serviço do servidor, mas não resolverá o problema das filiais. Resolverá o problema de sobrecarga no servidor, mas não eliminará o gargalo por onde os dados enviados pelas filiais trafegam.
Agora nosso cenário é diferente, temos um servidor LDAP distribuído, um SLDAP em cada filial e um SLDAP central na Matriz, assim cada filial manterá seus dados em seu próprio SLDAP realizando a maioria das buscas no servidor local e buscas externas, como informações da matriz ou de outras filiais continuariam sendo feitas através do SLDAP da Matriz, pois se devidamente configurado, quando uma pesquisa não fosse respondida pelo servidor local o mesmo iria direcionar a pesquisa para o SLDAP externo percorrendo toda a árvore até que, caso a informação exista, se ache a informação requisitada obtendo a resposta.
Assim o problema será resolvido, pois foi eliminado o gargalo que antes as filiais enfrentavam, e o SLDAP da matriz também não ficará sobrecarregado, pois o mesmo não sofrerá mais com as constantes requisições vindas de todas as filiais e matiz.
5 – OpenLDAP e a Segurança
Com a base de dados centralizada, a atenção para segurança em volta das informações contidas no SLDAP deve ser multiplicada, pois a quebra de seu sigilo se tornará muito mais crítica, pois ao se descobrir um login e senha o intruso terá acesso a tudo que for permitido ao usuário X acessar, ressaltando que ele pode fazer isto de qualquer ponto da rede.
Um dos recursos providos pelo OpenLDAP é seu vínculo com softwares de criptografia, provendo um nível a mais na segurança da transmissão. O OpenSSL, , quando integrado, faz com que o OpenLDAP passe a transmitir dados criptografados, onde chaves criptográficas e certificações digitais podem ser configuradas pelo administrador do sistema.
O OpenSSL, como o OpenLDAP, é multi-plataforma e já vem instalado em algumas distribuições Linux além de poder ser facilmente encontrado em repositórios.
Pode-se implementar chaves criptográficas para proteger as informações mais importes como senhas e informações críticas, criptografando os dados para armazenamento. É importante ressaltar que dados criptografados sempre que utilizados é necessário decriptá-los, isso faz com que a resposta ao solicitante seja mais demorada por isso. Para melhor desempenho não convém criptografar todo o banco de dados.
Outro recurso de suma importância para a proteção de qualquer rede é a utilização de políticas de segurança, as quais o administrador cria regras a serem seguidas pelos usuários tais como: proibição da divulgação de senhas, além de nunca deixar dados pessoais salvos em locais publicamente acessíveis dentre muitas outras ações que podem ser citadas, como prover pequenos cursos nesse sentido.
A troca de senhas periodicamente também é uma prática importante. O OpenLDAP pode ser configurado para fazer com que uma senha seja expirada de tempo em tempo, 15 em 15 dias por exemplo, onde sempre haverá uma rotatividade de senhas.
O administrador deve monitorar os acessos e ações dos usuários a fim de se certificar que estão cumprindo a política de segurança e restringir acessos a locais externos inseguros, pensando inclusive em seus possíveis deslizes.
Uma atividade indispensável que deve ser feita tanto na configuração inicial como durante a utilização, é a criação da política de acessos. Deve-se exigir que o usuário se identifique através de login e senha para ter acesso a base de dados e definir o nível de acesso dos usuários. Definir quem pode acessar o que é de suma importância para uma manutenção segura onde por exemplo não há necessidade de um funcionário da recepção saber informações sobre a contabilidade. O OpenLDAP fornece o controle de acesso através das ACLs (Access Control List– Listas de Controle de Acesso), que deverão ser definidas e configuradas pelo administrador do sistema.
Segurança envolve mais do que simplesmente manter os dados a salvo de acessos não autorizados. É também assegurar que eles não serão perdidos por alguma eventualidade, entre os mais variados defeitos de software e hardware, isso porque atualmente as informações são o coração das maiorias das empresas e na falta delas, elas simplesmente param.
A primeira preocupação é a utilização de uma rede elétrica e de dados confiável elaboradas de forma estruturada. Outro ponto imprescindível é a utilização de equipamento de hardware confiáveis, diminuindo o risco da ocorrência de defeitos. A utilização de backups é sempre necessário, ele pode ser feito de várias maneiras, como manualmente e através de um RAID.
Na forma manual o administrador deverá fazer a cópia dos dados armazenando-os em um local seguro. O RAID (Redundant Array of Independent Disks - Matriz Redundante de Discos Independentes), de acordo com Alecrim (2004, doc. eletronico) "É um conjunto de HDs que funcionam como se fossem um só. Isso permite ter uma tolerância alta contra falhas, pois se um disco tiver problemas, os demais continuam funcionando, disponibilizando os dados".
O RAID é dividido em seis níveis. Para fazer um backup de forma automática é preciso a utilização do nível um, que consiste em dois HDs trabalhando juntos. A informação gravada no primeiro HD também será gravada no segundo onde, na falta do primeiro o secundário continuará funcionando no seu lugar.
5.1. Replicação de Base
Visando a segurança dos dados, podemos enxergar mais um nível, o de garantir que o serviço nunca pare de funcionar, a menos que solicitado pelo administrador.
Iremos passar de forma rápida por mais um conceito, o que é Cluster, ele é um aglomerado de computadores conectados, para melhor desempenho, via rede de alta velocidades, que trabalham juntos para oferecer melhor processamento ou continuidade continua de serviços. Um cluster pode chegar ao nível de processamento de dados em nível de mainframes, hoje os principais servidores de internet do mundo usam clusters. Os cluster possuem diversas aplicações, as principais são:
·Beowulf (Processamento Paralelo): os computadores compartilham os processos e assim processando-os mais rápido, priorizando o desempenho de processamento.
·Balanceamento de carga: distribui os processos entre os computadores de forma a não deixar nenhum sobrecarregado.
·Alta disponibilidade: são usados em sistemas que não podem parar de funcionar, trabalham mantendo um servidor primário e outro secundário, se necessário um terceiro e assim por diante, quando o primário para de funcionar ele coloca o secundário no lugar.
·Combo: é a junção do cluster de balanceamento de carga e do de alta disponibilidade, claro que se temos 2 computadores trabalhando no modo de balanceamento de carga teremos que ter 2 de "reserva" para assumir seu lugar e assim consecutivamente
Os clusters podem ser usados de duas maneiras com o nosso servidor LDAP. A principal é a de alta disponibilidade para que se garanta que o serviço não irá parar. Se por um acaso o servidor tenha que atender uma rede que exija tal ferramenta pode-se usar um cluster combo.
Implica-se que o servidor reserva continue servindo a rede conforme o primário, que os dados nos dois sejam iguais, e é aí que entra a replicação de base. A mesma realiza uma clonagem imediata de todo dado gravado no primário para secundário, gerando uma réplica do nosso SLDAP. Servidores que não trazem consigo o software de réplica podem usar softwares de terceiro como o DRBD, CODA ou RSYNC, mas o OpenLDAP traz em seu pacote o Slurpd e em versões mais recentes o Syncrepl. Os dois tem a mesma finalidade, contudo, o syncrepl é mais versátil e possui mais opções.
Para que o cluster de alta disponiblidade trabalhe de maneira correta precisamos de programas auxiliares como o Headerbeat que monitora se o servidor primário está funcionando e avisa imediatamente ao secundário se o primeiro falhar, isso em nível de hardware, e também temos o Mon que coloca o secundário em prática bastando apenas que o serviço pare. Imagine que o serviço de diretório pare por problemas de inconsistência no software, se você não estiver utilizando o Mon o servidor secundário não será ativado visto que o primário ainda está conectado na rede.
No caso de diretórios distribuídos tem que ser feito um cluster em cada um, pois o cluster não assume a forma de Servidor de Diretórios distribuídos, visto que ele irá assumir a forma de um único sistema processado em mais de uma máquina.
Com o servidor de réplica devidamente configurado ficará muito difícil que o serviço pare, garantindo mais este nível de segurança em nosso SLDAP.
6 – CONSIDERAÇÕES FINAIS
O OpenLDAP é uma ferramenta que abrange o interesse de todos aqueles que já administram uma rede, ou pretende administrar uma, tal como aqueles que são adeptos da área e sedentos por conhecimento como, amantes da informática, técnicos, analistas, especialista em soluções de TI (Tecnologia da Informação), administradores. Todas essas, são pessoas que podem vir a ter um ganho com o domínio do OpenLDAP.
Hoje o OpenLDAP já é aceito como uma ferramenta avançada e de grande renome na área de redes de computadores, porem há poucos profissionais no mercado que o dominam. Em virtude de tal situação já temos diversas empresas especializadas em cursos de informática que disponibilizam o curso de OpenLDAP, buscando oferecer um forte diferencial aos profissional interessados.
Como citado no decorrer do trabalho o OpenLDAP atende vários serviços ao mesmo tempo, e é possível sempre adicionar mais e mais softwares que precisem buscar informações vinculadas ao mesmo e até mesmo softwares que venham trazer alguma outra funcionalidade, sempre visando manter a centralização da rede.
Entender o OpenLDAP como um todo pode ser um pouco complexo, mas depois de implementado e dominado, se terá uma chave que abrirá o caminho que deixará a administração da rede bem mais simples.
Referências
trigo, clodonil Honório; OpenLDAP : uma abordagem integrada, São Paulo: Novatec, 2007.
TUTTLE, S.; Hhlenberger, A; GORTHI, R., Understanding LDAP: Design and Implementation, Disponível em: <http://www.ibm.com/redbooks>.
Acessado em outubro de 2008.
LIMA, Avelino Oton de : Correio Eletrônico Integrado e o Serviço de Diretório X500, SERPRO, 1997, Disponível em: <http://www.serpro.gov.br/imprensa/publicacoes/tematec/1997/ttec32.
Acessado em outubro de 2008
ALECRIM, Emerson; Tecnologia RAID; Infowester, 2004, revisado em 2006 Disponível em: <http://www.infowester.com/raid.php
Acessado em novembro de 2008
ALECRIM, Emerson; Cluster: principais conceitos, Infowester, 2004, Disponivel em: <http://www.infowester.com/cluster.php Acessado em novembro de 2008
FUNDATION, OpenLDAP; <HTTP://www.openldap.org
Acessado em novembro de 2008
LAMELLAS, Paulo Fernando, Linux Samba e muito mais: centralizando logins e senhas, Festival de Software Livre 2008, Brasilia: Faculdade Jesus Maria José – FAJESU, 2008
TANENBAUM, Andrew S., Sistemas Operacionais Modernos, tradução Ronaldo A. J. Gonçalves, São Paulo: Prentice Hall, 2003.