Postfix + Amavis

Linux in Brazil

Documentação original
e de qualidade
em bom português

O texto abaixo foi publicado no BR-Linux antes de 2005, e está mantido aqui por razões históricas. Veja o material atualizado diariamente do BR-Linux em http://br-linux.org
Dúvidas comuns | Perguntar no Fórum | Notícias | Mais documentos | Contato
 
Destaques de hoje:
  • Abundam as análises do Chromium, navegador web open source do Google
  • A semana no BR-Linux: Reiser condenado, Firefox 3.1 mais rápido, pedal de guitarra open source
  • Resultado da promoção da camiseta "Nerdômetro" da Red Bug - brinde pra todo mundo!
  • Último dia para enviar sua foto e concorrer às camisetas "Nerdômetro"
  • Introdução

    Luciano Linhares Martins (lmartins@matrix.com.br)

    Atualmente a Internet é o maior meio de propagação de vírus. Dentre os meios de transmissão de vírus na Internet, a disseminação de vírus pelo correio eletrônico é a que tem maior destaque. Para tentar minimizar esse problema e oferecer uma proteção maior aos usuários do correio eletrônico, vêm-se instalando programas que visam detectar a presença de vírus nas mensagens que trafegam no servidor de correio eletrônico e interceptá-las.

    Dentre as diversas soluções de servidor de correio eletrônico com antivírus, destaca-se a que utiliza o servidor de e-mail postfix com o amavis. A seguir será explicado como utilizar essa solução.

    Esse documento pressupõe que o usuário já tenha o postfix rodando e configurado corretamente. Caso você não tenha o postfix instalado e tenha dúvidas sobre o seu processo de instalação, recomenda-se a leitura do manual de instalação do postfix, que pode ser encontrado nessa dica ou através dos manuais que constam no site do postfix: http://www.postfix.org

    Fazendo o download do Amavis:

    Nesse tutorial, vai ser utilizada a versão 11 do amavis-perl. Ela pode ser obtida na pagina de downloads do Amavis: http://www.amavis.org/download.php3

    Ou direto no link: http://www.amavis.org/dist/perl/amavis-perl-11.tar.gz

    Descompactando o Amavis

    # tar xvfz amavis-perl-11.tar.gz
    

    Entrando no diretório do Amavis

    # cd amavis-perl-11
    

    Antes de iniciar o processo de instalação é recomendável ler o arquivo README, nele encontra-se as informações necessárias para a instalação. Dependendo do sistema que você vai estar instalando pode necessitar instalar diversos pacotes adicionais ou não.

    Os requisitos para a instalação são:

    A maioria dos compactadores de arquivos podem ser encontrados em: ftp://sunsite.unc.edu/pub/Linux/utils/compress/

    A instalação deles no Linux não apresenta problemas, exceto o zoo, que necessita da aplicação de um patch. Como alguns usuários não tem intimidade com a aplicação de patch vou explicar a instalação do zoo.

    Obter os seguintes pacotes: ftp://sunsite.unc.edu/pub/Linux/utils/compress/zoo-2.10-3.src.rpm

    Infelizmente, o source do zoo, só existe o source no formato rpm nesse endereço, algumas distribuições, como o Debian, utilizam outro sistema de gerenciamento de pacotes. Se você utiliza Debian não desanime, basta digitar "apt-get install zoo".

    Instalando o source do zoo: # rpm -ivh zoo-2.10-3.src.rpm

    Aplicando o patch e compilando o zoo:

    # cd /usr/src/redhat/SOURCES
    # tar xvfz zoo-2.10.tar.gz
    # gzip -d zoo-2.10.linux.diff.gz
    # cd zoo-2.10
    # patch -p1 < ../zoo-2.10.linux.diff
    # make linux
    # make install
    # ln -s /usr/local/bin/tzoo /usr/local/bin/zoo
    

    Muito desses compactadores podem acompanhar a sua distribuição ou existirem pacotes adaptados para ela. A forma de instalação deles vai de acordo com a suas habilidades e necessidades.

    Adicionando o usuário vscan:

    # adduser vscan
    

    Instalando os módulos PERL necessários:

    Antes de instalar os módulos necessários, é recomendável você rodar o script de configuração para ver quais módulos de configuração faltam no seu sistema:

    # ./configure --enable-smtp --enable-postfix --with-amavis-user=vscan
    

    Iniciando a shell CPAN

    # perl -MCPAN -e shell

    Se for a primeira vez que você utiliza a shell CPAN, vão ser feitas algumas perguntas, a seguir vou demonstrar os passos que foram seguidos, a configuração padrão:

    Are you ready for manual configuration? [yes]
    CPAN build and cache directory? [/root/.cpan]
    Cache size for build directory (in MB)? [10]
    Perform cache scanning (atstart or never)? [atstart]
    Policy on building prerequisites (follow, ask or ignore)? [follow]
    Where is your gzip program? [/bin/gzip] 
    Where is your tar program? [/bin/tar] 
    Where is your unzip program? [/usr/bin/unzip] 
    Where is your make program? [/usr/bin/make] 
    Where is your lynx program? [/usr/bin/lynx] 
    Where is your ncftpget program? [/usr/bin/ncftpget] 
    Where is your ftp program? [/usr/bin/ftp] 
    What is your favorite pager program? [/usr/bin/less] 
    What is your favorite shell? [/bin/bash] 
    Parameters for the 'perl Makefile.PL' command? [] 
    Parameters for the 'make' command? [] 
    Parameters for the 'make install' command? [] 
    Timeout for inactivity during Makefile.PL? [0]
    Your ftp_proxy?  
    Your http_proxy?  
    Your no_proxy?  
    Select your continent (or several nearby continents) [] 7
    Select your country (or several nearby countries) [] 2
    Select as many URLs as you like [] 3
    Your favorite WAIT server?
       [wait://ls6.informatik.uni-dortmund.de:1404] 
    
    cpan>
    
    Você esta na shell CPAN:
    

    Agora deve-se instalar os módulos que não foram encontrado no seu sistema, nesse exemplo vai ser demonstrada a instalação de todos os módulos.

    cpan> install Unix::Syslog
    cpan> install Convert::UUlib
    cpan> install Convert::TNEF
    cpan> install Compress::Zlib
    cpan> install Archive::Tar
    cpan> install Archive::Zip
    cpan> install G/GB/GBARR/MailTools-1.15.tar.gz
    cpan> install MIME::Tools
    cpan> install Bundle::libnet
    

    Se algum desses modulos perl já existir no sistema e tentar-se instalá-lo novamente, ele vai verificar se a versão instalada é a mais atual, caso não seja, vai ser instalada a versão mais recente.

    Instalando o programa:

    Após a instalação dos compactadores, módulos perl e outras dependências necessárias para o Amavis o próximo passo é instalar o Amavis:

    Configurando o Amavis:

    # ./configure --enable-smtp --enable-postfix --with-amavis-user=vscan
    

    O resultado final deve ser algo semelhante ao apresentado abaixo:

    ####################################################################
    ** Configuration summary for amavis perl-11 2001-04-07:
      Install amavis as:          /usr/sbin/amavis
      Configured for use with:    postfix
      Relay configuration:        no
      Enable SMTP:                yes
      Use SMTP port:              10025
      Use virus scanner(s):       McAfee Virusscan
      Scanner runs as:            vscan
      Logging to syslog:          yes
      Quarantine directory:       /var/virusmails
      Max. recursion depth:       20
      Add X-Virus-Scanned header: yes
      Display AMaViS credits:     no 
      Warn sender:                yes
      Reports sent to:            virusalert
      Reports sent by:            postmaster
    To accept the above, type "make"
    ###################################################################
    

    Compilando e instalando o sistema

    # make
    # make install
    

    Antes de rodar o "make install", você pode rodar o "make check" para testar se o amavis esta funcionando corretamente.

    O amavis vai ser instalado no diretório /usr/sbin, apos a instalação pode-se editar o arquivo "/usr/sbin/amavis" e traduzir as mensagens de aviso de alerta de vírus para o português.

    Configurando o postfix

    A configuração do postfix é relativamente simples. Necessita-se que a versão do postfix seja posterior ao snapshot 20000529. Caso a sua versão seja anterior a essa, favor fazer o upgrade para que o conjunto postfix+antivírus funcione corretamente.

    Adicionar a seguinte linha ao arquivo main.cf:

    content_filter = vscan
    

    Adicionar as seguintes linhas ao arquivo master.cf:

    vscan     unix  -       n       n       -       10      pipe user=vscan 
        argv=/usr/sbin/amavis ${sender} ${recipient} 
    localhost:10025 inet    n      -        n       -       -      smtpd
        -o content_filter=
    

    Após isso, basta reiniciar o seu postfix que ele estará funcionando corretamente com o antivírus:

    # postfix reload
    

    Testando o sistema

    Para testar a instalação do sistema, pode ser feito o download do arquivo eicar.com em (http://www.eicar.org/download/eicar.com), que é um arquivo para teste de antivírus, anexá-lo em uma mensagem e envia-la para algum usuário do seu sistema.

    Notas

    Existem outras formas de configurar e instalar o sistema postfix+amavis, esse forma escolhida por ser uma das mais simples e apresentar um bom resultado. Caso ela não sirva para o seu sistema, você pode consultar a documentação do amavis e do próprio postfix sobre outros procedimentos de instalação e configuração.

    Boa sorte.

    Referencias:

    Amavis: http://www.amavis.org/amavis.html

    Postfix: http://www.postfix.org