Un'alternativa a SpamAssassin che parla il protocollo spamd
Spam Scanner risponde al protocollo spamdIl demone di SpamAssassin. Il suo protocollo è usato da spamc, Exim, Haraka e altri client SpamAssassin. di SpamAssassin, quindi il software scritto per SpamAssassin lo usa senza modifiche: spamc, la condizione spam di Exim, il plugin spamassassin di Haraka e altri.
Sostituirlo#
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-* headersRisponde a CHECK, SYMBOLS, REPORT, REPORT_IFSPAM, PROCESS, HEADERS, PING e, con --allow-tell, a TELL per l'apprendimento. I test end-to-end del progetto lo verificano con lo spamc di SpamAssassin.
Cosa resta uguale#
- Le intestazioni:
X-Spam-Flag,X-Spam-Score,X-Spam-LeveleX-Spam-Statusnel formato di SpamAssassin, quindi le regole esistenti di Sieve, procmail e dei client di posta continuano a funzionare. - Un punteggio con soglia 5, composto da test con nome e punti:
BAYES_99,RBL_ZEN,SPF_FAIL,DKIM_PASSe così via. - I punteggi dei singoli test si possono modificare in base al nome del test.
Cosa cambia#
- Lingue. Le parole vengono segmentate con le regole Unicode, quindi cinese, giapponese e thailandese vengono letti come parole e non come una lunga stringa, e camuffamenti come caratteri invisibili o lettere cirilliche in parole latine vengono annullati prima.
- Phishing. Domini sosia, link ingannevoli e nomi di marchi nei nomi visualizzati vengono controllati senza regole aggiuntive.
- Allegati: vengono identificati dai loro byte, e un eseguibile rinominato in
.pdfresta un eseguibile. - Modelli linguistici. I casi dubbi possono passare a un modello locale tramite OllamaUn programma che scarica ed esegue modelli linguistici aperti sulla tua macchina, con un'API HTTP. o a uno in hosting.
- Node.js. Un solo
npm install, oppure un binario autonomo; nessun modulo Perl o aggiornamento delle regole da gestire.
Spam Scanner non esegue i file di regole di SpamAssassin, e il formato del suo database bayesiano è proprio: addestralo sulla stessa posta con 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