Korreio: solução integrada para a administração de sistemas de correio eletrônico baseada em software livre Reinaldo Carvalho 1, Antônio Abelém 2 Instituto de Informática Universidade Federal do Pará (UFPA) Belém, Brasil 1 rei@ufpa.br, 2 abelem@ufpa.br Resumo. Sistemas de correio eletrônico são formados pela utilização integrada de diversos serviços de rede e protocolos de comunicação, componentes implementados e disponíveis através de softwares livres que são administrados de forma manual ou com ferramentas isoladas. O software Korreio foi desenvolvido com objetivo de agilizar e integrar de forma simples e intuitiva a administração de sistemas de correio eletrônico. 1. Introdução O vínculo do uso de softwares livres como plataforma básica para correio eletrônico ocorreu com o início da internet, em que universidades e, posteriormente, nos primeiros provedores de serviço que montaram sua infra-estrutura sob esta plataforma. Entretanto, enquanto alguns softwares livres tornaram-se padrões nos servidores, o mesmo não ocorreu com ferramentas administrativas, sendo re-desenvolvidas em cada instituição. Atualmente a administração dos recursos de sistemas de correio eletrônico não ocorre de forma integrada e consistente, sendo realizada através da alteração de arquivos de configuração ou a utilização de diversos softwares com objetivo de agilizar a execução de tarefas administrativas. Este artigo apresenta o Korreio, um software livre que visa centralizar a administração de sistemas de correio eletrônico e agilizar a execução de tarefas administrativas. O software é formado por módulos especializados com intuito de fornecer interfaces para cada componente de um sistema de correio eletrônico. Este artigo está dividido em 4 seções. A Seção 2 mostra a arquitetura de um sistema escalável de correio eletrônico e a integração com o Korreio. A Seção 3 apresenta os atuais seis módulos do Korreio que estão em produção na Universidade Federal do Pará. A Seção 4 contém a conclusão deste documento. 2. A arquitetura do software Korreio O Korreio [KORREIO 2008] foi desenvolvido pelos autores deste artigo, utilizando a linguagem Python, distribuído sob licença GNU GPL [GPL 2008], e permite a administração, através de uma interface gráfica, dos serviços de rede que fazem parte de um sistema de correio eletrônico. Um sistema de correio eletrônico é comumente formado por; i) agentes de transferência de mensagens, responsáveis pela troca de mensagens locais e com servidores remotos através do protocolo SMTP; ii) por serviços de diretórios LDAP, responsáveis pelo armazenamento de informações relativas aos usuários e; iii) servidores de caixas postais que armazenam e fornecem acesso as mensagens através dos protocolos POP3 e IMAP4rev1, além do suporte ao protocolo SIEVE, que fornece acesso a recursos como redirecionamento de mensagens e mensagem de férias. A administração desses três componentes não é uma atividade fácil tampouco trivial, exigindo um conhecimento específico para ser desempenhada. A proposta do Korreio é facilitar essa atividade, tornando-a mais intuitiva e exigindo menos conhecimento específico, além de não permitir a não-integridade entre os componentes do sistema, diminuindo a possibilidade de erros na
configuração deste sistema de correio eletrônico. A Figura 1 mostra a arquitetura de um sistema de correio eletrônico escalável, assim como, a sua integração com o Korreio. Figura 1. Arquitetura do software Korreio. O Korreio possui seis módulos: uma interface para o protocolo LDAP, duas interfaces para o protocolo IMAP4rev1, uma interface para o protocolo Sieve, duas interfaces para o agente de transferência de mensagens através de conexão SSH, sendo uma interface para a fila de mensagens. 3. As interfaces do software Korreio Os módulos são acessíveis pelas abas na parte superior da interface e todas as mensagens informativas ou de erros são exibidas na barra de estado (status) na parte inferior da interface. Para iniciar a utilização do Korreio, o primeiro procedimento é realizar a configuração das conexões na aba Configurações. A Figura 1 indica qual conexão é necessária para o uso de cada módulo. O módulo de acesso ao LDAP exibido na Figura 2, tem suporte a conexão segura (ldaps), permitindo navegar, pesquisar, adicionar, remover e editar registros. A pesquisa de registros é realizada através da combobox editável no canto superior esquerdo da interface. Sua sintaxe é descrita na RFC2254, sendo que os parênteses mais externos não são obrigatórios. O resultado da pesquisa é listado a esquerda da interface, sendo identificado pelo distinguished name de cada registro. A visualização dos atributos de cada registro ocorre pela seleção do distinguished name na listagem a esquerda, sendo que os atributos do registro são exibidos na listagem a direita da inteface. A edição de registros permite adicionar, remover e editar atributos, sendo necessário confirmar as alterações através do botão Aplicar. A adição de atributos é realizada pelo campo de entrada de dados na parte inferior da interface. A remoção de atributos é realizada através da seleção do atributo a ser removido na listagem a direita da interface, e posterior clique no botão -.
Figura 2. Módulo LDAP. A edição é realizada por um duplo-clique no atributo e posterior alteração de seu valor. Também é possível alterar o distinguished name do registro, através de um duplo-clique no registro, na listagem a esquerda da interface. É possível a alteração da senha para o atributos userpassword e samba{lm,nt}password, possuindo suporte aos algoritmos SSHA, SHA, SMD5, MD5, CRYPT e texto plano para o primeiro. Este procedimento é realizado através do sub-módulo troca de senha acessível através do combobox no canto superior direito da interface. A adição de registros pode ser realizada através do sub-módulo novo registro LDAP acessível através do combobox no canto superior direito. Possui ainda um facilitador de adição de registros, para pré-selecionar os atributos que devem ser inseridos (vide Configurações/LDAP/Preferências). 3. O módulo de acesso as caixas postais através do protocolo IMAP4rev1 é exibido na Figura Figura 3. Módulo IMAP.
Este módulo permite a administração do serviço de caixa postal, tendo suporte a conexão segura (imaps). É possível pesquisar, adicionar, remover e renomear caixas postais. A pesquisa é realizada através do campo de entrada de dados na parte superior da interface e clique no botão Pesquisar. A pesquisa é realizada pelas iniciais da caixa postal. Dessa forma pesquisar por r significa todas as caixas postais que seu nome inicia por r. A adição, remoção e reconstrução de caixas postais é realizada através do campo de entrada de dados no centro da interface, e posterior clique no botão com sua respectiva ação: Criar, Remover ou Reconstruir. Não é necessário o preenchimento deste campo de entrada de dados, ao se utilizar o campo de listagem das caixas postais, visto que isto ocorre automaticamente. Permite a visualização e aplicação de quotas. A quota está disponível para a caixa postal raíz de cada usuário, tendo a quantidade de espaço utilizado e seu efetivo limite exibidos no canto inferior direito da interface. A alteração da quota, é realizada informando o valor da quantidade máxima de espaço em Kbytes através do campo limite, e posterior clique no botão Aplicar, imediatamente abaixo deste campo. É possível a visualização e aplicação de auto-expire (dias após recebimento da mensagem, para que esta seja excluída pelo servidor) para qualquer caixa postal. Após a seleção da caixa postal, o valor do auto-expire é exibido no campo Expirar. Caso este valor seja alterado, o botão Aplicar, imediatamente abaixo deste campo, grava a informação. Pode-se também visualizar, criar e remover ACLs lista de controle de acesso para compartilhamento de caixas postais através do protocolo IMAP4rev1. O módulo para controle de partições-imap áreas do disco para armazenamento de mensagens é exibido na Figura 4. Figura 4. Módulo Partição-IMAP. O servidor de caixas postais permite que novas áreas do disco diretórios e indiretamente partições de disco sejam utilizadas para ampliar o espaço para o armazenamento de mensagens sem provocar downtime neste serviço. Assim, o servidor de caixas postais pode manter parte dos usuários em um disco e o restante em outro. Esta seleção é realizada pela partição-imap que a caixa postal será armazenada. Este módulo tem suporte a seleção múltipla para alterar o local de armazenamento de várias caixas postais, simultaneamente. O módulo para acesso ao serviço Sieve é exibido na Figura 5.
Figura 5. Módulo SIEVE. Sieve é o suporte do servidor de caixas postais ao processamento de regras por usuário. É formado pelo protocolo Sieve que permite acesso as regras em uso, além da postagem, alteração e exclusão destas. As regras são escrita em um linguagem própria [RFC5228] que definem o processamento da mensagem. Entre as possibilidades estão exclusão, redirecionamento, envio de mensagem de férias, postagem da mensagem em pasta específica baseada em remetente, entre outros. É possível listar as regras em uso por usuário, realizando uma pesquisa através do campo de entrada de dados na parte superior da interface. Ao clicar no usuário, as regras em uso são exibidas no campo editável na parte inferior da interface. As regras [RFC 5228] contidas neste campo de entrada de dados, podem ser postadas para um usuário, para os selecionados ou para todos através do botão Ativar. A exclusão das regras também ocorre por usuário, seleção ou para todos. Modelos de regras estão disponíveis: encaminhamento, descartar spam, férias, filtros, etc. Figura 6. Módulo MTA.
O módulo mostrado na Figura 6 visa facilitar a alteração de configurações do agente de transferência de mensagens, especificamente o Postfix. É formado por uma interface para seus parâmetros de configuração na parte superior, e um editor de arquivos texto na parte inferior. Possui ainda botões para iniciar e parar o serviço de transferência de mensagens. Este módulo foi reformulado, e uma nova interface esta em fase de testes. O módulo para monitoração da fila de mensagens é exibido na Figura 7. Figura 7. Módulo MTA fila de mensagens. Este módulo permite que a fila de mensagens seja monitorada. Sua organização é baseada por remetente, sendo exibido o total de mensagens e de destinatários ao lado de cada remetente. Possibilita a remoção de mensagens por queueid ou por remetente, através do botão Remover. Permite visualizar o motivo da entrega não ter sido realizada por destinatário. 4. Considerações Finais O Korreio é uma ferramenta de administração multi-plataforma desenvolvida em software livre. Foi concebido como muitos softwares livres, pela necessidade do autor em otimizar um processo, tendo como meta não ser apenas uma ferramenta institucional, mas que atenda a necessidade de qualquer empresa privada ou órgão público. A partir de seu uso possibilitou que tarefas cotidianas fossem realizadas com maior agilidade, facilitando a administração do sistema de correio eletrônico pela equipe de suporte do Centro de Tecnologia da Informação e Comunicação da Universidade Federal do Pará, além de tornar esta administração mais integra e consistente. Referências GPL. GNU GENERAL PUBLIC LICENSE. Disponível em: http://www.gnu.org/licenses/gpl.html. Acesso em: Março, 2008. KORREIO. Disponível em: http://korreio.sourceforge.net/. Acesso em: Março, 2008. RFC5228. Disponível em: http://tools.ietf.org/html/rfc5228. Acesso em: Março, 2008.