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.
- I loro indirizzi IP non hanno record PTR.
- Lo spammer non fornisce un nome host valido nella clausola HELO/EHLO.
- Hanno falsificato l'indirizzo MAIL FROM.
- 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 postfixNota 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 🙂