Tabela de conteúdo |
O pacote principal a ser instalado é:
# apt-get install amavisd-new
feito isso, o amavis precisa de alguns componentes para melhorar suas funcionalidades, vamos adicionar pacotes que melhoram a sua utilização, instale:
agora os pacotes mais genéricos de compressão (não esqueça de colocar o repositório non-free e contrib nos repositórios do apt):
# apt-get install bzip2 unrar unzip zip ytnef arj pax arc ripole cabextract lzop p7zip-full
edite o arquivo:
# vim /etc/amavis/conf.d/01-debian
e descomente a linha do rar/unrar:
$unrar = ['rar', 'unrar']; #disabled (non-free, no security support) #$unrar = undef;
e comente a linha que o torna indefinido. Feito isso vamos ativar o escaneamento e antispam.
Primeiro vamos ativar o escaneamento de spam e antivírus, edite o arquivo:
# vim /etc/amavis/conf.d/15-content_filter_mode
seu conteúdo deve ficar como o abaixo:
use strict; @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; # ensure a defined return
feito isso, reinicialize o serviço:
# /etc/init.d/amavis restart
se você verficar nos logs vai ver as linhas que representam que tudo deu certo:
ANTI-VIRUS code loaded ANTI-SPAM code loaded ANTI-SPAM-SA code loaded Using primary internal av scanner code for ClamAV-clamd
vamos configurar agora alguns detalhes do amavis, edite o arquivo:
# vim /etc/amavis/conf.d/20-debian-defaults
e altere os seguintes parâmetros:
$syslog_priority = 'info'; $virus_admin = "administrado\@dominio.br"; # due to D_DISCARD default $mailfrom_notify_admin = "administrado\@dominio.br"; $mailfrom_notify_recip = "administrado\@dominio.br"; $mailfrom_notify_spamadmin = "administrado\@dominio.br"; qr'^\.wmf$', # Windows Metafile file(1) type [ qr'^\.(Z|gz|bz2)$' => 0 ], # allow any in Unix-compressed [ qr'^\.(rpm|cpio|tar)$' => 0 ], # allow any in Unix-type archives [ qr'^\.(zip|rar|arc|arj|zoo)$'=> 0 ], # allow any within such archives
Uma vez que o DSPAM está instalado, vamos alterar suas configurações para que ele converse corretamente com o Amavis. Vamos editar seu arquivo de configuração:
Trust amavis DeliveryHost 127.0.0.1 DeliveryPort 24 DeliveryIdent localhost DeliveryProto SMTP ImprobabilityDrive on Preference "signatureLocation=headers" Preference "spamSubject=SPAM" Opt out ServerPID /var/run/dspam/dspam.pid ServerPass.Relay1 "gere_uma_senha_com_makepasswd" ServerParameters "--deliver=innocent -d %u" ServerIdent "dspam" ServerDomainSocketPath "/var/spool/postfix/var/run/dspam.sock" ClientHost "/var/spool/postfix/var/run/dspam.sock" ClientIdent "secret@Relay1"
e o arquivo:
# vim /etc/default/dspam
com a variável user modificada para:
USER=amavis
e alterar as permissões dos locais corretos:
# chown -R amavis:amavis /etc/dspam/ # chown -R amavis:root /var/run/dspam/ # chown -R amavis:amavis /var/log/dspam/
no arquivo /etc/init.d/dspam, encontre a linha:
chown dspam $(dirname $PIDFILE)
e altere por:
chown amavis $(dirname $PIDFILE)
também precisamos criar os diretórios que o dspam vai utilizar dentro do ambiente chroot do Postfix:
# mkdir -p /var/spool/postfix/var/run # chmod o+rwx /var/spool/postfix/var/run # chown postfix:root /var/spool/postfix/var/run
e reinicialize o serviço.
Primeiro ative as configurações no Amavis editando o arquivo:
# vim /etc/amavis/conf.d/20-debian-defaults
$enable_dkim_verification = 1;
$enable_dkim_signing = 1;
$signed_header_fields{'received'} = 0; # turn off signing of Received
$signed_header_fields{'sender'} = 1; # turn on signing of Sender
$signed_header_fields{'to'} = 1; # turn on signing of To
$signed_header_fields{'cc'} = 1; # turn on signing of Cc
dkim_key('ceul.ufms.br', 'ceul', '/var/db/dkim/dominio-key.pem');
onde esta chave foi gerada com os comandos:
# mkdir -p /var/db/dkim # amavisd-new genrsa /var/db/dkim/dominio-key.pem # amavisd-new showkey dominio.br
insira a linha gerada e teste depois com o comando:
# amavisd-new testkey dominio.br
veja uma saída válida:
TESTING: dominio._domainkey.dominio.com.br => pass
se a resposta for positiva, seu domínio com DKIM está ativado corretamente. Depois de ativar a configuração no seu DNS vamos ensinar o [Spamassassin] a classificar melhor usando estas novas tags, edite o arquivo /etc/spamassassin/local.cf:
header DSPAM_SPAM X-DSPAM-Result =~ /^Spam$/ score DSPAM_SPAM 0.5 header DSPAM_HAM X-DSPAM-Result =~ /^Innocent$/ score DSPAM_HAM -0.1 score DKIM_VERIFIED -0.1 score DKIM_SIGNED 0 # don't waste time on fetching ASP record, hardly anyone publishes it score DKIM_POLICY_SIGNALL 0 score DKIM_POLICY_SIGNSOME 0 score DKIM_POLICY_TESTING 0 # DKIM-based whitelisting of domains with good reputation: score USER_IN_DKIM_WHITELIST -8.0 blacklist_from chakerv@att.net whitelist_from_dkim *@ebay.com whitelist_from_dkim *@*.ebay.com whitelist_from_dkim *@ebay.co.uk whitelist_from_dkim *@*.ebay.co.uk whitelist_from_dkim *@ebay.at whitelist_from_dkim *@ebay.ca whitelist_from_dkim *@ebay.de whitelist_from_dkim *@ebay.fr whitelist_from_dkim *@*.paypal.com whitelist_from_dkim *@paypal.com whitelist_from_dkim *@*paypal.com whitelist_from_dkim *@*.paypal.be whitelist_from_dkim *@cern.ch whitelist_from_dkim *@amazon.com whitelist_from_dkim *@cisco.com whitelist_from_dkim *@cnn.com whitelist_from_dkim *@*.cnn.com whitelist_from_dkim service@youtube.com whitelist_from_dkim googlealerts-noreply@google.com # DKIM-based whitelisting of domains with less then perfect # reputation can be given fewer negative score points: score USER_IN_DEF_DKIM_WL -1.5 def_whitelist_from_dkim *@google.com def_whitelist_from_dkim *@googlemail.com def_whitelist_from_dkim *@*googlegroups.com # reduce default scores, which are being abused score ENV_AND_HDR_DKIM_MATCH -0.1 score ENV_AND_HDR_SPF_MATCH -0.5
com isso, agora nosso Spamassassin vai aprender de forma mais eficiente usando o DSPAM e usando o DomainKey como chaves para aprendizado, fora a possibilidade de whitelist e blacklist no servidor.
Se durante a geração de senha do amavisd-new genrsa aparecer o erro:
Problem in Amavis::Tools code: Can't locate Crypt/OpenSSL/RSA.pm
ou:
Problem in Amavis::DKIM code: Can't locate Mail/DKIM/Verifier.pm
é necessário instalar os pacotes adicionais abaixo:
# apt-get install libcrypt-openssl-rsa-perl libmail-dkim-perl
Precisamos alterar as permissões do clamav para que ele possa ser utilizado corretamente pelo Amavis, então, vamos trocar em todos os locais onde o usuário era clamav por amavis:
# vim /etc/clamav/clamd.conf LocalSocketGroup amavis User amavis
# vim /etc/clamav/freshclam.conf DatabaseOwner amavis
# chown amavis /etc/clamav/freshclam.conf # chown -R amavis:amavis /var/run/clamav # chown -R amavis:amavis /var/lib/clamav # chown -R amavis:amavis /var/log/clamav
e agora alterar no logrotate para que os logs não fiquem mais como usuário clamav:
# vim /etc/logrotate.d/clamav-daemon create 640 amavis adm
# vim /etc/logrotate.d/clamav-freshclam create 640 amavis adm
pronto, agora o clamav vai funcionar corretamente com o Amavis.
Primeiro vamos instalar os pacotes necessários:
# apt-get install libnet-dns-perl razor pyzor
depois de fazer estas modificações, vamos criar as entradas do razor e do pyzor para o Amavis:
# su - amavis $ razor-admin -d --create $ razor-admin -register $ razor-admin -discover $ pyzor discover
é preciso definir quem vai utilizar este serviço no Amavis, no nosso caso, vamos utilizá-lo com o Spamassassin, depois de inserir as regras e reiniciar o serviço, vamos reinicializar o Amavis:
# /etc/init.d/amavis restart
pronto, as adições foram feitas com sucesso.
Se você não vê as entradas relacionadas ao seu antispam no cabeçalho das mensagens (headers), fica a dica: verifique se o domínio que você está escaneando é o mesmo lido no arquivo '05-domain_id do Amavis, senão for, ele não vai escanear as mensagens.
--Brivaldo 17h42min de 4 de agosto de 2010 (UTC)