GNU/Linux >> Linux Esercitazione >  >> Cent OS

Configura SpamAssassin su CentOS/RHEL per bloccare la posta indesiderata

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.


Cent OS
  1. Come impostare o modificare il nome host in CentOS 7 / RHEL 7

  2. Come disabilitare i rapporti e-mail di LogWatch in CentOS/RHEL/Fedora?

  3. Come impostare children-max per il servizio udev in CentOS/RHEL 7

  4. Imposta password per modalità utente singolo su Linux (CentOS/RHEL)

  5. CentOS / RHEL 7:come impostare la destinazione predefinita (runlevel predefinito)

Configura il server Samba su CentOS 8/RHEL 8 per la condivisione di file

Configura SpamAssassin su CentOS/RHEL per bloccare la posta indesiderata

Configura OpenDMARC con Postfix su CentOS/RHEL per bloccare lo spoofing e-mail

7 suggerimenti efficaci per bloccare lo spam e-mail con Postfix su CentOS/RHEL

Come configurare una VPN basata su IPsec con Strongswan su CentOS/RHEL 8

Come configurare SSH su CentOS e RHEL