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

Installa e configura OpenDKIM su CentOS 8/RHEL 8 Mail Server

In precedenza ti ho mostrato come configurare SPF e DKIM sul server di posta CentOS/RHEL. Due software comuni che possono eseguire la firma e la verifica DKIM su Linux sono OpenDKIM e Amavis. In quel tutorial ho usato Amavis, perché al momento OpenDKIM non è incluso in nessun repository CentOS 8/RHEL 8. A partire da ora, OpenDKIM è incluso nel repository EPEL. Alcune persone preferiscono usare OpenDKIM, quindi ti mostrerò come in questo tutorial.

Cos'è DKIM?

DKIM (DomainKeys Identified Mail) è un tipo di record TXT in DNS che può aiutare a prevenire lo spoofing e-mail e inviare e-mail legittime nella posta in arrivo del destinatario anziché nella cartella spam. DKIM utilizza una chiave privata per aggiungere una firma alle email inviate dal tuo dominio . I server SMTP riceventi verificano la firma utilizzando la chiave pubblica corrispondente, pubblicata nei record DNS del tuo dominio.

Disabilitazione di DKIM in Amavis

Se hai seguito il mio precedente tutorial su Amavis, ma ora vuoi usare OpenDKIM, devi disabilitare DKIM in Amavis. Modifica il file di configurazione principale.

sudo nano /etc/amavisd/amavisd.conf

Trova le seguenti righe.

$enable_dkim_verification = 1;  # enable DKIM signatures verification
$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

Aggiungi un # carattere all'inizio di ogni riga per commentarli.

#$enable_dkim_verification = 1;  # enable DKIM signatures verification
#$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

Salva e chiudi il file. Quindi riavvia Amavis.

sudo systemctl restart amavisd

Passaggio 1:installa e configura OpenDKIM su CentOS 8/RHEL8

Per prima cosa abilita il repository EPEL (Extra Packages for Enterprise Linux) e installa OpenDKIM.

sudo dnf install epel-release

sudo dnf install opendkim

Modifica il file di configurazione principale di OpenDKIM.

sudo nano /etc/opendkim.conf

Trova la riga seguente.

Mode     v

Per impostazione predefinita, OpenDKIM viene eseguito in modalità di verifica (v), che verificherà la firma DKIM dei messaggi di posta elettronica in arrivo. Dobbiamo firmare le email in uscita, quindi cambia questa riga come segue per abilitare la modalità di firma.

Mode           sv

Quindi trova le seguenti righe.

## Specifies whether or not the filter should generate report mail back
## to senders when verification fails and an address for such a purpose
## is provided. See opendkim.conf(5) for details.
SendReports yes

## Specifies the sending address to be used on From: headers of outgoing
## failure reports. By default, the e-mail address of the user executing
## the filter is used ([email protected]).
# ReportAddress "Example.com Postmaster" <[email protected]>

Quando una verifica della firma fallisce e la firma include una richiesta di segnalazione ("r=y") e il dominio di firma pubblicizza un indirizzo di segnalazione (ad esempio ra=utente) in un record di segnalazione nel DNS, OpenDKIM invierà un rapporto strutturato a quell'indirizzo contenente i dettagli necessari per riprodurre il problema. Potresti voler utilizzare un particolare indirizzo e-mail Da per inviare il rapporto. Decommenta il ReportAddress parametro e modificare l'indirizzo e-mail. Tieni presente che ciò non creerà il problema della retrodiffusione, perché le e-mail di segnalazione verranno inviate a un indirizzo e-mail specificato nel record DNS del dominio del mittente.

Trova la riga seguente e commentala, perché useremo chiavi separate per ogni nome di dominio.

KeyFile   /etc/opendkim/keys/default.private

Quindi, trova le seguenti 4 righe e decommentale.

# KeyTable            /etc/opendkim/KeyTable

# SigningTable        refile:/etc/opendkim/SigningTable

# ExternalIgnoreList  refile:/etc/opendkim/TrustedHosts

# InternalHosts       refile:/etc/opendkim/TrustedHosts

Salva e chiudi il file.

Fase 2:crea la tabella di firma, la tabella delle chiavi e il file degli host attendibili

Modifica la tabella di firma file.

sudo nano /etc/opendkim/SigningTable

Aggiungi la riga seguente alla fine di questo file. Questo dice a OpenDKIM che se un mittente sul tuo server sta usando un @your-domain.com indirizzo, quindi deve essere firmato con la chiave privata identificata da 20200308._domainkey.your-domain.com .

*@your-domain.com    20200308._domainkey.your-domain.com

20200308 è il selettore DKIM. Un nome di dominio potrebbe avere più chiavi DKIM. Il selettore DKIM consente di scegliere una particolare chiave DKIM. Puoi usare qualsiasi nome per il selettore DKIM, ma ho trovato conveniente utilizzare la data corrente (8 marzo 2020) come selettore DKIM. Salva e chiudi il file. Quindi modifica la tabella delle chiavi file.

sudo nano /etc/opendkim/KeyTable

Aggiungi la riga seguente, che specifica la posizione della chiave privata DKIM.

20200308._domainkey.your-domain.com     your-domain.com:20200308:/etc/opendkim/keys/your-domain.com/20200308.private

Salva e chiudi il file. Quindi, modifica il file degli host attendibili.

sudo nano /etc/opendkim/TrustedHosts

127.0.0.0.1 e ::1 sono inclusi in questo file per impostazione predefinita. Ora aggiungi la seguente riga. Questo dice a OpenDKIM che se un'e-mail proviene dal tuo nome di dominio, OpenDKIM non dovrebbe eseguire la verifica DKIM sull'e-mail.

*.your-domain.com

Salva e chiudi il file.

Fase 3:genera una coppia di chiavi privata/pubblica

Poiché DKIM viene utilizzato per firmare i messaggi in uscita e verificare i messaggi in arrivo, è necessario generare una chiave privata per la firma e una chiave pubblica per il verificatore remoto. La chiave pubblica verrà pubblicata in DNS.

Crea una cartella separata per il dominio.

sudo mkdir /etc/opendkim/keys/your-domain.com

Genera chiavi usando opendkim-genkey strumento.

sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s 20200308 -v

Il comando precedente creerà chiavi a 2048 bit. -d (domain) specifica il dominio. -D (directory) specifica la directory in cui verranno archiviate le chiavi. Uso 20200308 come selettore DKIM. Una volta eseguito il comando, la chiave privata verrà scritta in 20200308.private file e la chiave pubblica verranno scritti in 20200308.txt file.

Per impostazione predefinita, solo root può leggere e scrivere nei file chiave. Crea opendkim come proprietario della chiave privata.

sudo chown opendkim:opendkim /etc/opendkim/keys/ -R

Fase 4:pubblica la tua chiave pubblica nei record DNS

Visualizza la chiave pubblica

sudo cat /etc/opendkim/keys/your-domain.com/20200308.txt

La stringa dopo il p parametro è la chiave pubblica.

Nel tuo gestore DNS, crea un record TXT, inserisci 20200308._domainkey nel campo del nome. (Devi sostituire 20200308 con il tuo selettore DKIM.) Quindi torna alla finestra del terminale, copia tutto tra parentesi e incollalo nel campo del valore del record DNS. È necessario eliminare tutte le virgolette doppie e le interruzioni di riga nel campo del valore. Se non li elimini, il test chiave nel passaggio successivo probabilmente fallirà.

Fase 5:prova la chiave DKIM

Inserisci il seguente comando sul tuo server CentOS 8/RHEL 8 per testare la tua chiave.

sudo opendkim-testkey -d your-domain.com -s 20200308 -vvv

Se tutto è a posto, vedrai il key OK messaggio.

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '20200308._domainkey.linuxbabe.com'
opendkim-testkey: key OK

Tieni presente che il tuo record DKIM potrebbe richiedere del tempo per propagarsi a Internet. A seconda del registrar di domini che utilizzi, il tuo record DNS potrebbe essere propagato istantaneamente o potrebbero essere necessarie fino a 24 ore per propagarsi. Puoi andare su https://www.dmarcanalyzer.com/dkim/dkim-check/, inserire 20200308 come selettore e inserisci il tuo nome di dominio per verificare la propagazione del record DKIM.

Se vedi "Chiave non sicura", niente panico. Questo perché DNSSEC non è abilitato sul tuo nome di dominio. DNSSEC è uno standard di sicurezza per query DNS sicure. La maggior parte dei nomi di dominio non ha abilitato DNSSEC. Puoi continuare a seguire questa guida.

Ora possiamo avviare il servizio opendkim.

sudo systemctl start opendkim

E abilita l'avvio automatico all'avvio.

sudo systemctl enable opendkim

OpenDKIM è in ascolto su 127.0.0.1:8891 .

Passaggio 6:collega Postfix a OpenDKIM

Modifica il file di configurazione principale di Postfix.

sudo nano /etc/postfix/main.cf

Aggiungi le seguenti righe alla fine di questo file, così Postfix sarà in grado di chiamare OpenDKIM tramite il protocollo milter. Nota che dovresti usare 127.0.0.1 come indirizzo. Non utilizzare localhost .

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters

Salva e chiudi il file. Quindi aggiungi postfix utente a opendkim gruppo.

sudo gpasswd -a postfix opendkim

Riavvia postfix servizio.

sudo systemctl restart postfix

Fase 7:verifica SPF e DKIM

Ora puoi utilizzare il tuo client di posta elettronica desktop o client di posta web per inviare un'email di prova a [email protected] e ricevi un rapporto di autenticazione e-mail gratuito. Ecco il rapporto che ho ricevuto da port25.com.

Puoi anche inviare un'e-mail di prova dal tuo server di posta al tuo account Gmail per vedere se i controlli SPF e DKIM sono stati superati. Sul lato destro di un messaggio di posta elettronica aperto in Gmail, se fai clic su show original pulsante dal menu a tendina, puoi vedere i risultati dell'autenticazione.

Se il tuo messaggio non è firmato e il controllo DKIM non è riuscito, potresti voler controllare il registro postfisso (/var/log/maillog ) per vedere cosa c'è che non va nella tua configurazione.

Il tuo server di posta elettronica eseguirà anche la verifica DKIM sulle e-mail in arrivo. Puoi vedere i risultati nelle intestazioni delle email. Quello che segue è il controllo SPF e DKIM su un mittente che utilizza Gmail.

Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> 
Authentication-Results: email.linuxbabe.com;
	dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co";
	dkim-atps=neutral

Come configurare OpenDKIM per più domini

Ho scritto una guida per ospitare più domini sul server di posta CentOS 8/RHEL 8 con PostfixAdmin. In quell'articolo, ho usato Amavis per la firma e la verifica DKIM. Se usi OpenDKIM, devi saltare il passaggio 3 in quell'articolo.

Per configurare OpenDKIM per più domini, devi aggiungere gli altri domini nella tabella delle firme, nella tabella delle chiavi e nel file degli host attendibili come di seguito.

Tabella di firma:

*@domain1.com       20200308._domainkey.domain1.com
*@domain2.com       20200308._domainkey.domain2.com

Tabella chiave:

20200308._domainkey.domain1.com     domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private
20200308._domainkey.domain2.com     domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private

Host attendibili:

127.0.0.1
localhost

*.domain1.com
*.domain2.com

Quindi genera la coppia di chiavi privata/pubblica DKIM e aggiungi la chiave pubblica DKIM in DNS come indicato nei passaggi 3, 4 e 5 per altri domini. Riavvia OpenDKIM e il gioco è fatto.

sudo systemctl restart opendkim

Passaggio successivo

Spero che questo tutorial ti abbia aiutato a installare e configurare OpenDKIM sul server di posta CentOS 8/RHEL 8. Ora potresti voler leggere il seguente tutorial per configurare OpenDMARC per bloccare lo spoofing e-mail.

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

Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere altri suggerimenti e trucchi. Attento 🙂


Cent OS
  1. Come installare il server di posta Postfix su RHEL 8 / CentOS 8

  2. Installa e configura HAProxy su RHEL 8 / CentOS 8 Linux

  3. Installa e configura il server FTP su CentOS 7 / RHEL 7 – (vsftpfd)

  4. CentOS / RHEL 7:come installare e configurare il server ftp (vsftpd)

  5. CentOS / RHEL 5:Come installare e configurare il server vsftpd

Come installare e configurare il server VNC in CentOS 7 / RHEL 7

Installa e configura Check_MK Server su CentOS 7

Parte 4:configurazione di SPF e DKIM con Postfix su CentOS 8/RHEL 8 Mail Server

Come installare e configurare il server OpenVPN in CentOS 8/7

Come installare e configurare il server VNC (TigerVNC) in CentOS / RHEL 7

Come installare e configurare il server VNC su CentOS/RHEL 8