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

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

In questo tutorial, vorrei condividere con te i miei 7 suggerimenti per bloccare lo spam e-mail con il server SMTP Postfix su CentOS/RHEL. Negli ultimi quattro anni di gestione del mio server di posta elettronica, ho ricevuto molto spam, ovvero e-mail commerciali non richieste. Lo spam esiste perché è così economico inviare un grande volume di e-mail su Internet. Postfix ti consente di bloccare lo spam prima che entri nella tua casella di posta, così puoi risparmiare larghezza di banda e spazio su disco.

Nota :Se prevedi di eseguire il tuo server di posta, ti consiglio di utilizzare iRedmail, che semplifica davvero il processo di configurazione di un server di posta. Viene fornito anche con regole anti-spam. Se preferisci configurare un server di posta da zero, dai un'occhiata alla mia serie di tutorial sul server di posta.

Caratteristiche dello spam

Di seguito è riportato ciò che ho trovato sullo spam e-mail. Questi spam sono facili da bloccare.

  1. I loro indirizzi IP non hanno record PTR.
  2. Lo spammer non fornisce un nome host valido nella clausola HELO/EHLO.
  3. Hanno falsificato l'indirizzo MAIL FROM.
  4. In genere non inviano nuovamente l'e-mail dopo un recapito non riuscito.

I server di posta elettronica legittimi non dovrebbero mai avere queste caratteristiche. Quindi ecco i miei 7 suggerimenti, che bloccheranno il 90% dello spam.

Fatto:circa il 93%~95% delle e-mail nel mondo vengono rifiutate al gateway SMTP, non arrivano mai nella posta in arrivo o nella cartella spam.

Suggerimento n. 1:rifiuta l'e-mail se il client SMTP non ha record PTR

Il record PTR associa un indirizzo IP a un nome di dominio. È la controparte del record A. Su CentOS/RHEL, puoi interrogare il nome di dominio associato a un indirizzo IP eseguendo il seguente comando:

host <IP address>

Se host comando non può essere trovato, quindi è necessario installare bind-utils pacchetto.

sudo dnf install bind-utils

Ad esempio, il comando seguente restituisce il nome host del mio server di posta.

host 23.254.225.226

Uscita:

226.225.254.23.in-addr.arpa domain name pointer mail.linuxbabe.com.

A causa della prevalenza dello spam, molti server di posta (come Gmail, gmx.com, gmx.net, facebook.com) richiedono che i client SMTP dispongano di record PTR validi associati ai loro indirizzi IP. Ogni amministratore del server di posta dovrebbe impostare il record PTR per i propri server SMTP. Se il client SMTP ha un record PTR, puoi trovare una riga nel log di Postfix (/var/log/maillog) come di seguito.

connect from mail.linuxbabe.com[23.254.225.226]

Se il client SMTP non ha un record PTR, il nome host verrà identificato come unknown nel registro di Postfix.

connect from unknown[120.41.196.220]

Per filtrare le email senza record PTR, apri il file di configurazione principale di Postfix.

sudo nano /etc/postfix/main.cf

Aggiungi la seguente riga in smtpd_sender_restrictions . Questa direttiva rifiuta un'e-mail se l'indirizzo IP del client non ha record PTR.

reject_unknown_reverse_client_hostname

Esempio:

smtpd_sender_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   reject_unknown_reverse_client_hostname

Salva e chiudi il file. Quindi riavvia Postfix per rendere effettive le modifiche.

sudo systemctl restart postfix

Suggerimento n. 2:abilita le restrizioni sui nomi host HELO/EHLO in Postfix

Alcuni spammer non forniscono un nome host HELO/EHLO valido nella finestra di dialogo SMTP. Possono essere nomi di dominio non completamente qualificati o non esiste un nome di dominio o solo per la rete interna. Ad esempio, uno spammer che utilizza un'istanza Amazon EC2 per inviare spam viene registrato sul mio server come segue:

Aug 16 04:21:13 email postfix/smtpd[7070]: connect from ec2-54-237-201-103.compute-1.amazonaws.com[54.237.201.103]
Aug 16 04:21:13 email policyd-spf[7074]: prepend Received-SPF: None (mailfrom) identity=mailfrom; client-ip=54.237.201.103; helo=ip-172-30-0-149.ec2.internal; [email protected]; receiver=<UNKNOWN>

Come puoi vedere, il nome host HELO è ip-172-30-0-149.ec2.internal , che è valido solo nella rete interna di AWS. Non ha un record A valido né un record MX.

Per abilitare la restrizione del nome host HELO/EHLO, modifica il file di configurazione principale di Postfix.

sudo nano /etc/postfix/main.cf

Innanzitutto, aggiungi la riga seguente per richiedere al client di fornire un nome host HELO/EHLO.

smtpd_helo_required = yes

Quindi aggiungi le seguenti 3 righe per abilitare smtpd_helo_restrictions .

smtpd_helo_restrictions = 
    permit_mynetworks
    permit_sasl_authenticated

Utilizzare la riga seguente per rifiutare i client che forniscono un nome host HELO/EHLO non corretto.

reject_invalid_helo_hostname

Utilizzare la riga seguente per rifiutare un nome host HELO/EHLO non completo.

reject_non_fqdn_helo_hostname

Per rifiutare l'e-mail quando il nome host HELO/EHLO non ha né un record DNS A né un record MX, usa

reject_unknown_helo_hostname

In questo modo:

smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_invalid_helo_hostname
    reject_non_fqdn_helo_hostname
    reject_unknown_helo_hostname

Salva e chiudi il file. Quindi ricarica Postfix.

sudo systemctl reload postfix

Tieni presente che, sebbene la maggior parte dei server di posta legittimi disponga di un record A valido per il nome host HELO/EHLO, a volte un server di posta legittimo non soddisfa questo requisito. Devi inserirli nella whitelist con check_helo_access .

smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    check_helo_access hash:/etc/postfix/helo_access
    reject_invalid_helo_hostname
    reject_non_fqdn_helo_hostname
    reject_unknown_helo_hostname

Quindi devi creare il /etc/postfix/helo_access file.

sudo nano /etc/postfix/helo_access

Inserisci nella whitelist il nome host HELO/EHLO del server di posta legittimo come di seguito.

optimus-webapi-prod-2.localdomain      OK
va-massmail-02.rakutenmarketing.com    OK

È probabile che tu non sappia quali nomi host inserire nella whitelist, quindi copia semplicemente le due righe precedenti, che sono le uniche nel mio helo_access file. Puoi sempre aggiungere altri nomi host in un secondo momento. Salva e chiudi il file. Quindi esegui il comando seguente per creare il file /etc/postfix/helo_access.db.

sudo postmap /etc/postfix/helo_access

E ricarica Postfix.

sudo systemctl reload postfix

Suggerimento n. 3:rifiuta l'e-mail se il nome host del client SMTP non ha un record A valido

Un server di posta elettronica legittimo dovrebbe anche avere un record A valido per il suo nome host. L'indirizzo IP restituito da un record deve corrispondere all'indirizzo IP del server di posta elettronica. Per filtrare le email provenienti da host che non hanno un record A valido, modifica il file di configurazione principale di Postfix.

sudo nano /etc/postfix/main.cf

Aggiungi le seguenti due righe in smtpd_sender_restrictions .

reject_unknown_reverse_client_hostname
reject_unknown_client_hostname

Esempio:

smtpd_sender_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   reject_unknown_reverse_client_hostname
   reject_unknown_client_hostname

Salva e chiudi il file. Quindi riavvia Postfix per rendere effettive le modifiche.

sudo systemctl restart postfix
Nota che reject_unknown_client_hostname non richiede HELO dal client SMTP. Recupererà il nome host dal record PTR, quindi controllerà il record A.

Suggerimento n. 4:rifiuta l'e-mail se MAIL FROM Domain non ha né un record MX né un record

Il MAIL FROM l'indirizzo è anche noto come envelope from indirizzo. Alcuni spammer utilizzano un dominio inesistente nel MAIL FROM indirizzo. Se un nome di dominio non ha record MX, Postfix troverà il record A del dominio principale e invierà e-mail a quell'host. Se il dominio del mittente non ha né record MX né record A, Postfix non può inviare e-mail a quel dominio. Allora perché non rifiutare le email a cui non puoi rispondere?

Per filtrare questo tipo di spam, modifica il file di configurazione principale di Postfix.

sudo nano /etc/postfix/main.cf

Aggiungi la seguente riga in smtpd_sender_restrictions . Rifiuterà l'e-mail se il nome di dominio dell'indirizzo fornito con il comando MAIL FROM non ha né record MX né record A.

reject_unknown_sender_domain

Esempio:

smtpd_sender_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   reject_unknown_sender_domain
   reject_unknown_reverse_client_hostname
   reject_unknown_client_hostname

Salva e chiudi il file. Quindi riavvia Postfix per rendere effettive le modifiche.

sudo systemctl restart postfix

Nota che ho posizionato questa restrizione sopra altri reject restrizioni. Dalla mia esperienza, se è al di sotto di altri reject restrizioni, non funzionerà. (Forse questo accade solo sul mio server di posta elettronica.)

Suggerimento n. 5:abilita il greylisting in Postfix

Come richiesto dal protocollo SMTP, qualsiasi client SMTP legittimo deve essere in grado di inviare nuovamente l'e-mail se la consegna non riesce. (Per impostazione predefinita, Postfix è configurato per inviare nuovamente le email non riuscite per 4~5 giorni prima di informare il mittente che il messaggio non può essere recapitato.) Molti spammer di solito inviano solo una volta e non riprovano.

Postgrey è un server delle politiche di greylisting per Postfix. Gli utenti CentOS/RHEL possono installarlo dal repository EPEL.

sudo dnf install epel-release
sudo dnf install postgrey

Una volta installato, avvialo con systemctl.

sudo systemctl start postgrey

Abilita l'avvio automatico all'avvio.

sudo systemctl enable postgrey

Su CentOS/RHEL, Postgrey è in ascolto su un socket Unix (/var/spool/postfix/postgrey/socket ).

Successivamente, dobbiamo modificare il file di configurazione principale di Postfix in modo che utilizzi il server delle politiche di greylisting.

sudo nano /etc/postfix/main.cf

Aggiungi la seguente riga in smtpd_recipient_restrictions .

check_policy_service unix:postgrey/socket

Nel caso non lo sapessi, la direttiva check_policy_service unix:private/policyd-spf nella schermata sopra, Postfix controllerà il record SPF sul dominio del mittente. Questa direttiva richiede l'installazione e la configurazione del pacchetto pypolicyd-spf.

Salva e chiudi il file. Quindi riavvia Postfix.

sudo systemctl restart postfix

D'ora in poi, Postgrey rifiuterà un'e-mail se il tripletto mittente (indirizzo IP del mittente, indirizzo e-mail del mittente, indirizzo e-mail del destinatario) è nuovo. Il seguente messaggio di log in /var/log/maillog mostra una nuova tripletta di mittenti. L'azione "greylist ” significa che questo messaggio email è stato rifiutato.

postgrey[1016]: action=greylist, reason=new, client_name=unknown, client_address=117.90.24.148/32, [email protected], [email protected]

In base alla mia esperienza, agli spammer e-mail cinesi piace utilizzare un indirizzo del mittente falso, dall'aspetto strano e generato casualmente per ogni e-mail, quindi l'aggiunta di questi indirizzi e-mail falsi alla lista nera non li fermerà. D'altra parte, non provano mai a inviare nuovamente un'e-mail rifiutata con lo stesso indirizzo del mittente, il che significa che la greylisting può essere molto efficace nel fermare questo tipo di spam.

Come ridurre al minimo l'esperienza utente negativa

Il greylisting può comportare una brutta esperienza per l'utente finale, poiché l'utente deve attendere altri diversi minuti prima che l'e-mail arrivi. Per ridurre al minimo questa brutta esperienza, puoi creare una whitelist e utilizzare un secondo record MX che punta allo stesso host.

Lista bianca

Postgrey viene fornito con due file di whitelist (/etc/postfix/postgrey_whitelist_clients e /etc/postfix/postgrey_whitelist_recipients ). Il primo contiene un elenco di nomi host e il secondo contiene un elenco di indirizzi di destinatari.

Per impostazione predefinita, i server di posta di Google sono autorizzati. Indipendentemente dal fatto che il mittente utilizzi un indirizzo @gmail.com o un altro indirizzo, purché il mittente utilizzi il server di posta di Google, Postgrey non rifiuterà l'e-mail. La riga seguente nel mio /var/log/maillog il file lo mostra.

postgrey[1032]: action=pass, reason=client whitelist, client_name=mail-yb0-f190.google.com

Nota :Puoi anche vedere i log postgrey con questo comando sudo journalctl -u postgrey .

Puoi aggiungere altri nomi host in /etc/postfix/postgrey_whitelist_clients file, come

facebook.com
bounce.twitter.com
blogger.com
email.medium.com

Puoi ottenere questi nomi host con uno strumento chiamato pflogsumm , di cui parlerò più avanti in questo articolo. Salva e chiudi il file, quindi riavvia Postgrey.

sudo systemctl restart postgrey

Crea un altro nome host MX con lo stesso indirizzo IP

Puoi specificare più di un record MX per il tuo nome di dominio come di seguito.

Record Type    Name      Mail Server            Priority

MX             @         mail.yourdomain.com     0
MX             @         mail2.yourdomain.com    5

Il mittente proverà il primo server di posta (con priorità 0). Se mail.tuodominio.com rifiuta l'e-mail inserendo nella greylist, il mittente proverebbe immediatamente il secondo server di posta (con priorità 5).

Se i due nomi host del server di posta hanno lo stesso indirizzo IP, quando il mittente prova il secondo nome host del server di posta, l'e-mail verrà accettata immediatamente (se tutti gli altri controlli passano) e gli utenti finali non noteranno il ritardo dell'e-mail causato dal greylisting.

Nota che ciò richiede di impostare un tempo di ritardo molto piccolo come 1 secondo in /etc/sysconfig/postgrey file come di seguito. Il tempo di ritardo indica al client SMTP quanti secondi attendere prima di inviarlo nuovamente. Se il tempo di ritardo non è sufficientemente piccolo, la seconda consegna dell'email verrà comunque rifiutata.

POSTGREY_DELAY="--delay=1"

Salva e chiudi il file. Quindi riavvia Postgrey.

sudo systemctl restart postgrey

Fai attenzione che non tutti i server di posta proverebbero immediatamente il secondo host MX.

Suggerimento n. 6:utilizzo di blacklist pubbliche in tempo reale

Ci sono e-mail di spam inviate da server che hanno un nome host valido, un record PTR valido e possono passare attraverso il greylisting. In questo caso, puoi utilizzare la blacklist per rifiutare lo spam. Esistono molte blacklist pubbliche in tempo reale (RBL), note anche come DNSBL (liste basate su DNS). In tempo reale, significa che l'elenco è in continua evoluzione. Un indirizzo IP o un nome di dominio potrebbero essere nell'elenco oggi e fuori dall'elenco domani, quindi potresti ottenere risultati diversi a seconda di quando esegui query nell'elenco.

Puoi utilizzare più blacklist per bloccare lo spam. Vai su https://www.debouncer.com e mxtoolbox.com , inserisci il dominio e l'indirizzo IP dello spammer per vedere quali liste nere lo stanno bloccando, quindi puoi utilizzare quelle liste nere. Ad esempio, ho scoperto che gli spammer sono inseriti nella blacklist da una delle seguenti blacklist:

  • dbl.spamhaus.org
  • zen.spamhaus.org
  • multi.uribl.com
  • ivmURI
  • InvaluementURI

Quindi posso aggiungere le seguenti configurazioni in /etc/postfix/main.cf file. Alcuni servizi pubblici di blacklist richiedono un canone mensile. Per ora sto utilizzando il servizio gratuito di spamhaus.org.

smtpd_recipient_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   check_policy_service unix:private/policyd-spf
   check_policy_service unix:postgrey/socket
   reject_rhsbl_helo dbl.spamhaus.org
   reject_rhsbl_reverse_client dbl.spamhaus.org
   reject_rhsbl_sender dbl.spamhaus.org
   reject_rbl_client zen.spamhaus.org

Dove:

  • rhs sta per lato destro, ovvero il nome di dominio.
  • reject_rhsbl_helo fa sì che Postfix rifiuti l'e-mail quando il nome host HELO o EHLO del client è nella lista nera.
  • reject_rhsbl_reverse_client :rifiuta l'e-mail quando il nome host del client inverso non verificato è nella lista nera. Postfix recupererà il nome host del client dal record PTR. Se il nome host è nella lista nera, rifiuta l'email.
  • reject_rhsbl_sender fa sì che Postfix rifiuti le email quando il dominio MAIL FROM è nella lista nera.
  • reject_rbl_client :Questa è una lista nera basata su IP. Quando l'indirizzo IP del client è nella lista nera, rifiuta l'e-mail.

Alcuni spammer utilizzano il server di posta di Google, quindi reject_rhsbl_helo è inefficace, ma la maggior parte di loro usa i propri nomi di dominio nell'intestazione MAIL FROM, quindi reject_rhsbl_sender sarà efficace.

Crea una whitelist

A volte ci sono server di posta elettronica legittimi inseriti nella lista nera. Puoi creare una whitelist in modo che non vengano bloccati. Crea il seguente file.

sudo nano /etc/postfix/rbl_override

In questo file, inserisci nella whitelist i nomi di dominio come di seguito.

dripemail2.com  OK           //This domain belongs to drip.com

mlsend.com      OK           //This domain belongs to mailerlite email marketing service

Salva e chiudi il file. Quindi esegui il comando seguente per creare rbl_override.db file.

sudo postmap /etc/postfix/rbl_override

Modifica il file di configurazione principale di Postfix.

sudo nano /etc/postfix/main.cf

In smtpd_recipient_restrictions , aggiungi la riga seguente.

check_client_access hash:/etc/postfix/rbl_override

Come di seguito. Dovrebbe essere posizionato sopra altri controlli RBL.

smtpd_recipient_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   check_policy_service unix:private/policyd-spf
   check_policy_service unix:postgrey/socket
   check_client_access hash:/etc/postfix/rbl_override
   reject_rhsbl_helo dbl.spamhaus.org
   reject_rhsbl_reverse_client dbl.spamhaus.org
   reject_rhsbl_sender dbl.spamhaus.org
   reject_rbl_client zen.spamhaus.org

Ricarica Postfix per rendere effettive le modifiche.

sudo systemctl reload postfix

Utilizzo della whitelist pubblica per ridurre i falsi positivi

A volte è necessario mantenere una whitelist privata, ma puoi anche utilizzare whitelist pubbliche, la più famosa delle quali è dnswl.org. Attualmente, esiste solo una whitelist per l'indirizzo IP. La whitelist dei nomi di dominio è in versione beta. Per usarlo, inserisci la seguente riga in smtpd_recipient_restrictions .

permit_dnswl_client list.dnswl.org=127.0.[0..255].[1..3]

Come di seguito. Dovrebbe essere posizionato sopra il reject_rbl_client controlla.

smtpd_recipient_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   check_policy_service unix:private/policyd-spf
   check_policy_service unix:postgrey/socket
   check_client_access hash:/etc/postfix/rbl_override
   reject_rhsbl_helo dbl.spamhaus.org
   reject_rhsbl_reverse_client dbl.spamhaus.org
   reject_rhsbl_sender dbl.spamhaus.org
   permit_dnswl_client list.dnswl.org=127.0.[0..255].[1..3]
   reject_rbl_client zen.spamhaus.org

Un'altra whitelist molto nota è swl.spamhaus.org , così puoi anche aggiungerlo alla tua configurazione.

permit_dnswl_client swl.spamhaus.org

È impossibile che un indirizzo IP sia elencato contemporaneamente nella whitelist e nella blacklist di Spamhaus, quindi se utilizzi solo la blacklist di Spamhaus in Postfix, non è necessario confrontarlo con la whitelist di Spamhaus.

I miei filtri antispam Postfix

Ecco uno screenshot dei miei filtri antispam Postfix.

Rapporto registro Postfix

Pflogsumm è un ottimo strumento per creare un riepilogo dei log di Postfix. Su CentOS/RHEL, pflogsumm è fornito da postfix-perl-scripts pacchetto.

sudo dnf install postfix-perl-scripts

Utilizza il comando seguente per generare un rapporto per oggi.

sudo pflogsumm -d today /var/log/maillog

Genera un rapporto per ieri.

sudo pflogsumm -d yesterday /var/log/maillog

Se desideri generare un rapporto per questa settimana.

sudo pflogsumm /var/log/maillog

Per emettere rapporti sui "problemi" (rimbalzi, rinvii, avvisi, rifiuti) prima delle statistiche "normali", usa --problems-first bandiera.

sudo pflogsumm -d today /var/log/maillog --problems-first

Per aggiungere l'e-mail da indirizzo a ciascuna scheda nel rapporto di rifiuto, utilizzare --rej-add-from bandiera.

sudo pflogsumm -d today /var/log/maillog --rej-add-from

Per mostrare il motivo completo nei riepiloghi di rifiuto, usa --verbose-msg-detail bandiera.

sudo pflogsumm -d today /var/log/maillog --rej-add-from --verbose-msg-detail

Puoi aggiungere un cron job per fare in modo che pflogsumm invii un rapporto al tuo indirizzo email ogni giorno.

sudo crontab -e

Aggiungi la riga seguente, che genererà un rapporto ogni giorno alle 4:00.

0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/maillog --problems-first --rej-add-from --verbose-msg-detail -q

Per ricevere il rapporto via e-mail, aggiungi la seguente riga sopra tutti i lavori cron.

MAILTO="your-email-address"

Dovresti prestare attenzione al message reject detail sezione, dove puoi vedere per quale motivo quelle e-mail vengono rifiutate e se ci sono falsi positivi. I rifiuti di greylisting possono essere ignorati in tutta sicurezza.

Se la variabile MAILTO è già stata impostata ma desideri che il riepilogo del registro di Postfix venga inviato a un indirizzo e-mail diverso, puoi inserire la seguente riga nel tuo lavoro Cron.

0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/maillog --problems-first --rej-add-from --verbose-msg-detail -q | mutt -s "Postfix log summary"  your-email-address

L'output di pflogsumm il comando viene reindirizzato a mutt , un agente utente di posta della riga di comando, che utilizzerà l'output come corpo dell'e-mail e lo invierà all'indirizzo e-mail specificato alla fine. Ovviamente, devi installare mutt sul tuo server CentOS/RHEL.

sudo dnf install mutt

Suggerimento n. 7:configura OpenDMARC per rifiutare le e-mail che non superano il controllo DMARC

DMARC (Domain-based Message Authentication, Reporting, and Conformance) è uno standard Internet che consente ai proprietari di domini di impedire che i loro nomi di dominio vengano utilizzati dagli spoofer di posta elettronica. Si prega di leggere una delle seguenti guide per configurare OpenDMARC.

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

Esecuzione del resolver DNS locale per velocizzare le ricerche DNS

Come puoi vedere, Postfix dovrà cercare i record DNS per analizzare ogni finestra di dialogo SMTP. Per velocizzare le ricerche DNS, puoi eseguire un resolver DNS locale. E la maggior parte delle blacklist DNS ha un limite di query. L'esecuzione del tuo resolver DNS locale per memorizzare nella cache i record DNS può aiutarti a rimanere al di sotto del limite di query.

Possiamo installare il server DNS bind9.

sudo dnf install bind

Avvia BIND 9 con:

sudo systemctl start named

E abilita l'avvio automatico all'avvio:

sudo systemctl enable named

Puoi verificarne lo stato con:

systemctl status named

Esempio di output:

● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disable>
   Active: active (running) since Sun 2020-05-17 11:07:34 EDT; 9s ago
  Process: 7203 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TE>
  Process: 7218 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited,>
  Process: 7215 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; the>
 Main PID: 7220 (named)
    Tasks: 4 (limit: 5045)
   Memory: 55.5M
   CGroup: /system.slice/named.service
           └─7220 /usr/sbin/named -u named -c /etc/named.conf -4

Suggerimento:se il comando precedente non si chiude immediatamente, premi Q.

Impostazione del risolutore DNS predefinito su CentOS/RHEL Mail Server

Dobbiamo impostare 127.0.0.1 come risolutore DNS predefinito. Puoi controllare l'attuale risolutore DNS su CentOS/RHEL con il seguente comando.

cat /etc/resolv.conf

Esempio di output:

# Generated by NetworkManager
nameserver 192.168.0.1
nameserver 8.8.8.8

Per impostare BIND come risolutore predefinito, devi prima trovare il nome della tua interfaccia di rete principale con il seguente comando.

ip addr

Il mio è ens3 . Quindi, esegui il comando seguente per modificare il file di configurazione dell'interfaccia di rete. Sostituisci ens3 con il tuo nome di interfaccia.

sudo nano /etc/sysconfig/network-scripts/ifcfg-ens3

Trova il DNS1 parametro e cambiarne il valore in 127.0.0.1 . Nota che se i valori per altri parametri in questo file sono racchiusi tra virgolette, devi anche racchiudere 127.0.0.1 tra virgolette.

DNS1="127.0.0.1"

Se non riesci a trovare il DNS1 parametro, quindi aggiungi la riga sopra in fondo a questo file. Si consiglia di specificare un resolver DNS secondario aggiungendo la riga seguente in questo file, per ridurre la probabilità di errori DNS.

DNS2="8.8.8.8"

Salva e chiudi il file. Quindi riavvia NetworkManager per rendere effettive le modifiche.

sudo systemctl restart NetworkManager

Ora puoi controllare il contenuto di /etc/resolv.conf ancora. Come puoi vedere, 127.0.0.1 (BIND) è ora il risolutore DNS predefinito su CentOS/RHEL.

Come disabilitare IPv6 in BIND

Se il tuo server di posta non ha un indirizzo IPv6 pubblico, è una buona idea disattivare IPv6 in BIND, altrimenti ci saranno molti errori su IPv6 nel registro BIND come di seguito.

network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53
network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53
network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53
network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53

Per disabilitare IPv6 in BIND su CentOS/RHEL, apri semplicemente /etc/sysconfig/named file

sudo nano /etc/sysconfig/named

E aggiungi la riga seguente alla fine del file.

OPTIONS="-4"

Salva e chiudi il file. Quindi riavvia named e il gioco è fatto.

sudo systemctl restart named

Ora esegui il seguente comando. Puoi vedere che BIND non è più in ascolto sull'indirizzo IPv6.

sudo netstat -lnptu | grep named

Errore di ricerca DNS inversa Postfix

Se il tuo server SMTP Postfix viene eseguito in ambiente chroot, potrebbe non essere in grado di eseguire la ricerca DNS inversa. In questo caso, un indirizzo IP con record PTR verrà comunque identificato come unknown .

postfix/smtpd[14734]: connect from unknown[23.254.225.226]

Per risolvere questo problema, dobbiamo copiare le librerie necessarie per la ricerca DNS inversa all'interno dell'ambiente chroot.

sudo mkdir /var/spool/postfix/lib64

sudo cp -vl /usr/lib64/libnss_* /var/spool/postfix/lib64

Quindi riavvia Postfix.

sudo systemctl restart postfix

Passaggio successivo

Spero che queste 7 misure anti-spam di Postfix ti abbiano aiutato a bloccare lo spam e-mail. Potresti anche voler distribuire un filtro dei contenuti come SpamAssassin per rilevare meglio lo spam.

  • Configura SpamAssassin su CentOS/RHEL per bloccare la posta indesiderata

Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere ulteriori suggerimenti e trucchi. Abbi cura di 🙂


Cent OS
  1. Blocco delle botnet di spam internazionali con un plug-in Postfix

  2. Come installare phpMyAdmin con Nginx su CentOS 7 / RHEL 7

  3. Come rigenerare initramfs e vmlinuz per il kernel di salvataggio con il kernel corrente in CentOS/RHEL 7

  4. Impossibile avviare il sistema operativo Linux con Auditd (CentOS/RHEL)

  5. CentOS / RHEL:esclusione con Yum per gli aggiornamenti del kernel

Come installare phpMyAdmin con Apache su CentOS 8 / RHEL 8

Come proteggere il server di posta elettronica dall'hacking con VPN (CentOS/RHEL)

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

Installa Ruby su CentOS/RHEL 8 con 3 metodi diversi