SpamAssassin Reverso: bloqueio eficiente de spams

SpamAssassin Reverso: bloqueio eficiente de spams

Um dos maiores ou até mesmo o maior problema quando falamos de e-mail é o recebimento de spam e vírus, um incomodo enorme tanto para o cliente final como a equipe de ti. Existem diversas ferramentas para lidar com SPAM e neste post irei comentar uma das mais populares:  amavis e spamassassin, ambas ferramentas open source para proteção eficiente de e-mail.

spamassassin 05Antes de começar explicar como essas ferramentas em conjunto funcionam, você precisa entender como o spam chega até o seu e-mail e como conseguem encontrar seus dados para envio.

spamassassin 04Para um spam chegar até a sua caixa postal, você ou se cadastrou em sites que vendem listas de contato, ou não seguiu as políticas de segurança básicas citadas anteriormente, assim tornando seu contato de e-mail publico e dando possibilidades para o spammer enviar e-mail a sua caixa postal, neste caso o spam vem de qualquer lugar do mundo através da internet até seu serviço de e-mail e ele irá avaliar se você vai receber ou não este spam, dependendo da configuração lotando sua caixa de spam ou caixa postal.

Para criar este filtro de spam, iremos utilizar o spamassassin, uma ótima ferramenta open source para avaliar o conteúdo dos e-mails e através de pontuações irá deixar ou não passar o conteúdo da mensagem.

spamassassin 03O spamassassin trabalha com pontuações, quanto menor for a pontuação média, mais fechado estará o seu servidor de e-mail, como exemplo, se o seu e-mail receber 6 pontos no spamassassin, esta mensagem irá cair na caixa de spam, sendo possível alterar até mesmo o assunto para marcar e deixar claro que aquela mensagem foi classificada como spam. Agora se a sua mensagem receber 2 pontos na avaliação, sua mensagem vai cair na caixa de entrada normalmente.

Levaremos em consideração que o seu servidor já está instalado o postfix, spamassassin, clamav e amavis. Sendo que o postfix é o seu serviço de e-mail, clamav seu anti-virus e amavis quem irá gerenciar o spamassassin e o clamav juntos.

Configurando o spamassassin

A configuração a seguir foi aplicada em um zimbra 8.7.11 porem as configurações para qualquer outro serviço de e-mail é a mesma, só alterando apenas o diretório padrão dos arquivos.

Para pontuação do spamassassin você tem n opções, segue um exemplo de arquivo de configuração do spamassassin, no zimbra este será o arquivo /opt/zimbra/data/spamassassin/localrules/sauser.cf porem se estiver utilizando apenas o spamassassin será o arquivo /etc/mail/spamassassin/local.cf :

# Quantos pontos o e-mail tem que alcançar para ser considerado spam

required_hits 5.0

# Auto aprendizado

auto_learn 1

#Minimos de incidentes para o aprendizado caracterizar como spam

bayes_min_spam_num 30

# Pyzor's Config - Desligue o pyzor apenas se souber o que esta fazendo. 

use_pyzor 1
pyzor_path /usr/bin/pyzor
pyzor_timeout 20

# Razor's Config - Desligue o razor apenas se souber o que está fazendo

use_razor2 1

# Ativando Bayes Check ( esta opção será necessária caso você queira avaliar o envio ) 

use_bayes 1
 

#SpamAssassin's alguns scores padrões:

score ALL_TRUSTED -4.000
score DATE_IN_PAST_12_24 2.000
score DCC_CHECK 2.500
score DNS_FROM_AHBL_RHSBL 0
score FORGED_OUTLOOK_HTML 1.500
score HEADER_FROM_DIFFERENT_DOMAINS 2.000
score HTML_FONT_LOW_CONTRAST 2.00
score HTML_IMAGE_RATIO_02 2.000
score RCVD_IN_BRBL_LASTEXT 3.500
score RCVD_IN_PBL 0.905
score RCVD_IN_RP_CERTIFIED -2.500
score T_HTML_ATTACH 2.000
score T_LONG_HEADER_LINE_80 0.500
score T_NOT_A_PERSON 0.500
score T_OBFU_HTML_ATTACH 1.000
score T_REMOTE_IMAGE 2.500
score UPPERCASE_50_75 0.700
score URIBL_BLACK 4.250
score URIBL_DBL_REDIR 1.500
score URIBL_DBL_SPAM 5.000
score URIBL_JP_SURB 5.000
score URIBL_JP_SURBL 5.000
score URIBL_WS_SURBL 5.000
score SUBJ_ALL_CAPS 1.000
score LOTS_OF_MONEY 0.700
score T_HK_MUCHMONEY 0.700
score T_KHOP_FOREIGN_CLICK 0.700
score T_SHORTENED_URL_HREF 0.400
score T_URL_SHORTENER 0.400
score BAD_ENC_HEADER 0.400
score T_UNKNOWN_ORIGIN 0.700
score RP_MATCHES_RCVD -0.000
score BAYES_90 4.300
score BAYES_80 3.500
score BAYES_60 3.000
score BAYES_50 2.500
score BAYES_00 -0.500

Analisando o arquivo, temos que interpretar que ele funcionará através dos pontos que irá adicionar ou remover de acordo com as suas mensagens, assim irá pontuando de acordo com cada item da sua mensagem.

Como agora já sabemos como funciona o spamassassin e como é feita a sua pontuação e avaliação, ficará mais claro para criar o nosso cenário, através desse arquivo, você conseguirá bloquear as mensagens que você recebe como spam, assim filtrando quando você recebe um spam e as caixas postais não vão mais ficar com a pasta de spam cheia.

A necessidade

O principal intuito desse post foi a necessidade de bloquear não só o recebimento conforme configuramos anteriormente.

Foi de analisar o envio, porem alem de analisar e bloquear o envio de spam de um servidor, você deverá avaliar palavras chaves no conteúdo, caso contenha o conteúdo “xpto” no corpo de sua mensagem, ela não será enviada. Mas agora você se pergunta, o spamassassin não foi feito para analisar mensagens que são recebidas ? Sim, ele foi feito para isto, dai que utilizaremos um conjunto de aplicações para criar uma nova avaliação de mensagem, algo que dei o apelido de:

spamassassin reverso

spamassassin 02Por que ? Em um servidor que caixas postais são acessadas de diversos  locais diferentes, como computador de casa, celular e etc… Você não irá conseguir ter o controle da segurança dos dispositivos, então caso o computador esteja com um malware, assim que acessar a caixa postal, ele irá roubar a senha e começar disparar spam tanto para a lista de contatos, ou seja as caixas postais do próprio servidor, como para fora, assim colocando seu servidor constantemente em RBL’s e afetando a sua entregabilidade no envio.

OBS: Ao habilitar este bloqueio, você estará bloqueando tanto para enviar quanto para receber, qualquer configuração realizada nos arquivos do amavis e do spamassassin servem para recebimento e envio. As configurações realizadas nestes arquivos podem afetar o funcionamento direto do filtro de spam e anti-virus.

Por padrão, o filtro de spam é apenas realizado quando você recebe uma mensagem e não quando é enviado, neste caso, será necessário realizar uma configuração alternativa no Amavis para começar a verificar as mensagens ao enviar.

Com usuário root, acesse o arquivo /opt/zimbra/conf/amavisd.conf.in ( se não estiver utilizando o zimbra, basta buscar o arquivo amavisd.conf.in ) para habilitar a consulta de spam ao enviar uma mensagem:

# vim /opt/zimbra/conf/amavisd.conf.in 



101 bypass_spam_checks_maps => [0]



117 bypass_virus_checks_maps => [0]

As opções que por padrão vem habilitada, servem para não realizar a consulta dos e-mails internos, ou seja, não irá verificar se os e-mails enviados ou recebidos através da minha rede ( servidor ) contenham spam ou virus, deverá desabilitar esta opção para verificar o spam ao enviar, neste caso, altere  ela com 0 ” zero “.

Após isto, garanta que o seu arquivo de configuração do spamassassin, aquele que configuramos anteriormente, tenha a opção use_bayes.

spamassassin 01Salve o arquivo e reinicie o serviço do amavis, agora ele já estará alem de filtrar o recebimento, ele irá filtrar o envio. O responsável por isto será o amavis, ele que irá gerenciar as suas mensagens, porem lembre-se, isto dobra o processamento e leitura das suas mensagens, então verifique seu hardware antes de sair aplicando esta configuração.

O filtro duplo já evita que as suas contas enviem spam ou virus para os e-mails da sua empresa ou externo, assim fechando ainda mais seu servidor, sendo possível consultar no log  que a mensagem foi recusada pelo servidor:

# tailf /var/log/zimbra.log

Aug 3 19:37:19 zimbra postfix/smtp[6333]: 678831127FEE: to=<gabrielpolicante22@gmail.com>, relay=127.0.0.1[127.0.0.1]:10026, delay=1.9, delays=0.04/0.02/0.01/1.8, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=02513-02 - spam)

Bloqueio de palavras especificas

Caso você queira bloquear uma palavra em especifico, por exemplo, uma conta está enviando virus para minhas contas internas e e-mails externos, ao verificar, o conteúdo que está sendo enviado é o mesmo, ou seja, o mesmo e-mail porem sendo replicado milhares de vezes, para contas diferentes.

Neste caso, iremos utilizar o spamassassin, as suas métricas de pontuações para derrubar esta palavra, porem tome cuidado, caso a palavra esteja no meio de outra palavra ela será bloqueada tambem.

exemplo: bloqueando a palavra “test” você estará bloqueando testar, testando, teste etc…

Acesse o arquivo de configuração de pontuação do seu spamassassin e adicione a opção body LOCAL_RULE /xpto/ onde xpto é a palavra que você vai estar bloqueando no corpo da mensagem.

Após habilitar esta opção, deverá dar uma pontuação para esta palavra, neste caso utilize o parametro score LOCAL_RULE 15.000 dando 15 pontos para ela, então ficará da seguinte forma :

# regra que irá bloquear a palavra 

body LOCAL_RULE /teste/



# score de pontuação da palavra 

score LOCAL_RULE 15.000

Reinicie o seu serviço de gerenciamento de spam e os bloqueios de envio e palavras já estarão funcionando corretamente.

Muito bem, agora você já conhece como funciona um filtro de spam, como configura-lo e como otimizar e bloquear ainda mais sua infraestrutura de e-mail, lembre-se de sempre avaliar o que está realizando nesses arquivos, você pode começar a ter ainda mais dor de cabeça ao bloquear tudo na sua empresa, busque sempre analisar todo o cenário e busque seguir as boas praticas informadas no inicio do arquivo antes de sair bloqueando tudo.

Anterior Instalação de uma Wiki em ambiente corporativo
Próxima 12 Metodos para prevenir-se de ataques DDOS

About author

Gabriel Araujo
Gabriel Araujo 3 posts

Gabriel Araujo é um sysadmin apaixonado por linux. Formado em redes de computadores no Senai Suiço. Com 4 anos de experiência em T.I., porem entusiasta desde criança, atualmente atuando como especialista em e-mail e infraestrutura. Tambem atuando como instrutor ministrando cursos de Linux e suas diversas tecnologias, capacitando diversos técnicos em Linux e soluções Open Source.

View all posts by this author →

Você pode gostar também

Infraestrutura 0 Comentários

Instalando o NGINX e configurando um proxy reverso

Neste Post você aprenderá como instalar o nginx e configurar um proxy reverso.   Vamos começar com a instalação do NGINX. No meu caso, estou utilizando um CentOs 7, primeiramente

Infraestrutura 0 Comentários

PAGILA – Base de dados educativa para PostgreSQL

Quando comecei aprender sobre banco de dados, senti falta de bases de dados prontas para fins de teste com o PostgreSQL. Eu queria aplicar conceitos aprendidos sobre SELECT, INSERT, UPDATE

Infraestrutura 0 Comentários

Como funciona a descoberta de baixo nível (LLD) no Zabbix?

Descoberta de baixo nível, ou Low-level discovery (LLD), é um processo que automatiza o registro e monitoramento de recursos pelo Zabbix, ele pode fazer a identificação de métricas em sistemas

3 Comentários

    • Murilo Timo
      outubro 01, 05:50 Reply

      Curti, é assim que estão fazendo lá?
      grande abraço, parabéns pelo blog!!!

Deixe uma resposta