
Eu tenho um servidor de e-mail com uma instalação spamassassin funcional (postfix, dovecot, amavis, clamav, spamassassin no debian).
Tudo está funcionando muito bem. Spamassassin está filtrando Spams e recebo os cabeçalhos:
X-Virus-Scanned: Debian amavisd-new at xxx.yyy.de
X-Spam-Flag: YES
X-Spam-Score: 8.025
X-Spam-Level: ********
X-Spam-Status: Yes, score=8.025 tagged_above=-9999 required=3
tests=[BAYES_50=0.8, DKIM_INVALID=0.1, DKIM_SIGNED=0.1,
HTML_IMAGE_ONLY_24=1.618, HTML_MESSAGE=0.001,
RAZOR2_CF_RANGE_51_100=1.886, RAZOR2_CHECK=0.922,
RCVD_IN_BL_SPAMCOP_NET=1.347, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
URIBL_ABUSE_SURBL=1.25, URIBL_BLOCKED=0.001]
autolearn=no autolearn_force=no
Estou treinando o Spamassassin (atualmente manualmente) com novos spams e presuntos quando eles chegam:
Tue Dec 15 22:22:14 2020
Spam training for [email protected]
Learned tokens from 12 message(s) (159 message(s) examined)
Ham training for [email protected]
Learned tokens from 4 message(s) (49 message(s) examined)
Deleting spam for [email protected] older than 30 days
Syncing the SpamAssassin journal
bayes: synced databases from journal in 0 seconds: 2711 unique entries (2711 total entries)
Statistics for this run:
0.000 0 3 0 non-token data: bayes db version
0.000 0 5288 0 non-token data: nspam
0.000 0 855 0 non-token data: nham
0.000 0 124148 0 non-token data: ntokens
0.000 0 1602145027 0 non-token data: oldest atime
0.000 0 1608066788 0 non-token data: newest atime
0.000 0 1608067345 0 non-token data: last journal sync atime
0.000 0 1607672985 0 non-token data: last expiry atime
0.000 0 5529600 0 non-token data: last expire atime delta
0.000 0 50552 0 non-token data: last expire reduction count
Run finished Tue Dec 15 22:22:27 2020
Tudo parece funcionar. No entanto, descobri recentemente que alguns spams que sempre parecem iguais ainda chegam às caixas de entrada. É o mesmo tipo de spam e, depois de algumas semanas de treinamento, ele ainda aparece. A pontuação bayesiana não muda.
X-Virus-Scanned: Debian amavisd-new at xxx.yyy.de
X-Spam-Flag: NO
X-Spam-Score: 1.852
X-Spam-Level: *
X-Spam-Status: No, score=1.852 tagged_above=-9999 required=3
tests=[BAYES_00=-1.9, DIGEST_MULTIPLE=0.293, DKIMWL_WL_MED=-0.001,
DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249,
HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, PYZOR_CHECK=1.392,
RAZOR2_CF_RANGE_51_100=1.886, RAZOR2_CHECK=0.922, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01]
autolearn=no autolearn_force=no
Não consigo encontrar nenhum problema e tudo que verifiquei até agora parece estar funcionando. O padrão mínimo de 200 Spams/Hams foi obviamente aprovado. Então isso não deveria ser um problema. Estou treinando Spamassassin com este comando:
/usr/bin/sa-learn --no-sync --spam /var/vmail/$domain/$user/Maildir/.Junk/{cur,new} >> /var/log/sa-learn.log 2>&1
/usr/bin/sa-learn --no-sync --ham /var/vmail/$domain/$user/Maildir/{cur} >> /var/log/sa-learn.log 2>&1
/usr/bin/sa-learn --sync >> /var/log/sa-learn.log 2>&1
Qual poderia ser o problema? Não tenho mais certeza de onde procurar.
Qualquer ajuda é muito apreciada.
Responder1
Os resultados despamassassinO treinamento de Bayes é armazenado em um banco de dados composto por alguns arquivos comumentearmazenado no diretório inicial do usuário sob o qual está sendo executado. Se você ligar com um usuário diferente, não estará acessando/atualizando o mesmo conjunto de dados.
(versão estendida do comentário anterior)
Para separação de privilégios,spamassassingeralmente é executado sob um usuário separado, como debian-spamd
ou amavis
, portanto, durante o autoaprendizado, o banco de dados desse usuário será atualizado. Se desejar fazer atualizações manuais no banco de dados, talvez seja necessário especificar o usuário correto; caso contrário, você estará apenas salvando seus dados de treinamento em um banco de dados diferente e não relacionado.
Como dizer?Se você tiver (backups à parte) duas instâncias dos arquivos de dados de treinamento, você está chamandospamassassinsob dois usuários diferentes (provavelmente um do seu servidor de email, um do seu shell):
# find / -name bayes_toks
/var/lib/amavis/.spamassassin/bayes_toks
/root/.spamassassin/bayes_toks
Ambos os arquivos podem ter um carimbo de data e hora de modificação recente porque assim que o banco de dados estiver suficientemente propagado,spamassassin podeselecionar correspondência suficientemente bem identificada paraautotreinamentoque consiste em aprender tokens de e-mails recebidos sem ação manual (esse comportamento pode ser configurado e você geralmente deseja ativá-lo).
Como consertar?Alimente os mesmos e-mails para o banco de dados correto - chamando sa-learn
com o usuário/homedir que está usando enquanto é chamado do servidor de e-mail (verificarisso, o nome da pasta pode não corresponder ao nome de usuário!):
sudo -H -u amavis sa-learn --no-sync --spam /var/vmail/$domain/$user/Maildir/.Junk/{cur,new} >> /var/log/sa-learn.log 2>&1
sudo -H -u amavis sa-learn --no-sync --ham /var/vmail/$domain/$user/Maildir/{cur} >> /var/log/sa-learn.log 2>&1
sudo -H -u amavis sa-learn --sync >> /var/log/sa-learn.log 2>&1
Eu não estou recomendandofundindoos conjuntos de dados divididos involuntariamente porque o formato do arquivo interno pode ser um pouco confuso (emborapodeser despejado usando --backup
edestrutivamentesubstituído usando --restore
), enquanto o retreinamento nos mesmos dados de spam é muito mais simples e sa-learn
foi projetado para lidar com o envio do mesmo e-mail repetidamente sem efeitos adversos.