Zimbra 8.6: Entregando os SPAMs independentemente da pontuação

zimbra-no-lettermark - Copy

Olá ! Nesse artigo irei falar sobre o ajuste da ação a ser aplicada no Anti Spam do Zimbra para que a mensagem seja entregue independentemente da sua pontuação (spam score). Nesta nova versão do Zimbra o suporte à ações para mensagens com pontuação de SPAM alta foi aprimorado, permitindo que o administrador defina qual ação seja aplicada.

Essa configuração é armazenada no parâmetro zimbraAmavisFinalSpamDestiny e aceita os seguintes valores:

  • D_DISCARD: Descarta silenciosamente a mensagem (valor padrão)

  • D_PASS: Entrega a mensagem independentemente do Score.

  • D_BOUNCE: Gera um Bounce para a mensagem

  • D_REJECT: Rejeita a mensagem.

Desta forma, desejamos ajustar o parâmetro para o valor D_PASS:

zmprov mcf zimbraAmavisFinalSpamDestiny D_PASS

Anúncios

Zimbra: Melhorando a eficácia do seu anti-spam

Eu já havia publicado um artigo (veja aqui) sobre adicionar o canal SOUGHT ao Spamassassin, que é um repositório atualizado 4 vezes ao dia tendo como bases as Spamtraps dos próprios desenvolvedores da solução. Vejamos agora como incluir este canal no Spamassassin do Zimbra.

Analisando o crontab do Zimbra, podemos constatar que ele executa diariamente um script para atualizar as definições de spam:

45 0 * * * . /opt/zimbra/.bashrc; /opt/zimbra/libexec/zmsaupdate

Editando este script, na linha 56 para a versão 8 do Zimbra, vemos o comando executado para atualizar as definições :

my $sa=”${zimbra_home}/zimbramon/bin/sa-update -v –updatedir ${zimbra_home}/conf/spamassassin –allowplugins –refreshmirrors >/dev/null 2>&1″;

Para adicionar o canal SOUGHT execute os seguintes passos como usuário root:

Baixe a chave do canal:

# wget http://yerp.org/rules/GPG.KEY

Importe a chave  baixada:

# /opt/zimbra/zimbramon/bin/sa-update –import GPG.KEY

Agora como usuário zimbra execute o comando abaixo para verificar se está utilizando o novo canal corretamente:

/opt/zimbra/zimbramon/bin/sa-update -v –channel sought.rules.yerp.org –channel updates.spamassassin.org –gpgkey 6C6191E3 –updatedir /opt/zimbra/conf/spamassassin –allowplugins –refreshmirrors

Funcionando a atualização manual, altere a linha 56 do script zmsaupdate da seguinte forma:

my $sa=”${zimbra_home}/zimbramon/bin/sa-update -v –channel sought.rules.yerp.org –channel updates.spamassassin.org –gpgkey 6C6191E3 –updatedir ${zimbra_home}/conf/spamassassin –allowplugins –refreshmirrors >/dev/null 2>&1″;

 

Roundcube + Spamassassin: Treinando automaticamente o anti spam

Seguindo a série de artigos sobre o Spamassassin e Amavis, apresento agora um complemento (plugin) para o Roundcube que permitirá que o spamassassin “treine”  automaticamente as mensagens após os usuários marcarem como “Spam” ou “Não Spam”.

Eu havia publicado uma configuração para o Dovecot mover as mensagens marcadas como SPAM automaticamente para a pasta desejada : https://respirandolinux.wordpress.com/2013/08/21/dovecot-mover-spam-automaticamente-para-a-pasta-desejada , porém caso ocorra uma falso positivo o usuário não terá como “treinar” o anti-spam para não considerar mais essa mensagem. Como também pode ocorrer de um SPAM não ser identificado e estar chegando na caixa postal do usuário.

Utilizando o Roundcube, é possível utilizar o complemento MARKASJUNK2 para treinar automaticamente o spamassassin, primeiramente efetue o Download no mesmo neste link:

http://www.tehinterweb.co.uk/roundcube/#pimarkasjunk2

Após efetuar o Download, descompacte o mesmo dentro do diretório plugins da sua instalação do Roundcube e edite as seguintes linhas do arquivo config.inc.php:

#Estamos informando para o plugin utilizar comandos como mecanismo para treinar o anti-spam

$rcmail_config[‘markasjunk2_learning_driver’] = ‘cmd_learn’;

#Qual comando deve ser utilizado para identificar a mensagem como spam

$rcmail_config[‘markasjunk2_spam_cmd’] = ‘sa-learn –no-sync –spam –username=amavis %f’;

#Qual comando deve ser utilizado para identificar a mensagem como não-spam (HAM)

$rcmail_config[‘markasjunk2_ham_cmd’] = ‘sa-learn –no-sync –ham –username=amavis %f’

Feito isso, adicione o markasjunk2 aos plugins que serão carregados no Roundcube, no arquivo main.inc.php:

$rcmail_config[‘plugins’] = array(“managesieve”, “markasjunk2”);

Ao carregar o Webmail, serão apresentados os botões SPAM para marcar qualquer mensagem SPAM e o botão NÃO SPAM para marcar mensagens dentro da pasta SPAM do usuário como falso positivo, quando o usuário clicar em uma destas opções o spamassassin será treinado automaticamente.

Abaixo estão as capturas de tela demonstrando a funcionalidade no Roundcube:

Marcar como Não Spam:

Captura de tela de 2013-09-10 15:39:44

Marcar como SPAM:

Captura de tela de 2013-09-10 15:40:04

Dovecot: Mover SPAM automaticamente para a pasta desejada

Quem implementa uma solução anti-spam em seu ambiente, certamente pode desejar mover automaticamente as mensagens marcadas como SPAM  para uma pasta específica do usuário, muitas vezes isto é feito através do Procmail, porém é possível efetuar essa configuração diretamente no Dovecot (Se o estiver utilizando para armazenamento das caixas postais, obviamente), não sendo necessário incluir mais um componente no ambiente.

No Dovecot essa configuração é possível utilizando o serviço SIEVE ( para mais informações: http://wiki.dovecot.org/LDA/Sieve), assumindo que você já o tenha configurado no seu Dovecot, basta modificar a diretiva plugin incluindo a linha abaixo:

plugin {

sieve_global_path = /var/lib/dovecot/default.sieve

}

O script que irá mover as mensagens marcadas como SPAM automaticamente é este, portanto você deve alterar o arquivo configurado no sieve_global_path da seguinte forma:

require [“fileinto”];

# rule:[Move Spam to Junk Folder]
if header :is “X-Spam-Flag” “YES”
{
fileinto “Spam”;
stop;
}

Caso deseje mover para uma outra pasta, como Junk que é muito utilizada, basta substituir o nome da pasta após o fileinto.

Spamassassin e PostgreSQL: sintaxe de entrada é inválida para tipo bytea

Continuando com a série de artigos sobre Amavis e Spamassassin, segue uma dica para quem está integrando o Spamassassin ao PostgreSQL. Após efetuar as configurações observei que não estava sendo possível gravas as mensagens como Spam ou Ham na tabela bayes do Spamassassin, no PostgreSQL era apresentado o seguinte erro:

sintaxe de entrada é inválida para tipo bytea

Isso se devia por estar utilizando a função genérica SQL para o plugin BayesStore:

Mail::SpamAssassin::BayesStore::SQL

Para corrigir, basta alterar a função para a própria do Postgres:

Mail::SpamAssassin::BayesStore::PgSQL 

Spamassassin: Melhorando a eficácia do seu anti-spam

Iniciando a série de artigos sobre o Spamassassin e Amavis, vamos aumentar a eficácia da detecção de Spams atualizando as regras do Spamassassin.

No Debian por padrão a atualização diária das regras do Spamassassin vem desativada, para ativar basta editar o arquivo /etc/default/spamassassin e mudar a varável CRON para 1:

# Cronjob
# Set to anything but 0 to enable the cron job to automatically update
# spamassassin’s rules on a nightly basis
CRON=1

Isso fará com que o script spamassassin, que está no diretório /etc/cron.daily seja executado diariamente.

Porém, há o canal SOUGHT RULES, que é atualizado 4 vezes ao dia pelo desenvolvedor do Spamassassin, e é altamente recomendável utiliza-lo, e pesquisando na internet, inclusive na própria página do projeto são apresentados as melhorias nos resultados após utilização deste canal.

Para utilizar este canal, primeiramente é necessário efetuar o Download e importar a chave do mesmo:

wget http://yerp.org/rules/GPG.KEY

sa-update –import GPG.KEY

Agora, vamos alterar o script do Spamassassin para efetuar utilizar o canal SOUGHT RULES em sua atualização diária, para isso, altere o arquivo /etc/crond.daily/spamassasin, modificando a linha 64 da seguinte forma:

sa-update -v –channel sought.rules.yerp.org –channel updates.spamassassin.org –gpgkey 6C6191E3

Feito isso, basta aguardar a próxima atualização para que as regras do canal SOUGHT sejam instalados, caso queira aplicar imediatamente basta executar o comando conforme inserido no script.