Come configurare DKIM su Postfix nel 2026 (OpenDKIM e Rspamd)
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.
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.
| Criteri | OpenDKIM | Rspamd |
|---|---|---|
| Stato della manutenzione | Attività 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 fa | Solo firma/verifica DKIM | Firma DKIM e filtro antispam completo |
| Complessità di configurazione | Semplice, con un unico scopo | Più componenti mobili nella parte anteriore |
| Integrazione con Postfix | Milter (presa) | Milter (socket proxy) |
| Interfaccia utente web | Nessuno | Pannello 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:
In ogni caso, di seguito vengono illustrate entrambe le opzioni. Passa direttamente a quella che hai scelto.
Da leggere: Che cos'è il DKIM?
Prima di generare una chiave o modificare un file di configurazione, assicurati che questi quattro elementi siano già presenti
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.
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
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.
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:
| Bandiera | Significato |
|---|---|
| -b 2048 | Lunghezza della chiave in bit - RSA a 2048 bit |
| -d example.com | Il dominio per cui stai firmando |
| -s selector2026 | Il 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:
| File | Che cos’è | Regola |
|---|---|---|
| selector2026.privato | La tua chiave privata di firma | Non condividerlo mai; assicurati che sia leggibile solo da OpenDKIM |
| selector2026.txt | La chiave pubblica, formattata per il DNS | Questo è 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.
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 | sì |
|---|---|
| UMask | 2 |
| Modo | s |
| Canonicalizzazione | rilassato/rilassato |
| Presa | local:/var/spool/postfix/opendkim/opendkim.sock |
| PidFile | /run/opendkim/opendkim.pid |
| OversignHeaders | Da |
| Tabella delle chiavi | /etc/opendkim/key.table |
| Tabella delle firme | rifile:/etc/opendkim/signing.table |
| Elenco di esclusione esterno | /etc/opendkim/trusted.hosts |
| InternalHosts | /etc/opendkim/trusted.hosts |
Cosa prevedono le direttive più importanti:
| Direttiva | Cosa controlla |
|---|---|
| Modalità s | Solo firma. Utilizzare "sv" se si desidera che OpenDKIM verifichi anche la posta in arrivo. |
| Canonicalizzazione non rigorosa/non rigorosa | Tollera 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. |
| Presa | Dove OpenDKIM è in ascolto per Postfix. Questo percorso deve corrispondere a quello che imposterai in seguito in Postfix. |
| OversignHeaders Da | Firma 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 firme | I 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:
| File | Lavoro | Riga di esempio |
|---|---|---|
| tabella delle firme | Assegna un mittente a un selettore | *@example.com selector2026._domainkey.example.com |
| key.table | Associa quel selettore alla sua chiave privata su disco | selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private |
| trusted.hosts | Elenca i host la cui posta in uscita deve essere firmata | 127.0.0.1 / localhost / ::1 / example.com |
È 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:
| Direttiva | Scopo |
|---|---|
| milter_default_action = accept | Se il server di smistamento è fuori servizio, la posta continua a circolare; un firmatario inattivo non blocca mai silenziosamente la tua coda. |
| milter_protocol = 6 | La versione del protocollo Milter attualmente utilizzata da OpenDKIM. |
| smtpd_milters | Applica il filtro alla posta ricevuta tramite SMTP (i tuoi messaggi in uscita). |
| non_smtpd_milters | Si 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
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:
| Campo | Valore |
|---|---|
| Nome del record | selector2026._domainkey.example.com |
| Tipo | TXT |
| Valore | Tutto 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.
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à.
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.
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.
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:
| File | Che cos’è |
|---|---|
| example.com.selector2026.key | La chiave privata di firma utilizzata da Rspamd. Assicurarsi che rimanga di proprietà dell'utente _rspamd |
| example.com.selector2026.pub | La chiave pubblica, formattata per il DNS, va pubblicata al punto 5 |
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:
| Ambientazione | Cosa controlla |
|---|---|
| selettore | Il nome del selettore deve corrispondere al nome del file della chiave e al record DNS |
| percorso | Dove Rspamd trova la chiave privata; $domain e $selector vengono compilati automaticamente |
| allow_username_mismatch | Effettua 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.
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 è:
| Milter | Riga relativa alle prese in main.cf |
|---|---|
| OpenDKIM | smtpd_milters = local:opendkim/opendkim.sock |
| Rspamd | smtpd_milters = inet:localhost:11332 |
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.
È 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:
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:
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.
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.
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.
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.
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.
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.
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:
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.
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.
| Errore | Probabile causa | Fissare |
|---|---|---|
| Nessuna firma DKIM nelle intestazioni | Milter non collegato o presa non compatibile | Verificare 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 rifiutata | Il demone OpenDKIM non è in esecuzione | systemctl start opendkim; verificare che il file socket sia effettivamente presente nella directory spool |
| opendkim: recupero della chiave non riuscito | Percorso errato nella tabella delle chiavi o permessi non corretti | Verifica il percorso .private nel file key.table; esegui il comando chown opendkim:opendkim sulla chiave |
| Il DKIM viene superato, ma il DMARC fallisce | Disallineamento | Il dominio della firma (d=) deve corrispondere al dominio dell'intestazione From:; utilizzare un allineamento flessibile |
| Chiave a 2048 bit rifiutata dal DNS | Limite di 255 caratteri per i messaggi TXT del provider | Dividere la chiave pubblica in due stringhe racchiuse tra virgolette nello stesso record TXT |
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:
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:
| Compito | Manuale (OpenDKIM / Rspamd) | DKIM ospitato |
|---|---|---|
| Rotazione delle chiavi | Manualmente, per ogni ciclo: generare, pubblicare, sovrapporre, ritirare | Automatico, nessuna modifica al DNS per ogni ciclo |
| Più domini | Chiave, record e configurazione separati per ogni dominio | Gestito a livello centrale |
| Dimensione della chiave | 2048 bit (o Ed25519) | Fino a 4096 bit |
| Gestione dei selettori | Registrato manualmente | Rilevamento automatico per i principali ESP |
| Manutenzione del DNS | Modificato ad ogni rotazione | Un 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
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.
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.
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.
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.
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.
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.

Come configurare DMARC: guida completa alla configurazione passo dopo passo (2026)