חלופה ל-SpamAssassin שמדברת spamd
Spam Scanner עונה בפרוטוקול spamdהשירות (daemon) של SpamAssassin. הפרוטוקול שלו משמש את spamc, Exim, Haraka ולקוחות SpamAssassin אחרים. של SpamAssassin, כך שתוכנות שנכתבו עבור SpamAssassin משתמשות בו בלי שינוי: spamc, תנאי ה-spam של Exim, התוסף spamassassin של Haraka ואחרות.
החלפה#
sudo systemctl disable --now spamd # or spamassassin
npm install --global spamscanner
spamscanner spamd --port 783 --authspamc -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#
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