Postfix e Spam · 8 min read · Jan 17, 2026
Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail (Ubuntu 12.04 LTS) - Página 3
9 Instalar amavisd-new, SpamAssassin E ClamAV
Para instalar amavisd-new, spamassassin e clamav, execute o seguinte comando:
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop paxDepois, devemos configurar o amavisd-new. A configuração está dividida em vários arquivos que residem no diretório /etc/amavis/conf.d. Dê uma olhada em cada um deles para se familiarizar com a configuração. A maioria das configurações está boa, no entanto, devemos modificar três arquivos:
Primeiro, devemos habilitar o ClamAV e o SpamAssassin em /etc/amavis/conf.d/15-content_filter_mode descomentando as linhas @bypass_virus_checks_maps e @bypass_spam_checks_maps:
vi /etc/amavis/conf.d/15-content_filter_modeO arquivo deve ficar assim:
| use strict; # Você pode modificar este arquivo para reabilitar a verificação de SPAM através do spamassassin # e para reabilitar a verificação de antivírus. # # Modo padrão de verificação de antivírus # Por favor, note que a verificação de antivírus está DESABILITADA por # padrão. # Se você deseja habilitá-la, por favor descomente as seguintes linhas: @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Modo padrão de verificação de SPAM # Por favor, note que a verificação de anti-spam está DESABILITADA por # padrão. # Se você deseja habilitá-la, por favor descomente as seguintes linhas: @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; # garantir um retorno definido |
E então você deve dar uma olhada nas configurações de spam e nas ações para e-mails de spam/vírus em /etc/amavis/conf.d/20-debian_defaults. Não há necessidade de mudar nada se as configurações padrão estiverem boas para você. O arquivo contém muitas explicações, então não há necessidade de explicar as configurações aqui:
vi /etc/amavis/conf.d/20-debian_defaults| [...] $QUARANTINEDIR = "$MYHOME/virusmails"; $quarantine_subdir_levels = 1; # habilitar a hash do diretório de quarentena $log_recip_templ = undef; # desabilitar entradas de log de nível-0 por destinatário $DO_SYSLOG = 1; # log via syslogd (preferido) $syslog_ident = 'amavis'; # tag de identificação do syslog, prependida a todas as mensagens $syslog_facility = 'mail'; $syslog_priority = 'debug'; # mude para info para descartar a saída de debug, etc $enable_db = 1; # habilitar uso de BerkeleyDB/libdb (SNMP e nanny) $enable_global_cache = 1; # habilitar uso de cache baseado em libdb se $enable_db=1 $inet_socket_port = 10024; # socket padrão de escuta $sa_spam_subject_tag = '*SPAM* '; $sa_tag_level_deflt = 2.0; # adicionar cabeçalhos de informação 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 = 6.31; # aciona ações evasivas de spam $sa_dsn_cutoff_level = 10; # nível de spam além do qual um DSN não é enviado [...] $final_virus_destiny = D_DISCARD; # (dados não perdidos, veja a quarentena de vírus) $final_banned_destiny = D_BOUNCE; # D_REJECT quando MTA de front-end $final_spam_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS; # Propenso a falsos positivos (para spam) [...] |
Finalmente, edite /etc/amavis/conf.d/50-user e adicione a linha $pax=’pax’; no meio:
vi /etc/amavis/conf.d/50-user| use strict; # # Coloque suas diretivas de configuração aqui. Elas substituirão aquelas em # arquivos anteriores. # # Veja /usr/share/doc/amavisd-new/ para documentação e exemplos das # diretivas que você pode usar neste arquivo # $pax='pax'; #------------ Não modifique nada abaixo desta linha ------------- 1; # garantir um retorno definido |
Depois, execute esses comandos para adicionar o usuário clamav ao grupo amavis e reiniciar o amavisd-new e o ClamAV:
adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-freshclam restart
/etc/init.d/clamav-daemon restart
Agora precisamos configurar o Postfix para canalizar 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 ao /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 |
Então reinicie o Postfix:
/etc/init.d/postfix restartAgora execute
netstat -tape você deve ver o Postfix ( master) escutando na porta 25 ( smtp) e 10025, e o amavisd-new na porta 10024:
root@server1:/etc/courier# netstat -tap
Conexões Internet ativas (servidores e estabelecidas)
Proto Recv-Q Send-Q Endereço Local Endereço Estrangeiro Estado PID/Nome do Programa
tcp 0 0 localhost.localdo:10025 : LISTEN 25911/master
tcp 0 0 localhost.localdo:mysql : LISTEN 3895/mysqld
tcp 0 0 :http : LISTEN 4845/apache2
tcp 0 0 :ssh : LISTEN 649/sshd
tcp 0 0 :smtp : LISTEN 25911/master
tcp 0 0 localhost.localdo:10024 : LISTEN 24534/amavisd (mast
tcp 0 52 server1.example.com:ssh 192.168.0.199:4745 ESTABLISHED 847/0
tcp6 0 0 [::]:pop3 [::]: LISTEN 20989/couriertcpd
tcp6 0 0 [::]:imap2 [::]: LISTEN 20921/couriertcpd
tcp6 0 0 [::]:ssh [::]: LISTEN 649/sshd
tcp6 0 0 [::]:smtp [::]: LISTEN 25911/master
tcp6 0 0 [::]:imaps [::]: LISTEN 20958/couriertcpd
tcp6 0 0 [::]:pop3s [::]:* LISTEN 21026/couriertcpd
root@server1:/etc/courier#
10 Instalar Razor, Pyzor E DCC E Configurar o SpamAssassin
Razor, Pyzor e DCC são filtros de spam que usam uma rede de filtragem colaborativa. Para instalar Razor e Pyzor, execute
apt-get install razor pyzorDCC não está disponível nos repositórios do Ubuntu 12.04, então o instalamos da seguinte forma:
cd /tmp
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc-1.3.142
./configure –with-uid=amavis
make
make install
chown -R amavis:amavis /var/dcc
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd
Agora precisamos dizer ao SpamAssassin para usar esses três programas. Edite /etc/spamassassin/local.cf e adicione as seguintes linhas a ele:
vi /etc/spamassassin/local.cf| [...] #dcc use_dcc 1 dcc_path /usr/local/bin/dccproc #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |
Então devemos habilitar o plugin DCC no SpamAssassin. Abra /etc/spamassassin/v310.pre e descomente a linha loadplugin Mail::SpamAssassin::Plugin::DCC:
vi /etc/spamassassin/v310.pre| [...] # DCC - realizar verificações de mensagens DCC. # # DCC está desabilitado aqui porque não é open source. Veja a licença do DCC # para mais detalhes. # loadplugin Mail::SpamAssassin::Plugin::DCC [...] |
Você pode verificar sua configuração do SpamAssassin executando:
spamassassin --lintNão deve mostrar nenhum erro.
Agora há um pequeno bug no script init do amavisd-new. Abra /etc/init.d/amavis…
vi /etc/init.d/amavis… e comente a linha STOP=”–stop –quiet –pidfile $PIDFILE –name ${DAEMONNAME}” e adicione STOP=”–stop –quiet –pidfile $PIDFILE” em vez disso:
| [...] set -e START="--start --quiet --pidfile $PIDFILE --name ${DAEMONNAME} --startas ${DAEMON}" #STOP="--stop --quiet --pidfile $PIDFILE --name ${DAEMONNAME}" STOP="--stop --quiet --pidfile $PIDFILE" PARAMS= check_noncompatible_upgrade() [...] |
Reinicie o amavisd-new depois:
/etc/init.d/amavis restartAgora atualizamos nossos conjuntos de regras do SpamAssassin da seguinte forma:
sa-update --no-gpgCriamos um trabalho cron para que os conjuntos de regras sejam atualizados regularmente. Execute
crontab -epara abrir o editor de trabalhos cron. Crie o seguinte trabalho cron:
| 23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null |
Isso atualizará os conjuntos de regras a cada dois dias às 4:23h.
11 Notificações de Excesso de Quota
Se você deseja receber notificações sobre todas as contas de e-mail que estão acima da quota, então crie o arquivo /usr/local/sbin/quota_notify:
cd /usr/local/sbin/
vi quota_notify
| #!/usr/bin/perl -w # Autor <[email protected]> # # Este script assume que virtual_mailbox_base está definido # no arquivo main.cf do postfix. Este diretório é assumido para conter # diretórios que por sua vez contêm os maildirs dos seus usuários virtuais. # Por exemplo: # # -----------/ # | # | # home/vmail/domains/ # | | # | | # example.com/ foo.com/ # | # | # ----------------- # | | | # | | | # user1/ user2/ user3/ # | # | # maildirsize # use strict; my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('[email protected]'); my $CONAME = 'Minha Empresa'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; #get virtual mailbox base from postfix config open(PCF, "< $POSTFIX_CF") or die $!; my $mboxBase; while ( |
Certifique-se de ajustar as variáveis no topo (especialmente o endereço de e-mail [email protected]).
Devemos tornar o arquivo executável:
chmod 755 quota_notify Execute
crontab -epara criar um trabalho cron para esse script:
| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.