Postfix Integration · 5 min read · Jan 16, 2026

Integrando amavisd-new ao Postfix para Escaneamento de Spam e Vírus - Página 2

3 Debian Sarge

Para pacotes voláteis como ClamAV (há novos lançamentos do ClamAV com muita frequência), existe o repositório Debian-volatile (para Sarge e Woody apenas no momento da redação deste texto). Para garantir que instalamos o pacote ClamAV mais recente, editamos /etc/apt/sources.list primeiro e adicionamos a seguinte linha:

vi /etc/apt/sources.list

| [...] deb http://volatile.debian.net/debian-volatile sarge/volatile main contrib non-free |

Depois, atualizamos nosso banco de dados de pacotes executando:

apt-get update

Em seguida, instalamos amavisd-new, SpamAssassin e ClamAV junto com alguns outros programas (principalmente programas que amavisd-new precisa para descompactar arquivos, pois os e-mails podem conter arquivos como anexos):

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip unarj bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop

Você será solicitado a responder algumas perguntas:

Método de atualização do banco de dados de vírus: <– daemon
Site espelho do banco de dados local: <– db.de.clamav.net (Alemanha; selecione o espelho que está mais próximo de você)
Informações do proxy HTTP (deixe em branco para nenhum): <– (em branco)
Deve o clamd ser notificado após as atualizações? <– Sim

Depois, devemos configurar o amavisd-new editando /etc/amavis/amavisd.conf. Este é um arquivo muito longo com muitos comentários. A maioria das configurações padrão está ok, no entanto, certifique-se de que @bypass_virus_checks_acl e @bypass_spam_checks_acl estejam comentados, pois caso contrário, o amavisd-new não carregará o código anti-spam/-vírus (na minha cópia, a linha @bypass_spam_checks_acl estava ativa, então eu tive que comentá-la):

vi /etc/amavis/amavisd.conf

| [...] # @bypass_virus_checks_acl = qw( . ); # descomente para DESABILITAR o código anti-vírus [...] # @bypass_spam_checks_acl = qw( . ); # Sem dependência padrão no spamassassin [...] |

E então você deve dar uma olhada nas configurações de spam e nas ações para e-mails de spam/vírus no mesmo arquivo. Não há necessidade de mudar nada se as configurações padrão estiverem ok para você. O arquivo contém muitas explicações, então não há necessidade de explicar as configurações aqui:

| [...] $final_virus_destiny = D_DISCARD; # (padrão é D_BOUNCE) $final_banned_destiny = D_BOUNCE; # (padrão é D_BOUNCE) $final_spam_destiny = D_REJECT; # (padrão é D_REJECT) $final_bad_header_destiny = D_PASS; # (padrão é D_PASS), D_BOUNCE sugerido [...] $virus_admin = "postmaster\@$mydomain"; # devido ao padrão D_DISCARD [...] $QUARANTINEDIR = '/var/lib/amavis/virusmails'; #$virus_quarantine_method = "local:virus-%i-%n"; # padrão #$spam_quarantine_method = "local:spam-%b-%i-%n"; # padrão $virus_quarantine_to = 'virus-quarantine'; # quarentena local tradicional $spam_quarantine_to = 'spam-quarantine'; [...] $sa_local_tests_only = 1; # (padrão: falso) #$sa_auto_whitelist = 1; # ativar AWL (padrão: falso) # Tempo limite para SpamAssassin. Isso é usado apenas se o spamassassin NÃO # sobrescrever (o que muitas vezes faz se sa_local_tests_only não for verdadeiro) $sa_timeout = 30; # tempo limite em segundos para uma chamada ao SpamAssassin # (o padrão é 30 segundos, undef desabilita) # AWL (lista branca automática), requer spamassassin 2.44 ou melhor # $sa_auto_whitelist = 1; # padrão é undef $sa_mail_body_size_limit = 150*1024; # não perca tempo no SA se o e-mail for maior # (menos de 1% do spam é > 64k) # padrão: undef, sem limitações # valores padrão, podem ser substituídos por buscas mais específicas, e.g. SQL $sa_tag_level_deflt = 4.0; # adicionar cabeçalhos de informações de spam se em, ou acima desse nível $sa_tag2_level_deflt = 6.31; # adicionar cabeçalhos 'spam detectado' nesse nível $sa_kill_level_deflt = $sa_tag2_level_deflt; # aciona ações evasivas de spam # em ou acima desse nível: bounce/reject/drop, # quarentena, e adicionando extensão de endereço de e-mail $sa_dsn_cutoff_level = 10; # nível de spam além do qual um DSN não é enviado, # efetivamente transformando D_BOUNCE em D_DISCARD; # undef desabilita esse recurso e é um padrão; $sa_spam_subject_tag = '*SPAM* '; # (padrão é undef, desabilitado) [...] |

Depois, execute estes comandos para adicionar o usuário clamav ao grupo amavis e reiniciar amavisd-new e ClamAV:

adduser clamav amavis  
 /etc/init.d/amavis restart  
 /etc/init.d/clamav-daemon restart

Em seguida, devemos editar o arquivo de configuração do daemon Freshclam (que é o daemon que busca regularmente e automaticamente as novas assinaturas de vírus de um espelho ClamAV) porque contém um pequeno bug. Abra /etc/clamav/freshclam.conf e modifique a linha NotifyClamd como mostrado abaixo:

vi /etc/clamav/freshclam.conf

| [...] NotifyClamd /etc/clamav/clamd.conf [...] |

Então reinicie o Freshclam (certifique-se de que nenhum outro processo Freshclam (talvez de outra instalação do ClamAV) esteja em execução, pois então nosso Freshclam falhará ao iniciar):

/etc/init.d/clamav-freshclam restart

Agora temos que configurar o Postfix para direcionar e-mails recebidos através do amavisd-new:

postconf -e 'content_filter = amavis:[127.0.0.1]:10024'  
 postconf -e 'receive_override_options = no_address_mappings'

Depois, adicione as seguintes linhas a /etc/postfix/master.cf:

vi /etc/postfix/master.cf

| [...] amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1 |

Então reinicie o Postfix:

/etc/init.d/postfix restart

Agora execute

netstat -tap

e você deve ver o Postfix (master) escutando na porta 25 (smtp) e 10025, e amavisd-new na porta 10024:

server1:~# netstat -tap  
 Active Internet connections (servers and established)  
 Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
 tcp        0      0 localhost.localdo:10024 *:*                     LISTEN     4369/amavisd (maste  
 tcp        0      0 localhost.localdo:10025 *:*                     LISTEN     4895/master  
 tcp        0      0 *:874                   *:*                     LISTEN     1964/rpc.statd  
 tcp        0      0 *:sunrpc                *:*                     LISTEN     1553/portmap  
 tcp        0      0 *:auth                  *:*                     LISTEN     1932/inetd  
 tcp        0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6       0      0 *:imaps                 *:*                     LISTEN     3177/couriertcpd  
 tcp6       0      0 *:pop3s                 *:*                     LISTEN     3094/couriertcpd  
 tcp6       0      0 *:pop3                  *:*                     LISTEN     3038/couriertcpd  
 tcp6       0      0 *:imap2                 *:*                     LISTEN     3129/couriertcpd  
 tcp6       0      0 *:ssh                   *:*                     LISTEN     1943/sshd  
 tcp6       0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6       0    148 localhost:ssh           localhost:4631          ESTABLISHED2052/0

Se você quiser, agora pode adicionar Razor, Pyzor e DCC ao SpamAssassin para melhorar seu desempenho de filtragem. Razor, Pyzor e DCC são filtros de spam que usam uma rede de filtragem colaborativa. Para instalá-los, execute

apt-get install razor pyzor dcc-client

Agora temos que dizer ao SpamAssassin para usar esses três programas. Edite /etc/spamassassin/local.cf e adicione as seguintes linhas:

vi /etc/spamassassin/local.cf

| [...] # dcc use_dcc 1 dcc_path /usr/bin/dccproc dcc_add_header 1 dcc_dccifd_path /usr/sbin/dccifd #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1 #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |

Reinicie o amavisd-new depois:

/etc/init.d/amavis restart

É isso. Agora observe seu log de e-mail (/var/log/mail.log) para ver se o amavisd-new está funcionando corretamente. O amavisd-new registrará sempre que encontrar um e-mail de spam ou vírus. Quando você (re)iniciar o amavisd-new, ele também deve registrar que carrega seu código de escaneamento de spam e vírus (se não, você provavelmente fez algo errado).

Para dar uma olhada ao vivo no seu log de e-mail, você pode usar este comando:

tail -f /var/log/mail.log

(Pressione CTRL + c para sair do log.)

4 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.