In precedenza abbiamo discusso di 7 metodi efficaci per bloccare lo spam e-mail con Postfix su CentOS/RHEL. In questo tutorial impareremo come utilizzare SpamAssassin (SA) per rilevare lo spam sul server di posta CentOS/RHEL. SpamAssassin è uno strumento gratuito, open source, flessibile e potente per combattere lo spam.
SpamAssassin è un sistema basato sul punteggio. Verificherà il messaggio di posta elettronica rispetto a un ampio insieme di regole. Ogni regola aggiunge o rimuove punti nel punteggio del messaggio. Se il punteggio è sufficientemente alto (per impostazione predefinita 5.0), il messaggio è considerato spam.
Installa SpamAssassin su CentOS/RHEL
Eseguire il comando seguente per installare SpamAssassin dal repository software CentOS/RHEL predefinito.
sudo dnf install spamassassin
Il binario del server installato da spamassassin
il pacchetto si chiama spamd
, che sarà in ascolto sulla porta TCP 783 su localhost. Spamc
è il client per il demone di filtro antispam SpamAssassin. Per impostazione predefinita, spamassassin
systemd è disabilitato, puoi abilitare l'avvio automatico all'avvio con:
sudo systemctl enable spamassassin
Quindi avvia SpamAssassin.
sudo systemctl start spamassassin
Integra SpamAssassin con Postfix SMTP Server come Milter
Esistono diversi modi per integrare SpamAssassin con Postfix. Preferisco usare SpamAssassin tramite l'interfaccia di sendmail milter, perché mi consente di rifiutare un'e-mail quando ottiene un punteggio molto alto come 8, quindi non sarà mai vista dal destinatario.
Installa il spamass-filter
pacchetti su CentOS/RHEL dal repository del software EPEL.
sudo dnf install epel-release sudo dnf install spamass-milter
Avvia il servizio.
sudo systemctl start spamass-milter
Abilita l'avvio automatico all'avvio.
sudo systemctl enable spamass-milter
Quindi, modifica /etc/postfix/main.cf
file e aggiungi le seguenti righe alla fine del file.
# Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = unix:/run/spamass-milter/spamass-milter.sock non_smtpd_milters = $smtpd_milters
Se hai configurato OpenDKIM e OpenDMARC su CentOS/RHEL, queste righe dovrebbero apparire come sotto. L'ordine del milter è importante.
# Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:127.0.0.1:8891,inet:127.0.0.1:8893,unix:/run/spamass-milter/spamass-milter.sock non_smtpd_milters = $smtpd_milters
Se non hai configurato OpenDMARC, dovresti rimuovere local:opendmarc/opendmarc.sock,
da smtpd_milters
.
Salva e chiudi il file. Ora apri il /etc/sysconfig/spamass-milter
file e trova la riga seguente.
#EXTRA_FLAGS="-m -r 15"
Decommenta questa riga e cambia 15 con il tuo punteggio di rifiuto preferito, ad esempio 8.
EXTRA_FLAGS="-m -r 8"
Se il punteggio di una particolare email è superiore a 8, Spamassassin la rifiuterebbe e troverai un messaggio come quello di seguito nel /var/log/maillog
file, indicando che è stato rifiutato.
milter-reject: END-OF-MESSAGE 5.7.1 Blocked by SpamAssassin
Se desideri che il mittente visualizzi un testo di rifiuto diverso, aggiungi il -R
(rifiuta testo) come di seguito.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE"
È buona norma ignorare le email provenienti da localhost aggiungendo il -i 127.0.0.1
opzione.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1"
Dobbiamo anche aggiungere il -g sa-milt
opzione per rendere scrivibile la presa spamass-milter dal gruppo sa-milt.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt"
Salva e chiudi il file. Quindi aggiungi postfix
utente al sa-milt
gruppo, in modo che Postfix possa comunicare con spamass-milter.
sudo gpasswd -a postfix sa-milt
Riavvia Postfix e Spamass Milter per rendere effettive le modifiche.
sudo systemctl restart postfix spamass-milter
Controlla lo stato e assicurati che siano in esecuzione.
sudo systemctl status postfix spamass-milter
Controllo dell'intestazione e del corpo dell'e-mail con SpamAssassin
SpamAssassin viene fornito con molte regole di rilevamento dello spam in /usr/share/spamassassin/ directory. Mi permetta di spiegare alcune delle regole.
In /usr/share/spamassassin/20_head_tests.cf file, puoi trovare le seguenti due righe.
header MISSING_HEADERS eval:check_for_missing_to_header() describe MISSING_HEADERS Missing To: header
La prima riga verifica se A: l'intestazione esiste in un messaggio di posta elettronica. La seconda riga, che è facoltativa, spiega cosa fa la prima riga. Le lettere maiuscole sono il nome di questo test.
Le 3 righe seguenti sono per il test se è presente una Data: intestazione nel messaggio di posta elettronica.
header __HAS_DATE exists:Date meta MISSING_DATE !__HAS_DATE describe MISSING_DATE Missing Date: header
E queste 3 righe sono per il test se c'è un Da: intestazione nel messaggio di posta elettronica.
header __HAS_FROM exists:From meta MISSING_FROM !__HAS_FROM describe MISSING_FROM Missing From: header
Imposta un punteggio personalizzato per le regole esistenti
Nel 50_scores.cf
e 72_scores.cf
file, puoi vedere i punteggi predefiniti per vari test. Se ritieni che il punteggio predefinito sia troppo basso o troppo alto per un determinato test, puoi impostare un punteggio personalizzato in /etc/mail/spamassassin/local.cf
file.
sudo nano /etc/mail/spamassassin/local.cf
Ad esempio, RFC 5322 richiede che ogni messaggio di posta elettronica debba avere Da: e Data: campi di intestazione, quindi posso impostare un punteggio molto alto se uno di essi manca in un messaggio di posta elettronica aggiungendo le seguenti due righe in local.cf
file.
score MISSING_FROM 5.0 score MISSING_DATE 5.0
Sebbene il A: il campo di intestazione non è obbligatorio in RFC 5322, preferisco impostare un punteggio elevato se manca in un messaggio di posta elettronica perché non ho mai visto un'e-mail legittima priva di questo campo di intestazione.
score MISSING_HEADERS 3.0
Alcuni spammer utilizzano due indirizzi email in Da: campo di intestazione come di seguito.
From: "[email protected]" <[email protected]>
Penso che il punteggio predefinito per questo tipo di email sia basso, preferisco impostarlo su 3.0.
score PDS_FROM_2_EMAILS 3.0
Ci sono spammer che inviano messaggi vuoti senza oggetto e senza parti testuali nel corpo. Ho impostato il punteggio per questo tipo di email su 5.0, quindi verrà inserito nella cartella spam. Perché leggerlo se è vuoto?
score EMPTY_MESSAGE 5.0
E spesso altri spammer ti chiedono di inviare una conferma di lettura, io ho impostato il punteggio su 2.0 per questo tipo di email.
score FREEMAIL_DISPTO 2.0
Alcuni spammer utilizzano nomi di dominio diversi in Da: e Rispondi a: header, do loro un punteggio di 3,5.
score FREEMAIL_FORGED_REPLYTO 3.5
Ho anche visto alcuni spammer usare un nome di dominio inesistente in Da: campo di intestazione. Ho impostato un punteggio di 5,0 per questo tipo di email.
score DKIM_ADSP_NXDOMAIN 5.0
Ultimo ma non meno importante, molti spammer falsificano gmail.com
dominio nel Da: campo di intestazione. Ho impostato un punteggio di 2,5 per questo tipo di email.
score FORGED_GMAIL_RCVD 2.5
Aggiungere le tue regole
Puoi aggiungere regole SpamAssassin personalizzate in /etc/mail/spamassassin/local.cf file.
sudo nano /etc/mail/spamassassin/local.cf
Regole dell'intestazione
Ad esempio, alcuni spammer utilizzano lo stesso indirizzo email in Da: e A: intestazione. puoi aggiungere le seguenti righe alla fine del file per aggiungere punteggi a tali email.
header FROM_SAME_AS_TO ALL=~/\nFrom: ([^\n]+)\nTo: \1/sm describe FROM_SAME_AS_TO From address is the same as To address. score FROM_SAME_AS_TO 2.0
Alcuni spammer utilizzano un indirizzo vuoto per l'indirizzo Busta da (noto anche come intestazione del percorso di ritorno). Sebbene sia legittimo per l'invio di messaggi di rimbalzo, preferisco assegnare un punteggio a questo tipo di email.
header EMPTY_RETURN_PATH ALL =~ /<>/i describe EMPTY_RETURN_PATH empty address in the Return Path header. score EMPTY_RETURN_PATH 3.0
Se hai configurato OpenDMARC sul tuo server di posta, ora puoi aggiungere le seguenti righe per aggiungere punteggi alle e-mail che non superano il controllo DMARC.
header CUSTOM_DMARC_FAIL Authentication-Results =~ /dmarc=fail/ describe CUSTOM_DMARC_FAIL This email failed DMARC check score CUSTOM_DMARC_FAIL 3.0
Il codice sopra indica a SpamAssassin di verificare se i Autenticazione-Risultati header contiene la stringa “dmarc=fail”. Se trovato, aumenta il punteggio di 3,0.
Regole del corpo
Puoi dire a SpamAssassin di aumentare il punteggio di un'e-mail se una determinata frase viene trovata nel corpo. Ad esempio, molti spammer utilizzano l'indirizzo email del destinatario nella prima riga del corpo come di seguito.
Hi [email protected] Hello [email protected] Dear [email protected]
Non voglio parlare con persone che non si preoccupano di scrivere il mio nome nella prima riga dell'e-mail. Quindi ho creato una regola in SpamAssassin per filtrare questo tipo di email.
body BE_POLITE /(hi|hello|dear) xiao\@linuxbabe\.com/i describe BE_POLITE This email doesn't use a proper name for the recipient score BE_POLITE 5.0
L'espressione regolare in SpamAssassin fa distinzione tra maiuscole e minuscole per impostazione predefinita, puoi aggiungere il i
opzione alla fine per renderlo senza distinzione tra maiuscole e minuscole.
Aggiungi punteggi negativi
Puoi anche aggiungere un punteggio negativo a buone email, così ci saranno meno falsi positivi. Ad esempio, molti dei lettori del mio blog mi fanno domande su Linux e non credo che gli spammer includerebbero parole come Debian
, Ubuntu
, Linux Mint
nel corpo dell'email, quindi ho creato la seguente regola.
body GOOD_EMAIL /(debian|ubuntu|linux mint|centos|red hat|RHEL|OpenSUSE|Fedora|Arch Linux|Raspberry Pi|Kali Linux)/i describe GOOD_EMAIL I don't think spammer would include these words in the email body. score GOOD_EMAIL -4.0
Se il corpo dell'e-mail contiene il nome di una distribuzione Linux, aggiungi un punteggio negativo (-4,0).
Ci sono alcune frasi comuni che sono incluse nei messaggi di rimbalzo legittimi, quindi posso aggiungere punteggi negativi a questi messaggi email.
body BOUNCE_MSG /(Undelivered Mail Returned to Sender|Undeliverable|Auto-Reply|Automatic reply)/i describe BOUNCE_MSG Undelivered mail notifications or auto-reply messages score BOUNCE_MSG -1.5
Tieni presente che le regole del corpo includono anche l'oggetto come prima riga del contenuto del corpo.
Meta regole
Oltre alle regole dell'intestazione e del corpo, ci sono anche le meta regole. Le meta regole sono combinazioni di altre regole. Puoi creare una meta regola che si attiva quando due o più altre regole sono vere. Ad esempio, ricevo occasionalmente e-mail in cui si dice che il mittente desidera candidarsi per un lavoro e un curriculum è allegato. Non ho mai detto sul mio sito web che ho bisogno di assumere persone. L'allegato viene utilizzato per diffondere il virus. Ho creato la seguente meta regola per filtrare questo tipo di email.
body __RESUME /(C.V|Resume)/i meta RESUME_VIRUS (__RESUME && __MIME_BASE64) describe RESUME_VIRUS The attachment contains virus. score RESUME_VIRUS 5.5
La prima regola secondaria __RESUME
verifica se il corpo dell'e-mail contiene la parola C.V.
o resume
. La seconda sottoregola __MIME_BASE64
è già definito in /usr/share/spamassassin/20_body_tests.cf
file, come segue, quindi non ho bisogno di definirlo di nuovo nel file local.cf. Questa regola verifica se il messaggio di posta elettronica include un allegato base64.
rawbody __MIME_BASE64 eval:check_for_mime('mime_base64_count') describe __MIME_BASE64 Includes a base64 attachment
La mia meta regola RESUME_VIRUS
si attiverà quando entrambe le sottoregole sono vere, aggiungendo un punteggio di 5,5 al messaggio di posta elettronica. Nota che la regola secondaria spesso inizia con un doppio trattino basso, quindi non ha punteggio a sé stante.
Ora hai imparato come aggiungere un punteggio se viene trovata una stringa. Cosa succede se si desidera aggiungere un punteggio quando una stringa non esiste nelle intestazioni dell'e-mail? Bene, puoi usare il !
operatore. Ad esempio, ho visto spammer usare una singola parola nell'indirizzo Da:. Ho aggiunto le seguenti righe per assegnare un punteggio a questo tipo di email.
header __AT_IN_FROM From =~ /\@/ meta NO_AT_IN_FROM !__AT_IN_FROM score NO_AT_IN_FROM 4.0
La prima riga controlla se il @
il segno esiste nell'intestazione Da:. La seconda riga definisce una meta regola, che si attiva quando !__AT_IN_FROM
è vero. !__AT_IN_FROM
regola è l'opposto della prima regola di intestazione, il che significa che non c'è @
accedi all'indirizzo Da:, la meta regola si attiva.
Puoi anche aggiungere le seguenti righe per verificare se esiste un punto nell'indirizzo Da:.
header __DOT_IN_FROM From =~ /\./ meta NO_DOT_IN_FROM !__DOT_IN_FROM score NO_DOT_IN_FROM 4.0
Lista bianca
Puoi utilizzare la whitelist_from
parametro per aggiungere un particolare indirizzo email o dominio alla whitelist di Spamassassin. Ad esempio, aggiungi le seguenti due righe alla fine di local.cf
file.
whitelist_from [email protected] whitelist_from *@canonical.com
Un mittente autorizzato ha un -100
punteggio predefinito. Saranno comunque testati dalle regole di SpamAssassin, ma è molto difficile per loro raggiungere un punteggio di 5.0.
Lista nera
Per inserire nella blacklist un mittente, utilizza la blacklist_from
parametro, che ha lo stesso formato di whitelist_from
.
blacklist_from [email protected] blacklist_from *@example.org
Controllo della sintassi e riavvio
Dopo aver salvato il local.cf
file. Dovresti eseguire spamassassin
comando in modalità lint per verificare se sono presenti errori di sintassi.
sudo spamassassin --lint
Quindi riavvia SpamAssassin per rendere effettive le modifiche.
sudo systemctl restart spamassassin
Lista bianca incorporata di SpamAssassin
Vale la pena ricordare che SpamAssassin viene fornito con la propria whitelist. Ci sono diversi file sotto /usr/share/spamassassin/
directory che include 60_whitelist
nel nome del file. Questi file contengono la whitelist incorporata di SpamAssassin. Ad esempio, il 60_whitelist_spf.cf
contiene un elenco di indirizzi che inviano messaggi spesso contrassegnati (erroneamente) come spam.
Sposta lo spam nella cartella della posta indesiderata
Ti mostrerò come spostare lo spam nella cartella Posta indesiderata con il server IMAP di Dovecot e il plug-in sieve. Questo metodo richiede che le e-mail in entrata vengano consegnate al negozio di messaggi tramite l'LDA "deliver" di Dovecot (agente di consegna locale). Se riesci a trovare il seguente testo in /var/log/maillog
file, allora questo requisito è soddisfatto.
postfix/lmtp
o
delivered via dovecot service
Esegui il seguente comando install dovecot-pigeonhole pacchetto dal repository software CentOS/RHEL.
sudo dnf install dovecot-pigeonhole
Questo pacchetto installa due file di configurazione in /etc/dovecot/conf.d/
directory:90-sieve.conf
e 90-sieve-extprograms.conf
. Apri il 15-lda.conf
file.
sudo nano /etc/dovecot/conf.d/15-lda.conf
Aggiungi il plug-in setaccio all'agente di consegna locale (LDA).
protocol lda { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins sieve }
Salva e chiudi il file. Se riesci a trovare il 20-lmtp.conf
file in /etc/dovecot/conf.d/
directory, quindi dovresti anche abilitare il plug-in sieve in quel file come di seguito.
protocol lmtp { mail_plugins = quota sieve }
Quindi apri 90-sieve.conf
file.
sudo nano /etc/dovecot/conf.d/90-sieve.conf
Vai alla riga 79 e aggiungi la riga seguente, che dice a Sieve di eseguire sempre SpamToJunk.sieve script prima di qualsiasi script specifico dell'utente.
sieve_before = /var/mail/SpamToJunk.sieve
Salva e chiudi il file. Quindi crea lo script del setaccio.
sudo nano /var/mail/SpamToJunk.sieve
Aggiungi le seguenti righe, che indicano a Dovecot di spostare tutti i messaggi di posta elettronica con X-Spam-Flag: YES
intestazione nella cartella Posta indesiderata.
require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; stop; }
Salva e chiudi il file. Possiamo compilare questo script, quindi verrà eseguito più velocemente.
sudo sievec /var/mail/SpamToJunk.sieve
Ora c'è un file binario salvato come /var/mail/SpamToJunk.svbin . Modifica il file 10-mail.conf.
/etc/dovecot/conf.d/10-mail.conf
Aggiungi la seguente riga nel file, in modo che gli script sieve di un singolo utente possano essere archiviati nella sua home directory.
mail_home = /var/vmail/%d/%n
Infine, riavvia dovecot per rendere effettive le modifiche.
sudo systemctl restart dovecot
Imposta la dimensione massima del messaggio
Per impostazione predefinita, SpamAssassin non controlla i messaggi con allegati di dimensioni superiori a 500 KB, come indicato dalla riga seguente nel /var/log/mail.log
file.
spamc[18922]: skipped message, greater than max message size (512000 bytes)
La max-size
predefinita è impostato su 512000 (byte). Un valore alto potrebbe aumentare il carico del server, ma penso che la dimensione predefinita sia un po' piccola. Per aumentare la dimensione massima, modifica /etc/sysconfig/spamass-milter
file e trova la riga seguente.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt"
Aggiungi il -- --max-size=5120000
opzione alla fine.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt -- --max-size=5120000"
Il --
vuoto l'opzione dice a spamass-milter per passare tutte le opzioni rimanenti a spamc , che comprende il --max-size
opzione. Ho aumentato la dimensione a 5000 KB. Salva e chiudi il file. Quindi riavvia spamass-milter.
sudo systemctl restart spamass-milter
Come configurare le preferenze dei singoli utenti
Potresti voler impostare regole personalizzate per le email inviate a un indirizzo specifico sul server di posta. Mi piace molto questa funzione. Ho un indirizzo email di contatto per questo blog, che viene utilizzato solo per mantenere i contatti con i lettori. Non utilizzo l'indirizzo email di contatto altrove , così posso creare regole speciali di filtro antispam che si applicano solo a questo indirizzo email di contatto.
Innanzitutto, modifica il file di configurazione principale di SpamAssassin.
sudo nano /etc/mail/spamassassin/local.cf
Aggiungi la riga seguente per consentire le regole utente.
allow_user_rules 1
Salva e chiudi il file. Quindi, modifica il file dell'ambiente SpamAssassin.
sudo nano /etc/sysconfig/spamassassin
Trova la riga seguente.
SPAMDOPTIONS="-c -m5 -H --razor-home-dir='/var/lib/razor/' --razor-log-file='sys-syslog'"
Dobbiamo aggiungere diverse opzioni extra.
SPAMDOPTIONS="-c -m5 -H --razor-home-dir='/var/lib/razor/' --razor-log-file='sys-syslog' --nouser-config --virtual-config-dir=/var/vmail/%d/%l/spamassassin --username=vmail"
Dove:
--nouser-config
:disabilita il file di configurazione per utente per gli utenti Unix locali.--virtual-config-dir
:specifica la directory di configurazione per utente per gli utenti virtuali. Il%d
segnaposto rappresenta la parte del dominio dell'indirizzo email e%l
rappresenta la parte locale dell'indirizzo email.--username
:esegui spamd come utente vmail.
Salva e chiudi il file. Quindi riavvia SpamAssassin.
sudo systemctl restart spamassassin
Per impostazione predefinita, spamass-milter non trasmette l'indirizzo del destinatario a SpamAssassin. Dobbiamo fare in modo che invii l'indirizzo email completo a SpamAssassin. Modifica il file di configurazione di spam-milter.
sudo nano /etc/sysconfig/spamass-milter
Aggiungi la seguente opzione.
-e yourdomain.com -u sa-milt
In questo modo:
EXTRA_FLAGS="-e yourdomain.com -u sa-milt -m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt -- --max-size=5120000"
Il -e
l'opzione farà in modo che spamass-milter trasmetta l'indirizzo email completo a SpamAssassin. Sostituisci tuodominio.com con il tuo vero nome di dominio. Salva e chiudi il file. Quindi riavvia spamass-milter.
sudo systemctl restart spamass-milter
Ora invia un'e-mail da Gmail, Hotmail, ecc. al tuo indirizzo e-mail di dominio. Troverai che la directory spamassassin viene creata automaticamente in /var/vmail/yourdomain.com/username/
directory.
cd /var/vmail/yourdomain.com/username/spamassassin/
È possibile utilizzare un editor di testo della riga di comando per creare il file delle preferenze per utente qui. Questo file deve essere denominato user_prefs
.
sudo nano user_prefs
Puoi aggiungere regole personalizzate in questo file proprio come faresti in /etc/spamassassin/local.cf
file.
Ad esempio, ho scoperto che molti spammer terminano il corpo dell'e-mail con un link di annullamento dell'iscrizione per consentirti di rimuovere i contatti futuri. Non mi sono iscritto al loro spam e non credo che il link di annullamento dell'iscrizione rimuoverà il mio indirizzo email dal database dei contatti. Quindi uso SpamAssassin per segnare questo tipo di email. La regola seguente aggiunge un punteggio di 3,0 alle e-mail contenenti la parola "cancellami" o le sue variazioni nel corpo. (Non utilizzo l'indirizzo email di contatto di questo blog per iscrivermi a nulla online.)
body SUBSCRIPTION_SPAM /(unsubscribe|u n s u b s c r i b e|Un-subscribe)/i describe SUBSCRIPTION_SPAM I didn't subscribe to your spam. score SUBSCRIPTION_SPAM 3.0
A volte il corpo dell'email non contiene la parola "annulla iscrizione", ma c'è un List-Unsubscribe
header, il che significa che lo spammer ha aggiunto il mio indirizzo email di contatto alla sua mailing list senza il mio consenso. Posso assegnare un punteggio anche a questo tipo di email, con la seguente regola.
header LIST_UNSUBSCRIBE ALL =~ /List-Unsubscribe/i describe LIST_UNSUBSCRIBE I didn't join your mailing list. score LIST_UNSUBSCRIBE 2.0
Ho creato un account Mailjet con un indirizzo email diverso. Alcuni spammer presumono che io abbia utilizzato il mio indirizzo e-mail di contatto per creare un account Mailjet, quindi cercano di impersonare il servizio clienti Mailjet per indurmi a digitare la mia password in una pagina di accesso di Mailjet falsa. Posso assegnare un punteggio a questo tipo di email come di seguito.
header MAILJET_IMPOSTER From =~ /mailjet/i describe MAILJET_IMPOSTER I don't have a mailjet account for this email address. score MAILJET_IMPOSTER 2.5
Le righe precedenti controllano se il From:
header contiene la parola mailjet
. Se trovato, assegnagli un punteggio di 2,5.
Occasionalmente ricevo email da spammer cinesi il cui From:
il nome di dominio non ha lettere vocali (a, e, i, o, u). Lo spammer ha utilizzato il cdjcbzclyxgs.xyz
nome del dominio. È quasi impossibile per una persona/entità normale utilizzare nomi di dominio senza lettere vocali, considerando che molti domini di primo livello hanno già incluso lettere vocali (.com, .net, .org, .co, .io, .shop, .dev , ecc.), quindi do a questo tipo di email un punteggio molto alto come di seguito. Il punteggio predefinito è 0,5.
score FROM_DOMAIN_NOVOWEL 4.0
Alcune e-mail di spam utilizzano molte immagini nel corpo ma contengono pochissimo testo. Il punteggio predefinito per questo tipo di email è 1,9, ma preferisco impostare un punteggio alto per il mio indirizzo email di contatto.
score HTML_IMAGE_RATIO_02 4.0
Ho anche ricevuto un'e-mail di spam con il mio indirizzo e-mail nell'oggetto, quindi posso aggiungere un punteggio elevato.
header SUBJECT_SPAM Subject =~ /xiao\@linuxbabe.com/i describe SUBJECT_SPAM Subject contains my email address. score SUBJECT_SPAM 4.0
Alcuni spammer utilizzano BCC (Blind Carbon Copy) per nascondere altri destinatari. Non voglio ricevere tale email. Quindi ho fatto la seguente regola. Se il mio nome di dominio non è nell'intestazione A:, aggiungi 3.0 all'email.
header __DOMAIN_IN_TO To =~ /linuxbabe.com/ meta DOMAIN_NOT_IN_TO !__DOMAIN_IN_TO score DOMAIN_NOT_IN_TO 3.0
Dopo aver aggiunto le regole personalizzate, chiudi il file ed esegui il comando seguente per verificare la sintassi. Output silenzioso significa che non ci sono errori di sintassi.
sudo spamassassin --lint
Infine, riavvia SpamAssassin per rendere effettive le modifiche.
sudo systemctl restart spamassassin
Ora puoi testare le preferenze dell'utente inviando e-mail di prova da altri servizi di posta elettronica al tuo indirizzo e-mail di dominio.
Rifiuta o rimbalza
Se un server SMTP ricevente determina durante la conversazione SMTP che non accetterà il messaggio, rifiuta il messaggio. A volte il server SMTP accetta un messaggio e in seguito scopre che non può essere recapitato, forse il destinatario previsto non esiste o si è verificato un problema nella consegna finale. In questo caso, il server SMTP che ha accettato il messaggio lo rimanda al mittente originale inviando un rapporto di errore, che di solito include il motivo per cui non è stato possibile recapitare il messaggio originale.
Non dovresti rimbalzare lo spam, perché l'indirizzo email nel Return-path:
header o From:
header probabilmente non esiste o è l'indirizzo email di una persona innocente, quindi il messaggio di rimbalzo andrà probabilmente all'indirizzo email di una persona innocente, creando il problema del backscatter. Invece di far rimbalzare lo spam, dovresti rifiutare lo spam durante la finestra di dialogo SMTP, prima che l'email venga accettata. Questo articolo non ti ha mostrato il rimbalzo di un messaggio di spam. Dovresti ricordare questa regola nel caso in cui creerai regole di filtro antispam da solo. In caso di dubbio, prova le tue regole di filtro antispam per vedere se creerà messaggi di rimbalzo.
URIBL_BLOCKED
Per impostazione predefinita, SpamAssassin abilita la regola URIBL, che controlla se un messaggio di posta elettronica contiene collegamenti identificati come spam da URIBL. Questa è una misurazione anti-spam molto efficace. Tuttavia, potresti essere bloccato dall'interrogare URIBL. Controlla le intestazioni e-mail non elaborate di un messaggio e-mail in entrata, trova X-Spam-Status
intestazione.
X-Spam-Status: No, score=-92.2 required=5.0 tests=DATING_SPAM,DKIM_SIGNED, DKIM_VALID,HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,SPF_PASS, SUBSCRIPTION_SPAM,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_IN_WHITELIST autolearn=no autolearn_force=no version=3.4.2
Se riesci a trovare URIBL_BLOCKED in questa intestazione, significa che ti è stato impedito di eseguire query su URIBL. Il più delle volte è perché non stai utilizzando il tuo risolutore DNS locale. Puoi eseguire il seguente comando sul tuo server di posta per testare quale server DNS stai utilizzando per interrogare URIBL.
host -tTXT 2.0.0.127.multi.uribl.com
Esempio di output:
2.0.0.127.multi.uribl.com descriptive text "127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: xx.xx.xx.xx]"
Per correggere questo errore, devi eseguire il tuo risolutore DNS locale sul tuo server di posta.
- Esegui il tuo risolutore DNS BIND su CentOS/RHEL
Una volta che il tuo resolver DNS locale è attivo e funzionante, prova di nuovo URIBL.
host -tTXT 2.0.0.127.multi.uribl.com
Se vedi il seguente output, significa che ora puoi interrogare URIBL.
2.0.0.127.multi.uribl.com descriptive text "permanent testpoint"
Da qui in poi, i messaggi di posta elettronica in entrata non avranno il tag URIBL_BLOCKED in X-Spam-Status
intestazione.
Altre curiosità
SpamAssassin 4.0 include un plug-in HashBL, che può verificare se un indirizzo Bitcoin nel corpo dell'e-mail è stato utilizzato da truffatori. E c'è anche un nuovo plug-in chiamato "Ole Macro" che può verificare se un'e-mail contiene un allegato di Office con una macro. Questo plugin cercherà di rilevare se la macro allegata è dannosa o meno.