Neste documento descreve-se, passo a apasso a instalação e manutenção de um servidor de mail Postfix utilizando o Amavis como mecânismo para detecção de virus e o Cyrus como servidor IMAP utilizando o SuSE 10.0.
Muitas das operações devem ser feitas como root, mas há outras que podem, e devem, ser feitas como um utilizador normal, neste documento utiliza-se o utilizador sysadm, naturalmente que se pode usar qualquer outro utilizador sem ser o sysadm. Eu costumo utilizar este utilizador em servidores onde não tenho uma conta pessoal.
Clique em "Ler mais" para ver o resto deste documento.
O software que vamos utilizar é:
Existem várias modalidades de autenticação dos utilizadores junto do servidor. Neste documento ilustram-se o método para utilização autenticação em plain text, esta autenticação faz-se contra as contas do próprio sistema e obriga a que cada caixa postal tenha um utilizador criado no sistema.
Eu utilizo este método quando o servidor de mail também é utilizado como servidor de ficheiros onde também se faz a autenticação recorrendo aos serviços do sistema. Há muitas ferramentas para gerir os utilizadores do sistema, no SuSE podemos utilizar o próprio YaST.
Notar que podemos, em configurações mais complexas, autenticar-nos contra um servidor de LDAP, unificando-se desta forma toda a autenticação num só serviço ou então usar as funcinalidades do Cyrus para nos autenticarmos contra o ficheiro /etc/sasldb2, ou ainda armazenar a informação de autenticação numa base de dados.
Verificar se temos instalados os pacotes necessários e instalar com o YaST:
NOTAS:
Utilizar o Yast para fazer as configurações básicas:
Escolher a opção: Network Services --> Mail Transfer Agent (no YaST)
Escolher Finish.
É também necessário acrescentar o utilizador "postfix" ao grupo "mail".
Iniciar os serviços que estão ainda inactivos:
Fazer o download das definições do anti-virus. Como root:
Se aparecer a seguinte mensagem:
Ignorar, quando fizermos o online update, faz-se também o update do ClamAV, se estiver disponível um update. Por vezes a SuSE leva algum tempo a fazer updates ao motor do anti-virus, notar que isto é diferente das assinaturas dos virus e geralmente não é crítico.
Registar para inicio a quando do boot dos serviços necessários:
Fazer o update online do sistema. Se se fizer update da kernel, realizar um reboot a seguir:
NOTAS:
Mudar a password do utilizador "cyrus":
Editar o ficheiro "amavisd.conf":
Mudar as linhas:
Procurar ClamAV e tirar o comentário a:
Criar e mudar as permissões de /arquivo/virusmails:
Re-iniciar o Amavis:
Pode-se verificar se a configuração está boa consultando o log:
Fundamentalmente o que vamos fazer é editar as directorias onde se guardam os mails (serviço POP3 está ligado por omissão).
Primeiro fazer backup do ficheiro:
Editar o ficheiro /etc/imapd.conf:
NOTA IMPORTANTE
Criar as directorias seguintes:
Copiar o conteúdo das directorias originais:
Reiniciar o cyrus:
Editar o ficheiro /etc/postfix/main.cf e acrescentar a linha:
Podem-se saber para que serve cada linha da configuração consultando:
No mesmo ficheiro mudar o tamanho máximo das mensagens para 10MB:
O postfix, por omissão vem configurado para utilização doméstica, é necessário ajustar alguns parâmetros extra de modo a garantir o bom funcionamento do sistema quando sujeito a cargas grandes. Em /etc/postfix/main.cf acrescentar a linha:
E em /etc/postfix/master.cf garantir que o número máximo de processos é utilizado:
Por omissão apenas são utilizados 2 processos.
A menos que se queira receber correio directamente da Internet não é necessário fazer mais modificações a estas configurações.
Recomeçar o postfix:
Para utilizarmos relays autenticados é necessário utilizar a seguinte configuração em /etc/postfix/main.cf:
Notar que nem todas as configurações são necessárias. Neste caso tinha um servidor que exigia que utilizá-se o método de autenticação LOGIN, encriptado por TLS. Além disso tratava-se de um servidor exchange que erradamente anunciava puder tratar mensagens codificadas com 8bit mime, mas que na realidade apenas aceita 7bit! (Netcabo, naturalmente.) Assim foi necessário forçar o servidor a ignorar a indicação 8bitmime.
Depois de terem sido feitas estas alterações é necessário criar o ficheiro /etc/postfix/sasl_passwd, este ficheiro contém a informação de autenticação junto do servidor relay. Deve obedecer à seguinte sintaxe:
Uma vez criado o ficheiro deve-se correr o comando postconf:
Finalmente, basta recarregar as configurações do servidor postfix:
Verificar se conseguimos entrar na consola do cyrus:
Notar que no SuSE 10.0 tenho um comportamento que ainda não consegui entender completamente, é-me pedida duas vezes a password do utilizador Cyrus. Se alguém descobrir o porquê disso por favor avisem-me.
Para sair da consola do cyrus faça Ctrl-D.
O mais importante é passar as mensagens do utilizador "virusalert" para um user com mailbox válida se não o fez já a quando da configuração inicial do postfix com o yast, pode por exemplo, editar /etc/aliases e inscrever simplesmente:
Como o mail de virusalert é redireccionado para root, o utilizador sysadm vai receber o conteúdo de ambas as contas. Depois de editar o ficheiro fazer:
Só pode fazer este teste depois de criar o utilizador de mail, veja primeiro a secção "Gestão de Utilizadores".
Para isso criar um user e enviar-lhe um mail:
Pode-se observer em /var/log/mail a actividade:
Pode-se acessar à directoria do utilizador e verificar as próprias mensagens:
O ficheiro "1." contém a mensagem enviada.
Fazer:
O log do mail (/var/log/mail) deve mostrar mensagens do género:
Falta agora configurar a obtenção de mails a partir de servidores externos. Na secção seguinte trata-se desse assunto.
Para acrescentar um utilizador ao sistema há dois passos a executar: (i) criar o utilizador utilizando as ferramentas do sistema; (ii) criar a mailbox do utilizador utilizando a consola do Cyrus.
Adicionar um utilizador ao sistema utilizando o YaST. (Esta parte é simples o suficiente, pelo que não a descrevo);
Uma vez criado o utilizador é necessário entrar na consola do Cyrus como indicado anteriormente. Uma vez lá dentro fazer:
Pode-se verificar a criação do utilizador de várias formas, se usarmos autenticação plain text, deve-se verificar o fim do ficheiro ?/etc/passwd?:
A ultima linha, indica que o utilizador "teste001" foi criado com sucesso. Este é o utilizador do sistema.
Notar que se alterou a "home directory" deste utilizador para /dev/null e a sua shel para /bin/false. Isto faz-se normalmente, quando o utilizador não necessita de ter acesso a uma shell no sistema, por exemplo se esse utilizador for apenas utilizador de mail ou se tiver uma conta Samba no sistema.
Agora deve-se verificar se a caixa de correio respectiva foi criada correctamente. Para isso deve-se entrar na consola de administração de mail:
Dentro da consola só temos de verificar se existe a caixa postal do respectivo utilizador:
Se aparecer qualquer coisa como o que se mostra na linha anterior, o utilizador foi criado correctamente e podemos proceder ao teste da caixa postal, utilizando o protocolo POP3 ou IMAP. Por exemplo usando o POP3:
As mensagens indicam que o sistema POP3 funcionou correctamente.
Naturalmente que muitas vezes podemos testar directamente nas máquinas do utilizadores o funcionamento do sistema.
Basta usar directamente as ferramentas do sistema para mudar a password, por exemplo:
Basta configurar com os seguintes dados:
Protocolo: IMAP ou POP;
Nome de utilizador: O nome de sistema utilizado para criar o utilizador;
Para descarregar os emails do servidor externo, é necessário utilizar o software "fetchmail" e editar a sua configuração em "/etc/fetchmailrc".
Se tivermos três contas de correio num servidor externo, o ficheiro de configuração é da forma:
Notas:
Uma vez alterado o ficheiro de configuração do fecthmail é necessário recomeçar o serviço, para tal fazer como root:
Para verificar se há algum problema com a obtenção dos mails do servidor central fazer:
Esta sequência de comandos inicia o fetchmail sem entrar em "modo de serviço" pelo que podemos ver o output directamente. Também se pode ver o que está a acontecer nos ficheiros de log, o nome do ficheiro de log onde são registados os acontecimentos relativos ao fetchmail variam de sistema para sistema, no SuSE temos:
Para recomeçar o serviço fazer:
Num sistema bem configurado o servidor de SMTP (Simple Mail Transfer Protocol) tem pouca ou nenhuma manutenção associada, podem, no entanto, surgir situações em que a acção do administrador de sistemas é necessária.
Deve-se verificar rotineiramente o bom funcionamento do sistema. Deve-se começar por verificar a carga do sistema com o comanto top:
Para um sistema com 50 utilizadores o load average deve ser baixo, ou seja menor que 1.00. Verificar também se existem processos zombie, que a existirem indicam problemas graves a nível de sistema. A seguir deve-se verificar a utilização de memória, especialmente swap. Se a utilização de swap se aproxima do tamanho total (neste caso 512MB) então há qualquer coisa de errado com o sistema. Neste caso temos de analizar os logs e determinar quais os processos que estão a utilizar toda a memória. Para isso utiliza-se o comando ps -eF.
A verificação da utilização do disco faz-se com o comando df -h:
Verificar sempre a utilização das partições /var e /tmp se estas encherem podemos vir a ter problemas. Neste caso também temos de nos preocupar com a directoria /arquivo dado que é onde armazenamos os nossos mails.
O comando a utilizar para verificar as listas de saída de mail é:
O servidor de SMTP tenta enviar as mensagens várias vezes (se não obtiver um erro fatal ao enviar a mensagem) assim muitas vezes temos a nossa largura de banda ocupada pelo servidor de mail que tenta enviar mensagens impossíveis de serem recebidas pelos outros servidores de mail. Um exemplo clássico é o do utilizador que envia um attachment com 500MB. Estas mensagens devem ser apagadas da lista de saída. Para tal devemos fazer o seguinte:
Login como root:
Usar o comando mailq como indicado para obter o código da mensagem, no caso da listagem anterior é 27D5129DA22 e usar o comando seguinte para apagar a mensagem:
Os códigos de SMTP são:
Estes códigos bem como o funcionamento do protocolo SMTP são definidos pelo RFC 2821 disponível em: http://www.rfc-editor.org.
Os manuais de todos os comandos utilizados podem (e devem) ser consultados fazendo man <nome do comando> como um utilizador normal e claro, há sempre o google.com.