Uma das maiores casos com email hoje em dia é o problema de Unsolicited Bulk Email (UBE). Também conhecido como SPAM, este tipo de mensagens podem também carregar virus e outras formas de pragas. De acordo com alguns relatórios estas mensagens fazem a massa de tráfego de email na Internet.
Esta seção irá cobrir a integração Amavisd-new,Spamassassin, e application>ClamAV
-
O Amavisd-new programa facilitador que pode chamar qualquer número de programas de filtro de conteúdo para detecção de spam, ativirus, etc.
-
O Spamassassin usa uma variedade de mecanismos para filtra emails baseado no conteúdo da mensagem.
-
O ClamAV é uma aplicação anti vírus open source.
-
O dkim-filter implementa um Filtro de Correio do Sendmail(Milter) para o padrão DomainKeys Identified Mail (DKIM).
-
python-policyd-spf habilita a checagem Sender Policy Framework (SPF) com o Postfix.
Isto é como os pedaços se encaixam:
-
Uma mensagem de email é aceita pelo Postfix.
-
A mensagem é passada para qualquer filtro externo dkim-filter e python-policyd-spf, neste caso.
-
então o Amavisd-new processa a mensagem.
-
o ClamAV é usado para escaniar a mensagem. Se a mensagem conter um vírus o Postfix irá rejeitar a mensagem.
-
Mensagem limpas serão analisadas pelo Spamassassin para verificar se a mensagem é um spam. O Spamassassin irá adicionar linhas X-Header permitindo que o Amavisd-new manipule a mensagem.
Por exemplo, se uma mensagem tiver uma pontuação de Spam acima de 15 a mensagem pode ser automaticamente tirada da fila sem que o recipiente seja notificado. Outra maneira de tratar mensagens sinalizadas é enviá-las para o Mail User Agent (MUA) permitindo que o usuário trate a mensagem como lhe convir.
Veja “Postfix” para instruções de como instalar e configurar o Postfix.
Para instalar o resto das aplicações digite o seguinte a partir de um terminal:
sudo apt-get install amavisd-new spamassassin clamav-daemon sudo apt-get install dkim-filter python-policyd-spf
Existem alguns pacotes opcionais que se integram com o Spamassassin para uma melhor detecção de spam:
sudo apt-get install pyzor razor
Junto com as aplicações de filtragem principais, utilitários de compressão são necessários para processar alguns anexos de e-mails:
sudo apt-get install arj cabextract cpio lha nomarch pax rar unrar unzip zip zoo
Agora configure tudo para trabalhar junto e filtrar email.
O comportamento padrão do ClamAV irá atender as suas necessidades. Para mais opções de configuração do ClamAV, verifique os arquivos de configuração em /etc/clamav.
Adicione o usuário clamav no grupo amavis para que o Amavisd-new tenha o acesso apropriado para escanear arquivos:
sudo adduser clamav amavis
O Spamassassin automaticamente detecta componentes opcionais e os utilizará caso estejam presentes. Isso quer dizer que não há necessidade de configurar o pyzor e o razor.
Edite /etc/default/spamassassin para ativar o deamon Spamassassin . Substitua emphasis>ENABLED=0
ENABLED=1
Agora inicie o daemon.
sudo /etc/init.d/spamassassin start
Primeiro ative detecção de spam e antivirus no Amavisd-new editando o /etc/amavis/conf.d/15-content_filter_mode:
use strict; # Você pode modificar este arquivo para reabilitar a checagem de SPAM pelo spamassassin # e para reabilitar a checagem de vírus. # # Modo de checagem de vírus padrão # Remova os comentários das duas linhas abaixo para habilitá-lo # @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Modo de checagem de SPAM padrão # Remova os comentários das duas linhas abaixo para habilitá-lo # @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; # assegura um retorno definido
Saltar o Spam pode ser uma má idéia quando o endereço do retorno é falsificado freqüentemente. Considere editar o /etc/amavis/conf.d/20-debian_defaults para ajustar $final_spam_destiny para D_DISCARD ao invés de D_BOUNCE, conforme a seguir:
$final_spam_destiny = D_DISCARD;
Se o hostname do servidor é diferente do registro MX do domínio, você talvez precise definir manualmente a opção $myhostname. Ainda, se o servidor recebe correspondências para múltiplos domínios, a opção @local_domains_acl precisará ser customizada. Edite o arquivo /etc/amavis/conf.d/50-user:
$myhostname = 'mail.example.com'; @local_domains_acl = ( "example.com", "example.org" );
Após a configuração o Amavisd-new precisa ser reiniciado:
sudo /etc/init.d/amavis restart
Amavisd-new pode ser configurado para automaticamente adicionar à lista branca endereços de domínios com Chaves de Domínio válidas. Existem alguns domínios pré-configurados em /etc/amavis/conf.d/40-policy_banks.
Existem várias maneiras de configurar a Lista Branca para um domínio:
-
'exemplo.com' => 'WHITELIST',: irá adicionar à lista brance qualquer endereço do domínio "exemplo.com".
-
'.exemplo.com' => 'WHITELIST',: irá adicionar à lista brance qualquer endereço de quaisquer subdomínios de "exemplo.com" que possuírem uma assinatura válida.
-
'.exemplo.com/@exemplo.com' => 'WHITELIST',: irá adicionar à lista branca subdomńios de "exemplo.com" que usam a assinatura de exemplo.com, o domínio superior.
-
'./@exemplo.com' => 'WHITELIST',: adiciona endereços que possuem uma assinatura válida de "exemplo.com". Isto é geralmente utilizado para grupos de discussão que assinam suas mensagens.
Um domínio pode conter várias configurações de Listas Brancas. Após a edição do arquivo reinicie o amaisd-new:
sudo /etc/init.d/amavis restart
|
|
|
Neste contexto, assim que um domínio for adicionado à lista branca a mensagem não passará por nenhum filtro anti-spam ou anti-vírus. Esse pode ou não ser o comportamento que você deseja para o domínio. |
Para integração com o Postfix, execute o seguinte a partir do terminal:
sudo postconf -e 'content_filter = smtp-amavis:[127.0.0.1]:10024'
A seguir, edite o arquivo /etc/postfix/master.cf e adicione o seguinte no final do arquivo:
smtp-amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
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_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Adicione também estas duas linhas imediatamente abaixo do serviço de transporte "pickup".
-o content_filter=
-o receive_override_options=no_header_body_checks
Isto irá prevenir que as mensagens geradas para reportar spam sejam classificadas como spam.
Agora reinicie o Postfix:
sudo /etc/init.d/postfix restart
Filtro de Conteúdo com spam e detecção de vírus agora está ativado.
Primeiro, teste se Amavisd-new SMTP está ouvindo:
telnet localhost 10024 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready ^]
No cabeçalho das mensagens que passam pelo filtro de conteúdo você deverá ver:
X-Spam-Level: X-Virus-Scanned: Debian amavisd-new at example.com X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00 X-Spam-Level:
|
|
|
Sua resposta pode variar, mas o importante é que existam X-Virus-Scanned e a entrada X-Spam-Status. |
A melhor forma de descobrir o quê está acontecendo de errado é checar os arquivos de log.
-
Para instruções sobre os logs do Postfix veja a seção “Solucão de problemas”.
-
Amavisd-new utiliza o Syslog para enviar mensagens para o arquivo
/var/log/mail.log. A quantidade de detalhes pode ser aumentada adicionando a opção $log_level ao arquivo/etc/amavis/conf.d/50-usere alterando o valor de 1 para 5.$log_level = 2;
Quando a saída do log do Amavisd-new aumentar, a saída do log do Spamassassin também aumentará.
-
O nível de log do ClamAV pode ser aumentado editando o arquivo
/etc/clamav/clamd.confe definindo a seguinte opção:LogVerbose true
Por padrão, o ClamAV irá enviar mensagens de log para
/var/log/clamav/clamav.log.
|
|
|
Depois de alterar as definições de log de um aplicativo, lembre-se de reiniciar o serviço para que as novas alterações tenham efeito. Além disso, uma vez que o problema que você estiver tentando encontrar for resolvido ,é uma boa idéia alterar as definições de log de volta ao normal. |
Para mais informações sobre a filtragem de mensagens, veja os seguintes links:
Inclusive, sinta-se livre para fazer perguntas no canal de IRC #ubuntu-server da freenode.

