Email Setup · 5 min read · Oct 14, 2025
Imposta DKIM (DomainKeys Identified Mail) Funzionante Con Postfix Su CentOS Utilizzando OpenDKIM
Impara a impostare DKIM (DomainKeys Identified Mail) funzionante con Postfix su CentOS utilizzando OpenDKIM
Versione 1.0
Autore: Eladio Martinez < [email protected] >
http://twitter.com/mafecsllc
Questo tutorial mostra come far funzionare DKIM su una macchina CentOS che esegue Postfix utilizzando OpenDKIM. Coprirò anche alcuni semplici suggerimenti per la risoluzione dei problemi e consigli per futuri aggiornamenti della tua installazione di OpenDKIM.
1 Requisiti
Questo tutorial presuppone che tu abbia un’installazione CentOS completamente funzionante che esegue i seguenti servizi:
- Postfix 2.3.3 o superiore attualmente funzionante.
- Sendmail è disattivato.
2 Note preliminari
Eseguo tutti i passaggi in questo tutorial con privilegi di root, attualmente sto eseguendo CentOS 6.3 con OpenDKIM versione 2.4.2 e utilizzerò example.com come dominio principale per questo tutorial.
3 Scarica e installa OpenDKIM
Avrai anche bisogno di installare i pacchetti di sviluppo OpenSSL e Sendmail, poiché contengono alcune “librerie” necessarie per far funzionare OpenDKIM.
yum install sendmail-devel openssl-devel
Scarica OpenDKIM nella directory /usr/local/src:
cd /usr/local/src
wget http://sourceforge.net/projects/opendkim/files/opendkim-2.4.2.tar.gz
Estrai, configura, compila e installa OpenDKIM con:
tar zxvf opendkim-2.4.2.tar.gz
cd opendkim-2.4.2
./configure –sysconfdir=/etc –prefix=/usr/local –localstatedir=/var
make
make install
Nota che il comando ./configure include alcuni flag molto importanti, che verranno passati nello script di avvio creato quando viene eseguito il comando di configurazione. Il primo indica al sistema dove si troverà il file di configurazione di OpenDKIM, il secondo imposta il prefisso preferito per alcune altre posizioni di file importanti, e l’ultimo controlla la directory in cui verrà memorizzato il file PID per OpenDKIM.
4 Crea un nuovo utente
Aggiungi un nuovo utente per DKIM chiamato opendkim con le seguenti opzioni:
useradd -r -U -s /sbin/nologin opendkim
Questo comando creerà un nuovo account di sistema (-r) e un gruppo (-g) chiamato opendkim e non assegnerà accesso alla shell a questo utente (-s).
5 Crea directory di lavoro
Crea alcune nuove directory per OpenDKIM e assegna loro la proprietà e i permessi corretti con:
mkdir -p /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod -R go-wrx /etc/opendkim/keys
6 Copia lo script di avvio in /etc/init.d/
Il pacchetto sorgente di OpenDKIM include una directory contrib che contiene uno script init personalizzato da utilizzare con tutti i sistemi compatibili con RedHat, inclusi Fedora e CentOS. Puoi copiarlo nella tua directory /etc/init.d/ per rendere facile l’avvio, l’arresto, il riavvio e il ricaricamento di OpenDKIM:
cp /usr/local/src/opendkim-2.4.2/contrib/init/redhat/opendkim /etc/init.d/
Ora imposta i permessi corretti per lo script init:
chmod 755 /etc/init.d/opendkim7 Genera chiavi per la firma
Devi generare una chiave privata e una chiave pubblica per ciascuno dei domini per i quali desideri firmare la posta. La chiave privata è memorizzata sul tuo server, mentre la chiave pubblica viene pubblicata nei record DNS del tuo dominio in modo che i server di posta in arrivo possano verificare la tua posta firmata DKIM.
Devi decidere ora quale sarà il nome del tuo selettore. Un selettore è una parola chiave unica associata a entrambe le chiavi (pubblica e privata), inclusa in tutte le firme e pubblicata nei tuoi record DNS. Per semplicità, utilizzo la parola default come selettore predefinito. Sentiti libero di scegliere qualcosa di diverso, ma se lo fai, dovrai usarlo in modo coerente in tutta la tua configurazione. Inoltre, anche se questo dovrebbe essere ovvio, dovresti usare il tuo dominio di posta invece di example.com nei passaggi seguenti.
Crea le tue chiavi:
mkdir /etc/opendkim/keys/example.com
/usr/local/bin/opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
chown -R opendkim:opendkim /etc/opendkim/keys/example.com
mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default
In questo esempio, ho utilizzato l’opzione -D (directory), l’opzione -d (dominio) e le opzioni -s (selettore). Questo è tutto ciò di cui hai bisogno per farlo funzionare.
8 Modifica i file di configurazione
Devi creare o modificare quattro file:
- 1 /etc/opendkim.conf –- file di configurazione principale di OpenDKIM
- 2 /etc/opendkim/KeyTable –- un elenco di chiavi disponibili per la firma
- 3 /etc/opendkim/SigningTable – un elenco di domini e account autorizzati a firmare
- 4 /etc/opendkim/TrustedHosts –- un elenco di server da “fidare” durante la firma o la verifica
Crea il file /etc/opendkim.conf:
vi /etc/opendkim.conf
Assicurati che il tuo file assomigli a questo:
##
## opendkim.conf -- file di configurazione per il filtro OpenDKIM
##
AutoRestart Yes
AutoRestartRate 10/1h
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
LogWhy Yes
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
SigningTable refile:/etc/opendkim/SigningTable
Socket inet:8891@localhost
Syslog Yes
SyslogSuccess Yes
TemporaryDirectory /var/tmp
UMask 022
UserID opendkim:opendkimCrea il file /etc/opendkim/KeyTable:
vi /etc/opendkim/KeyTable
Assicurati che il tuo file assomigli a questo:
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/defaultIl file KeyTable dice a OpenDKIM dove trovare le tue chiavi. Ogni voce nel file KeyTable è una singola riga per ciascuna posizione della chiave (ad esempio, tutto il testo nell’esempio sopra dovrebbe essere su una singola riga nel tuo file). Se intendi utilizzare più chiavi (per firmare la posta per domini virtuali con chiavi diverse), dovrai creare una riga separata nel file KeyTable per ciascun dominio.
Crea il file /etc/opendkim/SigningTable:
vi /etc/opendkim/SigningTable
Assicurati che il tuo file assomigli a questo:
*@example.com default._domainkey.example.comIl file SigningTable dice a OpenDKIM come utilizzare le tue chiavi, ad esempio quali mittenti dovrebbero utilizzare quali selettori per le loro firme. Nell’esempio sopra, sto dicendo che tutti () che inviano posta dal server “example.com” dovrebbero utilizzare il selettore chiamato “default”. È importante notare che il simbolo jolly funzionerà solo se l’opzione SigningTable utilizza il prefisso refile: prima del nome del file.
Crea il file /etc/opendkim/TrustedHosts:
vi /etc/opendkim/TrustedHosts
Assicurati che il tuo file assomigli a questo:
127.0.0.1
hostname1.example1.com
example1.com
hostname1.example2.com
example2.comIl file TrustedHosts dice a OpenDKIM chi può utilizzare le tue chiavi. Poiché è referenziato dalla direttiva ExternalIgnoreList nel tuo file di configurazione, OpenDKIM ignorerà questo elenco di host durante la verifica della posta in arrivo e poiché è anche referenziato dalla direttiva InternalHosts, questo stesso elenco di host sarà considerato “interno” e OpenDKIM firmerà la loro posta in uscita.
IMPORTANTE: Assicurati di elencare l’indirizzo IP per localhost (127.0.0.1) nel file TrustedHosts o OpenDKIM non firmerà la posta inviata da questo server. Se hai più server sulla stessa rete che inoltrano posta tramite questo server e desideri firmare anche la loro posta, devono essere elencati nel file TrustedHosts. Metti ogni voce su una propria riga. Un’entrata può essere un nome host, un nome di dominio (ad esempio, “example.com”), un indirizzo IP, un indirizzo IPv6 (incluso un indirizzo IPv4 mappato) o una specifica IP in stile CIDR (ad esempio, “192.168.1.0/24”).
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.