Spamassassin, spam olmayan bir şeyi spam olarak işaretledi. Nasıl söylerim?


14

Bu spamassassin eğitimi hakkında genel bir soru. Spamassassin üzerinden gelen postaları filtreleyen yeni kurulmuş bir posta sunucum var. Son zamanlarda spam (puan 5) olarak işaretlenmiş bir uçuş rezervasyonu aldım ve spamassassin spam olmadığını söylemek istiyorum. (Belki de bunu yapmak, değiştirilmiş spamassassin başlıkları olmadan postaları yeniden gönderir?)

Etrafta arama yapmayı denedim ve yalnızca iletileri spam olarak işaretlemek için spamassassin alma (ve yanlış pozitifleri düzeltmeyle ilgili değil) veya e-posta yazan insanlar için - spam olarak işaretlenmeme konusunda bir şeyler buluyorum.

Dolayısıyla, yanlış aramalarda spamassassin geri bildirimi konusunda:

  1. Bunu bir e-posta istemcisinden yapmanın bir yolu var mı (örneğin: Thunderbird)

  2. Bunu posta sunucusundaki komut satırı üzerinden yapmanın bir yolu var mı?

Süreci olabildiğince akıcı hale getirmek istiyorum, ama işi ne yaparsa yapsın.

SpamAssassin'den e-posta ile ilgili ayrıntılar:

 0.0 FSL_HELO_NON_FQDN_1    No description available.
 0.6 HK_RANDOM_ENVFROM      Envelope sender username looks random
-0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no trust [82.150.225.129 listed in list.dnswl.org]
-0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3) [82.150.225.129 listed in wl.mailspike.net]
 0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 1.6 SUBJ_ALL_CAPS          Subject is all capitals
 1.1 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
 0.7 HTML_IMAGE_ONLY_20     BODY: HTML: images with 1600-2000 bytes of words
 0.0 HTML_MESSAGE           BODY: HTML included in message
-0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 0.0 UNPARSEABLE_RELAY      Informational: message has unparseable relay lines
 0.0 T_REMOTE_IMAGE         Message contains an external image

Açıkçası ana suçlular, tüm büyük harfli konu satırı SUBJ_ALL_CAPS ve MIME_HTML_ONLY (Sanırım metin alternatifi yok).

E-posta bir uçuş rezervasyonu onayı içindi ve konu şöyle görünüyordu:

 Subject: JENNINGS/NICHOLAS KOSSOW MR 24 JAN MOF DPS

Başlıkları:

X-Envelope-From: <tdsfndprd@amadeus.com>
X-Envelope-To: <nick@xxx.xxx>
Received: from mail1.amadeus.net (unknown)
    by 147-49-15-51.rev.cloud.scaleway.com(Postfix 3.1.0/8.13.0) with SMTP id unknown
    Fri, 20 Jan 2017 07:55:10 +0000
    (envelope-from <tdsfndprd@amadeus.com>
Received: from obeap115 (nat-dns-mnp.amadeus.net [82.150.225.129])
    by mail1.amadeus.net (Postfix) with ESMTP id 3F7A9200042
    for <nick@xxx.xxx>; Fri, 20 Jan 2017 07:55:10 +0000 (GMT)
From: eticket@garuda-indonesia.com
TO: NICK@XXX.XXXX
Message-ID: <CTS/GA/C50D54421A07/1@tds.amadeus.com>
FND-Request-ID: <CTS/GA/C50D54421A07/1@tds.amadeus.com>
Job-ID: 1
Subject: JENNINGS/NICHOLAS KOSSOW MR 24 JAN MOF DPS
Date: Fri, 20 Jan 2017 07:55:09 +0000
Content-Type: multipart/mixed; 
    boundary="----=_Part_191904_1900935199.1484898909762"
MIME-Version: 1.0

İlk adım neden spam olarak işaretlendiğini sormak olmalıdır . Bu olmadan genel önerilerde bulunabiliriz, size Bayes motorunu jambon için nasıl ayarlayacağımızı gösterebiliriz, ancak özel olarak yanıltılmış kural (lar) ın ele alınmasına yardımcı olamayız. Lütfen sorunuza e-posta gövdesinin ilk birkaç satırını ve tüm başlıkları ekleyin .
MadHatter

@MadHatter öneriler için teşekkürler, soruyu buna göre güncelledi.
Nick Jennings

Ne Bayesian puanı aldığını söylemiyorsun. Bayesian motorunu hiç kullanıyor musunuz?
MadHatter

Skor 5.0 oldu. Konuya eklendi: ***** SPAM 5.0 *****
Nick Jennings

1
Bu, toplam SA puanı, katkıda bulunan Bayes puanı değil. Ama endişelenmeyin, yazdıklarınızın geri kalanından, Bayesian motorunuzun ateşlemediği anlaşılıyor çünkü daha önce hiç eğitmediniz ve bunu ele almak niyetindesiniz!
MadHatter

Yanıtlar:


22

Bu durumda yararlı olabilecek hem özel hem de genel tavsiyeler vardır.

Özel

Buradaki temel sorun, Garuda Havayolları'nın küçük pamuklu çoraplarını kutsaması, istenmeyen postaların çoğunu taşıyan onay e-postaları göndermesidir. Konu satırı ÇOK SHOUTY, oldukça fazla resim ve çok az metin içeren yalnızca HTML e-postaları gönderiyorlar, zarf göndereni ( tdsfndprd@amadeus.com) makine tarafından oluşturulmuş bir nonce ve (dış kaynaklı) onay sistemi için e-posta sağlayıcısı (amadeus.com) işe yaramaz bir SPF kaydına sahiptir ( aksine tüm tavsiyelerimize rağmen , bazı insanlar yanlışlıkla bir kayıtta bazı gönderme sistemlerini listeleyen ve sona eren bir değer olduğunu düşünmektedir ~all).

Bunların çoğu hakkında yapabileceğiniz çok şey yok. Eğer bu ulaşmıyorsa bir satırın emin olmak istiyorsan senin ~/.spamassassin/user_prefsdiyor whitelist_from *@amadeus.comsana yoluyla bu mesajları alacak. Daha ileri gitmek ve tetiklenen kuralların ağırlıklarına müdahale etmek muhtemelen kötü bir fikirdir. SpamAssassin (SA) kural kümesi, büyük miktarda spam'i filtreleyerek ve çoğu için hangi özelliklerin geçerli olduğunu hesaplayarak oluşturulur; bu kuralları kapatarak INBOX'unuzu sadece Garuda onay e-postalarından çok daha fazlasına açmanız muhtemeldir.

Genel

Bu, Bayes motorunun iyi işlediği bir durum. Diğer kuralları tetikleyen ama tetiği bu kuralları yapar ama sen şeyler içerir e-posta yoluyla yardım ederken, okumak istediğiniz istemediklerinize içeriyor gelmez email filtrelemek için tasarlanmıştır do okumak istiyorum.

IIRC, eğer eğitim görmüyorsanız motor hiçbir şey yapmaz. Onu eğitmenin en kolay yolu (say) spamve adlı iki klasörü korumaktır ham. İçine spamEğer INBOX haline getirdiler e-postanın kopyasını koymak ama istemedi; içine hamEğer SA'nın faul düştü e-postaların kopyalarını koymak ama böyle bu onay e-posta gibi, want yaptı.

Sonra her gece (ya da öylesine) bir cron işiniz var

sa-learn --spam --mbox mail/spam
sa-learn --ham  --mbox mail/ham

yolları uygun şekilde değiştirmek. Zamanla, bu motora ne yaptığınızı öğretir ve okumayı sevmez. Düşük bir 1.9 çıkarabilirsiniz ederken yüksek Bayes puanı, bir e-postanın SA puanına 4,0 puan ekleyebilir beri iyi eğitilmiş bir motor gerçekten SA neyi ayırt yardımcı olabilir size ne okumak istediğiniz sen yapamaz - ama bunu yapmak zorunda öğretmek için çaba harcamak .


1
Kulağa makul geliyor. Spam / ham posta kutusu akışını deneyeceğim. Teşekkürler!
Nick Jennings

1
"küçük pamuklu çoraplarını korusun"
Alex Reinking

@MadHatter bunu takip ediyor. Spamassassin'in Ham klasörüne değiştirdiği SPAM e-postasını sürüklemeye çalıştım ve sa-learn --ham ...komutu çalıştırdığımda, öğrenmek için 0 e-posta bulduğunu söylüyor: Learned tokens from 0 message(s) (0 message(s) examined)... .emlSpamAsssasin'in orijinal e-postayı eklediği Ham klasörüne eklentiyi oluşturmaya çalıştım doğrudan sunucuda, ama yine de, işlemek için 0 mesaj bulduğunu söylüyor ...
Nick Jennings

Ayarlara göre ek olarak orijinal e-posta ile uğraştığımı eklemeliyim report_safe 1.
Nick Jennings

@NickJennings muhtemelen orijinal e-postayı çıkarmak için beslemek için MIME özellikli bir istemci kullanmanız gerekecektir sa-learn. Bu çok fazla acı çekiyorsa, kapatın report_safe. Bayes filtresinin varsayımları bir bütün olarak SA'lardan ayrı olduğu için, jam-learner'ı yanlışlıkla spam olarak tanımlanan şeylerin yanı sıra başka şeylerle de eğitmek iyi bir fikirdir. Aldığım tüm kişisel postaları benim besliyorum, çünkü en çok okumak istediğim şeyler bu.
MadHatter

7

Dovecot kullanıyor gibisin. Kullanıcıların postaları kopyalamak zorunda kalmadan sunucu tarafı spam filtrelerini kolayca eğitebilmelerini sağlayan düzgün bir entegrasyon bulmaya birkaç hafta geçirdim .

Anahtar kısım Antispam Dovecot eklentisidir. Tetikleyiciler eklentisi antispam hareket : Üç klasör gruplar arasında operasyonları trash, unsureve spam. Şey bir geçiş (ama ne zaman Özellikle, spam) için spambir geçiş tespit edilir?, Bir spam öğrenme eylemi tetiklenir ve spamhiç unsurealgılandığında, jambon öğrenme işlem tetiklenir.

Farklı eğitim arka uçlarını destekler. Basit mailtrainbir komut, sadece bir komutu yürütür ve postayı standart girdiye koyar. Bunun için bir yapılandırma şöyle görünebilir:

plugin {
   antispam_backend = mailtrain
   antispam_mail_sendmail = /usr/local/bin/sa-learn-stdin.sh
   antispam_mail_spam = spam
   antispam_mail_notspam = ham
   antispam_mail_sendmail_args = -L
   antispam_spam = Junk;INBOX.Junk
   antispam_trash = Trash;INBOX.Trash
   antispam_allow_append_to_spam = no
}

Birlikte /usr/local/bin/sa-learn-stdin.sh:

#!/bin/bash
/usr/bin/spamc "$@" >> /tmp/sa-learn-log
exit 0

Yapılandırma "Spam olarak öğrenmek, koşmak /usr/local/bin/sa-learn-stdin.sh -L spamve jambon olarak öğrenmek için koşmak" yazıyor /usr/local/bin/sa-learn-stdin.sh -L ham. Argümanlar yapılandırılır antispam_mail_spam, antispam_mail_notspamve antispam_mail_sendmail_args.

Bu zaten çok hoş. İstemcinizi spam olarak işaretlediğiniz postaları spam klasörüne taşıyacak şekilde yapılandırabiliyorsanız, bu zaten istemci ve sunucu arasında oldukça otomatik bir entegrasyondur. Aynı şekilde, sunucuyu, spam olarak sınıflandırılan postaları teslimat sırasında spam klasöründe saklayacak şekilde yapılandırırsanız (örneğin, Elek kullanarak), kullanıcı Spam klasöründen çıktığında mesaj jam olarak öğrenilir.


Thunderbird ve KMail ile entegrasyonu geliştirmek için antispam için ne yazık ki yukarı yönde herhangi bir geri bildirim almayan bir yama yazdım ; kendi sorumluluğunuzdadır kullanın .

Antispam'e, plugindovecot yapılandırmasındaki bölüme eklenebilecek bir yapılandırma seçeneği ekler :

   antispam_spam_flags = "Junk;$JUNK"

(Alıntılar $komik bir şey yapmasını önlemek için önemlidir .)

Düzeltme ekiyle, bir ileti spam bayrağı alırsa veya tüm spam bayraklarını kaybederse antispam bir öğrenme eylemini de tetikler. Bayraklar bir IMAP özelliğidir ve istemciler tarafından sunucu tarafındaki bilgi bitlerini depolamak için kullanılır. Görünen o ki, Thunderbird ve KMail mesajların Önemsiz / Spam durumunu saklamak için bu bayrakları kullanıyor.

JunkEğer önemsiz gibi bir ileti işaretlediğinizde bayrak Thunderbird tarafından ayarlanır. Aynı şekilde $JUNKbir KMail bayrağı için. Böylece, bu yapılandırmayla, postaları KMail'deki Thunderbird'de Önemsiz / Non-Junk olarak işaretleyerek sunucu tarafı öğrenmeyi tetikleyebilirsiniz.

K9-Mail gibi diğer istemciler de iyi bir şekilde oynarlar, çünkü varsayılan olarak istenmeyen postaları spam klasöründe taşımaktır, bu da antispam'in de tetikleyeceği yerdir.


Aynı işlevi IMAPSieve'de de uygulayabilirsiniz . Bu benim TODO'mda, ama ne yazık ki şu anda yeterince yeni bir dovecot ile teste hazır bir ortamım yok.


Bu ilginç görünüyor, kesinlikle içine bakacak.
Nick Jennings
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.