1.1 Postfix
Com a expansão dos serviços de internet, o correio eletrônico tornou-se uma ferramenta indispensável não só para agilizar a comunicação dentro das organizações, como também para agilizar processos, democratizar o acesso às informações e ajudar a desburocratizar rotinas e procedimentos.
O Sendmail é hoje o programa mais difundido na Internet para processamento de correio eletrônico. Estima-se que seja o responsável pelo encaminhamento de bilhões de mensagens diariamente e que rode em 70% dos servidores de mail da Internet.
Dentre as alternativas ao servidor de e-mail Sendmail existem o qmail, smail, exim e a mais recente delas que é o Postfix. Desenvolvido por Wietse Winema, o mesmo desenvolvedor de pacotes de segurança amplamente utilizados como o TCPWrapper. Este pacote, segundo o autor, é bem mais rápido e seguro que o Sendmail. Na documentação cita-se o fato de que um PC desktop consegue processar um milhão de mensagens em um dia. Além de ser extremamente simples de se configurar (o que certamente não ocorre com o Sendmail).
O uso mais comum é ter o Postfix buscando usuários virtuais na base de dados do Ldap. Junto com o acima explanado a característica do nss_ldap, permite que você tenha todos seus usuários do e-mail em uma base de dados do LDAP. Mas outras coisas podem ser configuradas,o Postfix pode ser reservado para relay de correio, ou para ele agir como um servidor de backup, ou pode-se criar domínios virtuais utilizando-se um banco de dados SQL como o MySQL ou PostgreSQL.
1.2 Cyrus IMAP
O servidor de IMAP utilizado será o Cyrus projeto desenvolvido pela Universidade Carnegie Mellon. Este é um potente servidor IMAP/POP3 que além da função óbvia de permitir que os usuários acessem suas caixas de entrada, ele contém também um sistema próprio de autenticação, uma linguagem para filtragem de e-mail já no servidor e mecanismos para compartilhamento de pastas e caixas de entrada por mais de um usuário segundo a Revista
Linux Magazine número 12, de setembro de 2005.
1.2.1 Cyrus IMAP vs. Washington IMAP
Cyrus tem sua própria base de dados de caixa postal que é autônoma e aumenta o desempenho, visto que Washington usa o formato padrão de caixa postal do UNIX, que foi projetado para um número menor de usuários. Washington é portável a um maior número de sistemas de UNIX e Não-UNIX do que Cyrus. A diferença principal é que com Cyrus você não tem que adicionar usuários novos ao seu linux (isto é em /etc/passwd) para adicionar usuários novos de correio.
1.3 LDAP
1.3.1 Mas afinal o que é LDAP?
LDAP significa Lightweight Directory Access Protocol, ou seja, Protocolo Leve de Acesso a Diretórios. Como o nome sugere, é um protocolo leve para acessar serviços de diretório. O LDAP roda em cima do protocolo TCP/IP ou outras conexões de transferência de serviços.
1.3.2 Serviço de diretório?
Serviço de diretório é um banco de dados otimizado para ler, navegar e procurar. Os diretórios tendem a conter descritivos, atributos/características e um suporte sofisticado para filtros. Os serviços de diretórios geralmente não suportam complicadas transações de registros, grandes volumes de dados, encontradas atualmente em sistemas de banco de dados.
As atualizações dos diretórios são simples e rápidas. São feitos para respostas rápidas de um alto volume de operações de buscas. É possível replicar informações largamente para aumentar a confiança e a disponibilidade do recurso.
1.3.3 Que tipo de informação pode ser armazenada num diretório?
O modelo de informações do LDAP é baseada em entradas. Uma entrada é uma coleção de atributos que tem forma geral/exclusiva e nome distinto - (DN - Distinguished Name). O DN é usado para se referir a uma entrada que se pode tomar em um único sentido. Cada atributo de entrada tem um tipo e um ou mais valores. Os tipos são strings de memória, como cn para nome comum, ou mail para endereço de email. A sintaxe de valores depende dos tipos de atributos. Por exemplo, o atributo cn pode conter o valor José da Silva. O atributo mail pode conter jose@silva.com.br. O atributo fotoJPG pode conter uma fotografia em JPG (formato binário).
1.3.4 Como são organizadas estas informações?
No LDAP, as entradas dos diretórios são organizadas de forma hierárquica, como uma estrutura de árvore. Esta estrutura possui um limite organizacional. Vamos para um exemplo prático.
As entradas são representadas pelos países que aparecem no topo da árvore. Abaixo aparecem as entradas dos estados, logo abaixo as entradas que representa o nome da Empresa. Abaixo as entradas que representam os setores da empresa, a seguir as entradas que representam as pessoas, documentos, impressoras ou qualquer coisa que você pode pensar.
A árvore também pode ser organizada baseada sob domínio de nomes da internet (DNS). Esta forma de acesso está se tornando muito popular, vejamos um exemplo:
LDAP permite você controlar os atributos que são obrigatórios e permite a entradas de novos atributos, chamados de ObjectClass. O valor dos ObjectClass determinam os chamados SCHEMA RULES ou ESBOÇO DAS REGRAS.
Geralmente os serviços de diretórios não possuem nenhum tipo de mecanismo de proteção dos dados. O LDAP possui mecanismo de autenticação de clientes, privacidade de dados e serviço de integridade. O LDAP é um serviço de diretórios baseado no modelo Cliente-Servidor. No servidor é executado um daemon chamado de SLAPD.
1.1.1 O que é SLAPD?
SLAPD é um servidor de diretórios LDAP que roda em vários tipos de plataformas.Utilizado para criar os serviços de diretório. Em cada diretório pode conter muitas informações interessantes, que você mesmo pode administrar. O SLAPD pode servir para um serviço de diretório global ou para apenas você utilizar. Algumas das características importantes do SLAPD são:
- SLAPDv3 - O Slapd versão 3 possui suporte a IPv4 e IPv6;
- Simples autenticação segura - O Slapd suporta uma forte segurança através do uso de SASL, o qual suporta mecanismos como MD5, EXTERNAL e GSSAPI;
- Suporte a SSL;
- Controle de acesso - Possui um rico e poderoso controle de acessos, permitindo você controlar os acessos de informações em seu banco de dados. Você pode controlar os acessos para entradas baseadas no sistema de autenticação, endereço IP, dominio, e outros critérios;
- Internacionalização;
- Diversificação de banco de dados - O Slapd vem com diversas opções de banco de dados. Incluindo BDB, LDBM, via SHELL ou PASSWD;
- Permite vários bancos de dados no mesmo servidor;
- Módulos genéricos de API - Se você deseja customizar, slapd permite você criar seus próprios modulos;
- Possui Threads para alto desempenho;
- Replicação - o slapd permite ser copiado para outros servidores, podendo ter servidor master e slave;
- É configurado através de um único arquivo de configuração.
1.1.2 O que é SLURPD?
Slurpd é um daemon para ajudar o Slapd a replicar seus serviços. É responsável por distribuir as modificações do servidor master para os outros servidores. O Slapd e o Slurpd se comunicam através de um arquivo comum de texto.