Come configurare DKIM su Postfix nel 2026 (OpenDKIM e Rspamd)

diNajeeb VV

Ultimo aggiornamento:
13 13 minuti di lettura
Come configurare DKIM su Postfix nel 2026 (OpenDKIM e Rspamd)

I punti chiave da prendere in considerazione

  • Postfix non dispone di un modulo di firma DKIM integrato, quindi è necessario collegare un milter (OpenDKIM o Rspamd) che firmi ogni messaggio in uscita prima che lasci il server.
  • OpenDKIM funziona ancora per la firma, ma negli ultimi anni l'attività a monte è stata scarsa. Sceglilo per configurazioni semplici a dominio singolo, dove è possibile verificare il supporto attuale della distribuzione, e preferisci Rspamd per la posta a domini multipli o in ambiente di produzione.
  • Utilizzare chiavi RSA da almeno 2048 bit; le chiavi da 1024 bit sono considerate obsolete dalla RFC 8301. Preferire Ed25519 se sia l'MTA/milter che il provider DNS lo supportano.
  • La maggior parte degli errori di tipo “no signature” è dovuta a un problema di socket o a una discrepanza nei permessi. Se Postfix esegue smtpd in un ambiente chroot (come spesso accade in alcuni pacchetti Debian/Ubuntu), colloca il socket OpenDKIM all’interno della directory di spool di Postfix e assicurati che l’utente postfix possa accedervi (ad esempio, aggiungendo postfix al gruppo opendkim).
  • Il superamento del controllo DKIM non è sufficiente. Il DMARC richiede l’allineamento, quindi il dominio di firma deve corrispondere all’intestazione “From:”, e le chiavi devono essere sostituite almeno una volta all’anno.

Il DKIM in Postfix è la firma crittografica che si allega alla posta in uscita, in modo che i server di destinazione possano verificare che il messaggio provenga effettivamente dal proprio dominio e non sia stato alterato durante il transito. 

Postfix non lo fa automaticamente. È necessario associare un “milter” (un filtro di posta) che firmi ogni messaggio nel momento in cui esce dal server.

Questa guida illustra passo dopo passo la configurazione completa di Postfix DKIM nel 2026: dalla scelta del milter e dalla generazione di chiavi moderne, fino all’integrazione in Postfix e alla rotazione delle chiavi prima che diventino un rischio.

OpenDKIM vs. Rspamd: quale scegliere nel 2026?

Prima di poter firmare un messaggio, è necessario scegliere il milter che si occuperà della firma. OpenDKIM e Rspamd sono le due opzioni più diffuse per DKIM con Postfix nel 2026.

Entrambe le soluzioni autenticheranno correttamente la tua posta in uscita. Tuttavia, differiscono per quanto ti richiedono in termini di gestione e per il grado di affidabilità che puoi riporre in esse in futuro.

CriteriOpenDKIMRspamd
Stato della manutenzioneAttività a monte scarsa; ultima versione stabile 2.10.3 (maggio 2015); ramo 2.11.0 in versione beta. Debian testing ne ha segnalato la rimozione automatica (giugno 2026) a causa di un bug relativo alla dipendenza da libmemcached.Sviluppo attivo, aggiornamenti frequenti
Cosa faSolo firma/verifica DKIMFirma DKIM e filtro antispam completo
Complessità di configurazioneSemplice, con un unico scopoPiù componenti mobili nella parte anteriore
Integrazione con PostfixMilter (presa)Milter (socket proxy)
Interfaccia utente webNessunoPannello di controllo integrato

OpenDKIM firma correttamente le e-mail e, al momento, milioni di server si affidano a questo sistema. Tuttavia, comporta un rischio di manutenzione che vale la pena valutare prima di basarsi su di esso. 

L'ultima versione stabile rilasciata dal progetto originale è stata la 2.10.3, del 12 maggio 2015. Il ramo 2.11.0, che ha aggiunto il supporto per Ed25519, non è mai uscito dalla fase beta. OpenDKIM continua a firmare le e-mail in modo affidabile e rimane incluso nei pacchetti delle principali distribuzioni, ma Debian testing ha contrassegnato la versione 2.11.0~beta2 per la rimozione automatica (attualmente prevista per giugno 2026) a causa di un problema di dipendenza transitiva con libmemcached, non per l’abbandono da parte dello sviluppatore principale in sé. Verificate lo stato attuale del pacchetto nella vostra distribuzione prima di utilizzare OpenDKIM per un impiego produttivo a lungo termine.

Puoi utilizzarlo oggi, ma stai sviluppando su un software il cui progetto originale non rilascia una versione stabile da un decennio, e questo è il rischio a lungo termine da valutare. 

Rspamd è l'alternativa sottoposta a manutenzione attiva. Si occupa della firma DKIM e del filtraggio dello spam da un unico milter, quindi è sufficiente eseguire un solo servizio anziché due se si desidera anche la protezione in entrata. Postfix è l’MTA più comune abbinato a Rspamd, e stack come Mailcow si affidano a esso per la firma DKIM piuttosto che a OpenDKIM. 

Ecco come scegliere:

  • Scegli OpenDKIM se gestisci un unico dominio e desideri la configurazione più semplice possibile con la firma DKIM e nient'altro.
  • Scegli Rspamd se gestisci più domini, invii posta di produzione o utilizzi una piattaforma come Mailcow o iRedMail.

In ogni caso, di seguito vengono illustrate entrambe le opzioni. Passa direttamente a quella che hai scelto.

Da leggere: Che cos'è il DKIM?

Prerequisiti: prima di iniziare

Prima di generare una chiave o modificare un file di configurazione, assicurati che questi quattro elementi siano già presenti 

  • Un'installazione funzionante di Postfix che invia già la posta: DKIM appone la firma alle e-mail inviate dal tuo server, quindi è necessario che il server funzioni correttamente. Se Postfix non è ancora configurato, provvedi a farlo prima di continuare.
  • Accesso al DNS per il tuo dominio: I tuoi record A e MX dovrebbero essere già stati pubblicati e dovrai poter aggiungere un record TXT, poiché è lì che risiederà la tua chiave pubblica.
  • Accesso come root o con sudo sul server di posta: Dovrai modificare i file di configurazione di sistema e riavviare i servizi.
  • Un provider DNS che accetta record TXT lunghi: Una chiave da 2048 bit supera il limite di 255 caratteri previsto per una singola stringa TXT, pertanto alcuni provider richiedono di suddividerla in due stringhe racchiuse tra virgolette. Verifica che il tuo provider sia in grado di gestirla prima di generare la chiave.

Innanzitutto, scegli la lunghezza della chiave: RSA a 2048 bit oppure Ed25519 se sia il tuo MTA/milter che il tuo provider DNS lo supportano, ma mai 1024 bit. La RFC 8301 vieta l'uso di SHA-1 (rsa-sha1 NON DEVE essere utilizzato) e raccomanda l'RSA a 2048 bit come requisito minimo a livello di "SHOULD", mentre i 1024 bit rimangono il limite minimo del protocollo (DEVE essere utilizzato almeno 1024 bit). Le chiavi deboli danno ai destinatari un motivo per diffidare della tua posta.

Come configurare DKIM su Postfix con OpenDKIM

OpenDKIM è il modo più diretto per aggiungere la firma DKIM a un server Postfix a dominio singolo, con un solo demone, una sola chiave e senza componenti aggiuntivi. Questi cinque passaggi ti consentiranno di passare da un server che invia posta non firmata a uno che firma ogni messaggio in uscita con una chiave verificabile dai destinatari. Ogni passaggio si basa su quello precedente, quindi seguili in ordine 

Passaggio 1: Installare OpenDKIM

Installa due pacchetti: opendkim (il demone di firma vero e proprio) e opendkim-tools (le utilità che userai per generare le chiavi).

Ubuntu 24.04 / Debian 12:

bash

sudo apt aggiorna

sudo apt installa opendkim opendkim-tools

RHEL / Rocky 9 (OpenDKIM è disponibile nel repository EPEL):

bash

sudo dnf install epel-release

sudo dnf install opendkim opendkim-tools

Abilita il servizio in modo che si avvii all'avvio del sistema:

bash

sudo systemctl abilita opendkim

Nota: in alcune distribuzioni, il nome del servizio o dell'utente/gruppo potrebbe variare (ad esempio, opendkim anziché opendkim-daemon, opendkim:opendkim anziché opendkim:postfix). Se i comandi non corrispondono, consultare la documentazione del pacchetto o l'unità systemd.

Fase 2: Genera la tua coppia di chiavi DKIM

Crea una cartella in cui salvare le chiavi del dominio, quindi genera una coppia di chiavi a 2048 bit:

bash

sudo mkdir -p /etc/opendkim/keys/example.com

sudo opendkim-genkey -b 2048 -d example.com -s selector2026 \

  -D /etc/opendkim/keys/example.com/

Cosa rappresenta ogni bandiera:

BandieraSignificato
-b 2048Lunghezza della chiave in bit - RSA a 2048 bit
-d example.comIl dominio per cui stai firmando
-s selector2026Il nome del selettore (vedi nota sotto)
-D /etc/opendkim/keys/example.com/Dove salvare i file di output

Sul selettore: il valore è l'etichetta che verrà inserita nel tuo record DNS. Utilizza un nome basato sull'anno, come selector2026. Adesso non costa nulla e renderà la rotazione molto semplice in seguito; l’anno prossimo genererai selector2027 e il vecchio record rimarrà attivo durante il passaggio.

Il comando genera due file:

FileChe cos’èRegola
selector2026.privatoLa tua chiave privata di firmaNon condividerlo mai; assicurati che sia leggibile solo da OpenDKIM
selector2026.txtLa chiave pubblica, formattata per il DNSQuesto è ciò che devi pubblicare al Passo 5

Ora correggi i diritti di proprietà. I permessi errati sono la causa principale per cui OpenDKIM non riesce a firmare, quindi non saltare questo passaggio:

bash

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

sudo chmod 600 /etc/opendkim/keys/example.com/selector2026.private

Modifica l'utente/gruppo se la tua distribuzione utilizza nomi diversi (ad esempio, opendkim:postfix). Controlla la documentazione del pacchetto o l'unità systemd per verificarlo.

Fase 3: Configurazione di OpenDKIM

OpenDKIM legge le sue impostazioni principali dal file /etc/opendkim.conf, quindi utilizza tre piccoli file di riferimento per decidere cosa firmare e con quale chiave. Impostare innanzitutto le direttive principali:

Syslog
UMask2
Modos
Canonicalizzazionerilassato/rilassato
Presalocal:/var/spool/postfix/opendkim/opendkim.sock
PidFile/run/opendkim/opendkim.pid
OversignHeadersDa
Tabella delle chiavi/etc/opendkim/key.table
Tabella delle firmerifile:/etc/opendkim/signing.table
Elenco di esclusione esterno/etc/opendkim/trusted.hosts
InternalHosts/etc/opendkim/trusted.hosts

Cosa prevedono le direttive più importanti:

DirettivaCosa controlla
Modalità sSolo firma. Utilizzare "sv" se si desidera che OpenDKIM verifichi anche la posta in arrivo.
Canonicalizzazione non rigorosa/non rigorosaTollera lievi variazioni negli spazi bianchi durante il transito, garantendo così la validità delle firme. Nota: la canonicalizzazione non influisce sull'allineamento DMARC. L'allineamento DMARC dipende dalla corrispondenza tra il dominio d= nella firma DKIM e il dominio dell'intestazione From:, non dall'impostazione di canonicalizzazione.
PresaDove OpenDKIM è in ascolto per Postfix. Questo percorso deve corrispondere a quello che imposterai in seguito in Postfix.
OversignHeaders DaFirma l'intestazione "From" in modo che un malintenzionato non possa aggiungerne una seconda: una misura anti-spoofing modesta ma efficace.
Tabella delle chiavi / Tabella delle firmeI due file di riferimento che associano i domini ai selettori e alle chiavi (di seguito).

A questo punto, crea i tre file di riferimento. Ognuno di essi ha un unico compito:

FileLavoroRiga di esempio
tabella delle firmeAssegna un mittente a un selettore*@example.com selector2026._domainkey.example.com
key.tableAssocia quel selettore alla sua chiave privata su discoselector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private
trusted.hostsElenca i host la cui posta in uscita deve essere firmata127.0.0.1 / localhost / ::1 / example.com

Passaggio 4: Collegare OpenDKIM a Postfix

È qui che la maggior parte delle configurazioni fallisce, e la causa è quasi sempre il socket. OpenDKIM crea un file socket per comunicare con Postfix. Se il vostro Postfix esegue smtpd in un chroot — che è l’impostazione predefinita nei pacchetti Debian/Ubuntu, ma non in Postfix upstream né in RHEL/Rocky —, esso rimane confinato all’interno di /var/spool/postfix e non può vedere un socket al di fuori di quella directory. I due non riescono mai a connettersi e la posta viene inviata senza firma.

La soluzione consiste nel posizionare la presa all'interno directory di spool di Postfix e assegnare al utente di accedere ad essa. Seguire questi passaggi in ordine:

1. Creare la directory socket all’interno dello spool di Postfix:

bash

sudo mkdir -p /var/spool/postfix/opendkim

sudo chown opendkim:postfix /var/spool/postfix/opendkim

Modifica il gruppo se la tua distribuzione utilizza invece opendkim:opendkim.

2. Aggiungere il postfix a gruppo gruppo in modo che possa leggere il socket:

bash

sudo gpasswd -a postfix opendkim

3. Verificare il percorso del socket di runtime corrisponda a opendkim.conf. Su Ubuntu/Debian, impostarlo in /etc/default/opendkim (o nella configurazione di override di systemd):

  SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"

4. Indirizzare Postfix verso il milter in /etc/postfix/main.cf:

milter_default_action = accept

   milter_protocol = 6

   smtpd_milters = local:opendkim/opendkim.sock

   non_smtpd_milters = $smtpd_milters

Cosa significano queste quattro direttive di Postfix:

DirettivaScopo
milter_default_action = acceptSe il server di smistamento è fuori servizio, la posta continua a circolare; un firmatario inattivo non blocca mai silenziosamente la tua coda.
milter_protocol = 6La versione del protocollo Milter attualmente utilizzata da OpenDKIM.
smtpd_miltersApplica il filtro alla posta ricevuta tramite SMTP (i tuoi messaggi in uscita).
non_smtpd_miltersSi applica alla posta non ricevuta tramite SMTP, ad esempio quella generata localmente.

Il percorso della socket in main.cf è relativo, local:opendkim/opendkim.sock, non il percorso completo nel filesystem, poiché Postfix lo legge dall'interno del proprio chroot.

Riavvia entrambi i servizi per applicare le modifiche:

bash

sudo systemctl restart opendkim

sudo systemctl restart postfix

Passaggio 5: Pubblicare il record TXT DKIM nel DNS

Apri il file della chiave pubblica che hai generato al punto 2:

bash

sudo cat /etc/opendkim/keys/example.com/selector2026.txt

Pubblica il contenuto presso il tuo provider DNS come nuovo record:

CampoValore
Nome del recordselector2026._domainkey.example.com
TipoTXT
ValoreTutto ciò che si trova all'interno delle parentesi (la stringa v=DKIM1; k=rsa; p=...)

Trattandosi di una chiave da 2048 bit, il valore supera il limite di 255 caratteri previsto per una singola stringa TXT. La maggior parte dei provider DNS la suddivide automaticamente. Se il tuo provider la rifiuta, suddividi la chiave pubblica in due stringhe racchiuse tra virgolette all’interno dello stesso record in cui si trova il file file .txt ti mostra già dove avviene la suddivisione.

Imposta il TTL a 300 secondi durante la configurazione, in modo che eventuali errori possano essere corretti senza grandi costi. Una volta verificato che la firma funzioni correttamente, aumentalo a 3600.

Passaggio 6: Verifica prima di inviare

La propagazione dei dati DNS richiede tempo, e una chiave a 2048 bit suddivisa in modo errato apparirà corretta nell'editor di zona, ma non funzionerà nel momento in cui un destinatario la leggerà. 

opendkim postfix

Rspamd è la scelta più indicata quando si va oltre un singolo dominio o si gestisce la posta in ambiente di produzione. Firma i messaggi con DKIM e filtra lo spam da un unico milter, consentendo così di gestire un unico servizio anziché due.

Inoltre, dato che la ricerca delle chiavi per dominio avviene automaticamente, l’aggiunta di un nuovo dominio richiede solo una modifica di una riga, anziché una nuova configurazione. Ecco la procedura completa su Postfix, in cinque passaggi.

Passaggio 1: Installare Rspamd

La versione presente nei repository di base della tua distribuzione è solitamente obsoleta, quindi installala dal repository stabile ufficiale di Rspamd.

bash

sudo apt install -y lsb-release wget gpg

sudo mkdir -p /etc/apt/keyrings

wget -O- https://rspamd.com/apt-stable/gpg.key | \

  gpg –dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null

echo “deb [signed-by=/etc/apt/keyrings/rspamd.gpg] \

  http://rspamd.com/apt-stable/ $(lsb_release -cs) main” | \

  sudo tee /etc/apt/sources.list.d/rspamd.list

sudo apt aggiorna && sudo apt install rspamd

Abilita l'avvio automatico all'avvio del sistema:

bash

sudo systemctl abilita rspamd

Controlla sempre su rspamd.com le istruzioni di installazione più recenti, poiché l'URL del repository e la procedura per la chiave GPG possono subire modifiche di tanto in tanto.

Fase 2: Genera la tua chiave DKIM

Rspamd include un proprio generatore di chiavi, rspamadm dkim_keygen senza che sia necessario alcun pacchetto di strumenti separato. Scrive la chiave privata in un file e visualizza la chiave pubblica (il vostro record DNS) sullo schermo, che potete acquisire in un file file .pub .

bash

sudo mkdir -p /var/lib/rspamd/dkim

sudo rspamadm dkim_keygen -s selector2026 -b 2048 -d example.com \

  -k /var/lib/rspamd/dkim/example.com.selector2026.key | \

  sudo tee /var/lib/rspamd/dkim/example.com.selector2026.pub

sudo chown -R _rspamd:_rspamd /var/lib/rspamd/dkim

Modifica l'utente/gruppo se la tua distribuzione utilizza rspamd:rspamd invece di _rspamd:_rspamd. Controlla l'unità systemd del tuo pacchetto per verificarlo.
I flag corrispondono a quelli di OpenDKIM: -s selettore, -b 2048 dimensione della chiave, -d dominio, -k il file di output della chiave privata. Si ottengono così due file:

FileChe cos’è
example.com.selector2026.keyLa chiave privata di firma utilizzata da Rspamd. Assicurarsi che rimanga di proprietà dell'utente _rspamd
example.com.selector2026.pubLa chiave pubblica, formattata per il DNS, va pubblicata al punto 5

Passaggio 3: Abilitare la firma DKIM

Rspamd gestisce DKIM tramite il suo modulo dkim_signing . Attivalo e indicali dove si trovano le tue chiavi nel file /etc/rspamd/local.d/dkim_signing.conf

selector = “selector2026”;

path = “/var/lib/rspamd/dkim/$domain.$selector.key”;

allow_username_mismatch = true;

use_domain = “header”;

Cosa fa ciascuna impostazione:

AmbientazioneCosa controlla
selettoreIl nome del selettore deve corrispondere al nome del file della chiave e al record DNS
percorsoDove Rspamd trova la chiave privata; $domain e $selector vengono compilati automaticamente
allow_username_mismatchEffettua l'accesso anche quando il nome utente autenticato non corrisponde al dominio del mittente
use_domain = "header"Seleziona il dominio del mittente dall'intestazione "Da" del messaggio

Quello riga è ciò che rende Rspamd particolarmente efficace per la gestione di più domini. Poiché risolve $domain e $selector in base al nome del file, l'aggiunta di un altro dominio comporta semplicemente l'inserimento della relativa chiave nella stessa cartella, senza bisogno di un nuovo blocco di configurazione né di un secondo demone.

Passaggio 4: Collegare Rspamd a Postfix

Configurare Postfix affinché utilizzi il milter di Rspamd in /etc/postfix/main.cf. Le direttive sono identiche alla configurazione di OpenDKIM, cambia solo il socket:

milter_default_action = accept

milter_protocol = 6

smtpd_milters = inet:localhost:11332

non_smtpd_milters = $smtpd_milters

Rspamd è in ascolto sul proprio proxy worker alla porta TCP 11332 . Trattandosi di un socket di rete, si evita il problema dei permessi del socket in chroot che causa difficoltà a OpenDKIM. L'unica riga che differisce tra i due milter è:

MilterRiga relativa alle prese in main.cf
OpenDKIMsmtpd_milters = local:opendkim/opendkim.sock
Rspamdsmtpd_milters = inet:localhost:11332

Passaggio 5: Pubblica il record DNS

Apri la chiave pubblica e pubblicala esattamente come indicato nel Passaggio 5 di OpenDKIM, utilizzando lo stesso formato per il nome del record, TXT e la regola di suddivisione a 255 caratteri per la chiave a 2048 bit:

bash

sudo cat /var/lib/rspamd/dkim/example.com.selector2026.pub

Se lo si desidera, è possibile abilitare la dashboard web impostando una password nel file /etc/rspamd/local.d/worker-controller.inc 

Ti offre una panoramica in tempo reale delle attività relative alle firme e allo spam. Quindi riavvia entrambi i servizi:

bash

sudo systemctl restart rspamd postfix

Verifica il record pubblicato con uno strumento di verifica DKIM prima di utilizzarlo, proprio come faresti dopo aver configurato OpenDKIM.

Rspamd sostituisce sia OpenDKIM e SpamAssassin. Se utilizzavi un filtro antispam separato, puoi disattivarlo in questa sede, in modo da avere meno servizi, una superficie di configurazione ridotta e un unico punto da cui gestire sia la firma che il filtraggio.

Configurazione di Postfix DKIM per più domini

È normale gestire diversi domini su un unico server Postfix, ma DKIM non fa sconti in questo senso. Ogni dominio da cui si inviano messaggi richiede una propria coppia di chiavi e un proprio record DNS, poiché ciascuno viene autenticato in modo indipendente; non esiste quindi una chiave condivisa che li copra tutti. Il modo in cui si gestisce la scalabilità dipende dal milter scelto.

Con OpenDKIM, è possibile estendere le tabelle già create: Genera una chiave per ogni nuovo dominio, quindi aggiungi una riga corrispondente in ciascun file di ricerca.

In signing.table:

*@example.com selector2026._domainkey.example.com

*@example.net selector2026._domainkey.example.net

In key.table:

selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private

selector2026._domainkey.example.net example.net:selector2026:/etc/opendkim/keys/example.net/selector2026.private

Ogni nuovo dominio comporta una chiave in più e due righe in più: un’operazione manuale, ma prevedibile.

Con Rspamd, il lavoro è già fatto per te: Poiché il impostazione del percorso utilizza il variabile $domain , Rspamd individua automaticamente la chiave di ciascun dominio in base al nome del file. Sostituisci example.net.selector2026.key nella stessa directory e firmerà anche quel dominio senza che sia necessaria alcuna modifica alla configurazione. Se si desidera un controllo più rigoroso, è comunque possibile aggiungere blocchi specifici per dominio nel file dkim_signing.conf.

Due abitudini consentono di gestire efficacemente la firma multidominio:

  1. Utilizza lo stesso selettore in tutti i domini, selector2026 ovunque, in modo che la rotazione rimanga un unico processo anziché diversi. 
  2. Pubblica un record DNS separato per ogni dominio: se ne tralasci uno, la posta di quel dominio verrà firmata localmente ma non supererà la verifica presso il destinatario.

Come testare e verificare la configurazione DKIM di Postfix

Firmare un’e-mail e verificare che la firma sia stata apposta correttamente sono due cose diverse. Dal punto di vista del mittente tutto può sembrare a posto, mentre il destinatario potrebbe tranquillamente rifiutare la firma senza che tu te ne accorga, finché la consegna non fallisce. 

Questi cinque controlli confermano che DKIM funzioni effettivamente, partendo dai propri log per arrivare fino a un destinatario reale. Seguire l'ordine indicato di seguito:

Controllo 1: Controllare innanzitutto il registro della posta

Il log della posta è il metodo di conferma più veloce ed è locale. Tieni d'occhio il log, invia un messaggio di prova e controlla se compare una voce relativa alla firma:

bash

  sudo tail -f /var/log/mail.log

Su RHEL/Rocky il file si trova in /var/log/maillog. Cerca una riga che indichi che il messaggio è stato firmato con il tuo selettore. Se è presente, il tuo milter sta funzionando correttamente.

Controllo 2: Verifica della chiave tramite DNS (OpenDKIM)

La convalida conferma che la chiave privata presente sul disco corrisponde alla chiave pubblica che hai pubblicato:

bash

  opendkim-testkey -d example.com -s selector2026 -vvv

chiave OK indica che le due parti corrispondono. Qualsiasi altro risultato indica un errore di digitazione nel DNS o una mancata corrispondenza della chiave, che deve essere risolto prima di proseguire.

Verifica 3: Inviare un test reale

Questo è l'unico controllo che dimostra che il destinatario accetta la tua firma. Invia un'e-mail a un account Gmail, apri il messaggio e seleziona “Mostra originale”. Cerca DKIM: «PASS» con il tuo dominio, il che significa che il server di destinazione conferma che la tua firma è stata verificata.

Verifica 4: Eseguire i controlli esterni

Uno strumento di verifica DKIM recupera e analizza il record pubblicato proprio come farebbe un server ricevente, confermando che la chiave sia valida e completa

Prova il DKIM Checker gratuito di PowerDMARC, quindi invia un messaggio a mail-tester.com per ottenere un punteggio di deliverability più completo che tenga conto di DKIM insieme a SPF, DMARC e ai segnali antispam. 

Controllo 5: Attenzione alla trappola “DKIM superato ma DMARC fallito”

La tua firma può risultare perfettamente valida, ma il controllo DMARC può comunque fallire, poiché DMARC richiede l'allineamento: il dominio nel tuo DKIM d= deve corrispondere al dominio presente nell’intestazione visibile “Da:”. 

Accedi come mail.example.com mentre invii da example.com e l'allineamento "relaxed" ti salverà, ma quello "strict" no. Se DMARC fallisce nonostante un DKIM superato, verifica che la tua tabella di firma sia associata al dominio corretto.

Verifica 6: Verificare tutti e tre in un unico passaggio

Il superamento del controllo DKIM conferma che una parte del processo di autenticazione funziona, ma la deliverability e la protezione dallo spoofing dipendono da DKIM, SPF e DMARC che agiscano in sinergia. 

L'analizzatore di domini gratuito di PowerDMARC Domain Analyzer di PowerDMARC esegue la scansione di tutti e tre contemporaneamente e restituisce un punteggio da A a F, così in un unico passaggio puoi scoprire se il tuo dominio è effettivamente protetto dall’inizio alla fine o solo parzialmente. 

Quando ti imbatti in problemi come la trappola “DKIM supera il controllo ma DMARC fallisce”, l’analizzatore gratuito Email Header Analyzer inserisce il DKIM e il risultato dell'allineamento, consentendoti di individuare l'esatta discrepanza in pochi secondi, invece di dover scrutare attentamente le intestazioni grezze. 

Rotazione delle chiavi DKIM in Postfix

Una chiave privata che rimane inalterata su un server per anni è una chiave il cui rischio di essere scoperta aumenta progressivamente. Se dovesse mai trapelare, un malintenzionato potrebbe firmare le e-mail a nome del tuo dominio finché non te ne accorgi.

Effettuando la rotazione secondo un programma prestabilito, almeno una volta all’anno, si mantiene ridotta quella finestra. Il selettore basato sull’anno rende la sostituzione pulita.

Il processo di rotazione:

  1. Genera una nuova chiave con un nuovo selettore – selector2027.
  2. Pubblica la nuova chiave pubblica come nuovo record TXT DNS e lascia il vecchio record così com'è.
  3. Aggiorna la tua configurazione per effettuare la firma con il nuovo selettore.
  4. Riavvia il milter e attendi che il TTL del DNS si propaghi.
  5. Mantieni attivo il vecchio record per almeno il valore del TTL precedente più 24–48 ore (in genere 48–72 ore in totale), a seconda del TTL e del volume della posta in transito. La posta già in transito, firmata con la vecchia chiave, deve comunque essere verificata.
  6. Disattivare il vecchio selettore e rimuovere il relativo record DNS.

La fase di sovrapposizione tra i passaggi 5 e 6 è quella che non va affrettata. Se si rimuove il vecchio record troppo presto, qualsiasi messaggio ancora in fase di verifica rispetto a esso non supererà il controllo, proprio il tipo di errore di autenticazione silenzioso che il DKIM dovrebbe impedire.

Né OpenDKIM né Rspamd automatizzano la generazione delle chiavi, la pubblicazione nel DNS o la tempistica di sovrapposizione. Per un singolo dominio, si tratta di un promemoria da impostare una volta all’anno. Se i domini sono cinque o più, diventa un’attività ricorrente che è facile trascurare, e una rotazione che silenziosamente non viene mai effettuata costituisce una lacuna di conformità di cui non ti accorgerai finché qualcuno non ti chiederà di dimostrarla.

Errori comuni di DKIM in Postfix e come risolverli

I problemi relativi al DKIM su Postfix sono spesso riconducibili ad alcune cause prevedibili, principalmente i permessi dei socket, i percorsi delle chiavi e l'allineamento dei domini. La tabella sottostante mette in relazione il sintomo riscontrato con la causa più probabile e la soluzione, in modo da poter passare direttamente al caso specifico. 

ErroreProbabile causaFissare
Nessuna firma DKIM nelle intestazioniMilter non collegato o presa non compatibileVerificare che il percorso del socket corrisponda a quello indicato nei file opendkim.conf e main.cf; controllare che l'utente postfix faccia parte del gruppo opendkim
Connettiti al servizio Milter... Connessione rifiutataIl demone OpenDKIM non è in esecuzionesystemctl start opendkim; verificare che il file socket sia effettivamente presente nella directory spool
opendkim: recupero della chiave non riuscitoPercorso errato nella tabella delle chiavi o permessi non correttiVerifica il percorso .private nel file key.table; esegui il comando chown opendkim:opendkim sulla chiave
Il DKIM viene superato, ma il DMARC fallisceDisallineamentoIl dominio della firma (d=) deve corrispondere al dominio dell'intestazione From:; utilizzare un allineamento flessibile
Chiave a 2048 bit rifiutata dal DNSLimite di 255 caratteri per i messaggi TXT del providerDividere la chiave pubblica in due stringhe racchiuse tra virgolette nello stesso record TXT

Quando passare da un sistema DKIM manuale a Postfix

Per un singolo dominio, il DKIM autogestito su Postfix è la scelta ideale. Basta configurarlo una volta sola e funziona, ma man mano che il volume delle email inviate aumenta, il lavoro manuale che comporta diventa una fonte di rischio anziché di controllo. 

Ecco alcuni segnali che indicano che sei arrivato a quel punto:

  • Stai sottoscrivendo un abbonamento per tre o più domini.
  • Le e-mail provengono da diverse fonti: un ESP, e-mail transazionali, la tua app; ciascuna richiede le proprie chiavi.
  • Hai una scadenza da rispettare e non puoi permetterti di saltare una rotazione.
  • C'è una sola persona che possiede tutte le conoscenze relative al DKIM, e se se ne andasse, queste andrebbero perdute.

Se ti trovi ad affrontare queste difficoltà, la gestione DKIM in hosting colma queste lacune eliminando completamente le operazioni manuali. Ecco in che modo la gestione manuale del DKIM differisce da quella in hosting:

CompitoManuale (OpenDKIM / Rspamd)DKIM ospitato
Rotazione delle chiaviManualmente, per ogni ciclo: generare, pubblicare, sovrapporre, ritirareAutomatico, nessuna modifica al DNS per ogni ciclo
Più dominiChiave, record e configurazione separati per ogni dominioGestito a livello centrale
Dimensione della chiave2048 bit (o Ed25519)Fino a 4096 bit
Gestione dei selettoriRegistrato manualmenteRilevamento automatico per i principali ESP
Manutenzione del DNSModificato ad ogni rotazioneUn unico record CNAME, pubblicato una sola volta

Se gestisci il DKIM su più domini o hai bisogno di una rotazione conforme agli standard di cui ti puoi fidare, il servizio Hosted DKIM di PowerDMARC elimina il carico di lavoro manuale e i rischi che ne derivano. 

Inizia la tua prova gratuita di 15 giorni

Domande frequenti

Che cos’è Postfix DKIM?

Il DKIM di Postfix consiste nella firma crittografica dei messaggi in uscita su un server Postfix, in modo che i destinatari possano verificare che provengano dal proprio dominio senza aver subito alterazioni. Postfix non dispone di un modulo di firma integrato, pertanto inoltra ogni messaggio a un milter, come OpenDKIM o Rspamd, che provvede ad aggiungere la firma.

Che cos’è OpenDKIM?

OpenDKIM è un milter autonomo che si occupa esclusivamente di firmare e verificare i messaggi DKIM per Postfix e altri MTA, e nient’altro. È semplice e ampiamente utilizzato, ma non ha più avuto versioni stabili dal 2021; è quindi opportuno valutare attentamente il rischio legato alla manutenzione in caso di configurazioni a lungo termine.

Che cos'è Rspamd?

Rspamd è un sistema di filtraggio dello spam sottoposto a manutenzione attiva, il cui modulo di firma DKIM è in grado di firmare i messaggi di Postfix. Poiché gestisce sia il filtraggio che la firma in un unico milter, sostituisce sia OpenDKIM che SpamAssassin, rappresentando la scelta più indicata per il 2026 per i server multidominio o di produzione.

Che cos'è Postfix?

Postfix è un agente di trasferimento della posta (MTA) open source ampiamente utilizzato che instrada e consegna la posta elettronica su server di tipo Unix. Consente di inviare e ricevere messaggi, ma non esegue autonomamente la firma DKIM: per farlo è necessario un milter separato, come OpenDKIM o Rspamd.

Nel 2026 dovrei usare OpenDKIM o Rspamd con Postfix?

Per configurazioni semplici con un solo dominio, OpenDKIM funziona ancora bene. Per i server con più domini o quelli di produzione, Rspamd è la scelta migliore. È mantenuto attivamente e combina la firma DKIM con il filtraggio dello spam in un unico milter.

Come posso verificare che DKIM stia firmando la mia posta in uscita?

Controlla /var/log/mail.log per verificare la presenza di voci relative alla firma, quindi eseguire opendkim-testkey, inviare un'e-mail di prova a Gmail e controllare le intestazioni grezze alla ricerca di DKIM: PASS, oppure verifica il tuo dominio tramite uno strumento gratuito di controllo DKIM.

CTA