חלופה ל-SpamAssassin שמדברת spamd

Spam Scanner עונה בפרוטוקול spamdהשירות (daemon) של SpamAssassin. הפרוטוקול שלו משמש את spamc, Exim, Haraka ולקוחות SpamAssassin אחרים. של SpamAssassin, כך שתוכנות שנכתבו עבור SpamAssassin משתמשות בו בלי שינוי: spamc, תנאי ה-spam של Exim, התוסף spamassassin של Haraka ואחרות.

החלפה#

Shell
sudo systemctl disable --now spamd       # or spamassassin
npm install --global spamscanner
spamscanner spamd --port 783 --auth
Shell
spamc -c < message.eml     # prints the score, exits 1 for spam
spamc -R < message.eml     # the report, one line per test
spamc < message.eml        # the message with X-Spam-* headers

הוא עונה ל-CHECK, ‏SYMBOLS, ‏REPORT, ‏REPORT_IFSPAM, ‏PROCESS, ‏HEADERS, ‏PING, ועם --allow-tell גם ל-TELL ללמידה. בדיקות הקצה-לקצה של הפרויקט מריצות מולו את ה-spamc של SpamAssassin עצמו.

מה נשאר אותו הדבר#

  • הכותרות: X-Spam-Flag, ‏X-Spam-Score, ‏X-Spam-Level ו-X-Spam-Status בפורמט של SpamAssassin, כך שכללי Sieve,‏ procmail ותוכנות דואר קיימים ממשיכים לעבוד.
  • ניקוד עם סף של 5, שמורכב מבדיקות בעלות שמות ונקודות: BAYES_99, ‏RBL_ZEN, ‏SPF_FAIL, ‏DKIM_PASS וכן הלאה.
  • אפשר לשנות את הניקוד של כל בדיקה לפי שם הבדיקה.

מה שונה#

  • שפות. המילים מפוצלות לפי כללי Unicode, כך שסינית, יפנית ותאית נקראות כמילים ולא כמחרוזת ארוכה אחת, והסוואות כמו תווים בלתי נראים או אותיות קיריליות במילים לטיניות מבוטלות קודם.
  • פישינג. דומיינים מתחזים, קישורים מטעים ושמות מותגים בשמות תצוגה נבדקים בלי כללים נוספים.
  • קבצים מצורפים מזוהים לפי הבתים שלהם: קובץ הרצה ששמו שונה ל-.pdf הוא עדיין קובץ הרצה.
  • מודלי שפה. מקרים גבוליים יכולים לעבור למודל מקומי דרך Ollamaתוכנה שמורידה ומריצה מודלי שפה פתוחים על המחשב שלכם, עם HTTP API. או למודל מתארח.
  • Node.js. ‏npm install אחד, או קובץ בינארי עצמאי; בלי מודולי Perl או עדכוני כללים לנהל.

Spam Scanner לא מריץ את קובצי הכללים של SpamAssassin, ולמסד הנתונים של Bayes שלו יש פורמט משלו: מאמנים אותו מאותו דואר עם spamscanner train.

Exim#

Text
spamd_address = 127.0.0.1 783

# in the DATA ACL
warn  spam       = nobody:true
      add_header = X-Spam-Score: $spam_score
defer spam       = nobody:true
      condition  = ${if >={$spam_score_int}{150}}
      message    = Message rejected as spam

Exim,‏ Haraka,‏ Dovecot ו-procmail

עריכת הדף ב-GitHub · Markdown ·