Introduzione
In questa guida vedremo come installare e configurare OpenDKIM: un'implementazione open source del sistema di autenticazione mittente DKIM (DomainKeys Identified Mail).
DKIM è uno standard Internet che consente a una persona o un'organizzazione di associare un nome di dominio a un messaggio e-mail.
Prerequisiti
Prima di procedere con la guida, è necessario che Postfix e Dovecot siano correttamente installati è configurati.
Postfix e Dovecot tutorial (Include la configurazione dell' FQDN)
FQDN tutorial
Installare OpenDKIM
OpenDKIM è disponibile nei repository predefiniti di Ubuntu, quindi può essere facilmente installato tramite apt:
sudo apt update
sudo apt install opendkim opendkim-tools
Configurare OpenDKIM
Aprire il file di configurazione principale di OpenDKIM:
sudo nano /etc/opendkim.conf
Modificare o aggiungere le seguenti righe:
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:12301@localhost
Il Milter consente agli amministratori di aggiungere filtri di posta per filtrare spam o virus nella catena di elaborazione della posta.
Connettere il milter con Postfix, aprire il seguente file:
sudo nano /etc/default/opendkim
Aggiungere questa riga, cambiare il numero della porta solo se si utilizza una porta personalizzata:
SOCKET="inet:12301@localhost"
Configurare Postfix per utilizzare il milter, aprire il seguente file::
sudo nano /etc/postfix/main.cf
Aggiungere o decommentare queste righe:
milter_protocol = 2
milter_default_action = accept
Se utilizzate un filtro come SpamAssassin, è probabile che siano già presenti i seguenti parametri, in tal casa basta aggiungere il milter OpenDKIM:
smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
Se i parametri mancano, aggiungere i seguenti:
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
Creare le cartelle per i TrustedHosts:
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
Specificare i TrustedHosts:
sudo nano /etc/opendkim/TrustedHosts
Utilizzeremo questo file per definire sia ExternalIgnoreList che InternalHost, i messaggi provenienti da questi host, i domini e gli indirizzi IP verranno considerati attendibili e firmati.
Personalizza e aggiungi le seguenti righe al file appena creato. È possibile specificare più domini, non modificare le prime tre righe:
127.0.0.1
localhost
192.168.0.1/24
*.esempio.it
#*.esempio.tech
Salvare e chiudere il file.
Creare un nuovo file:
sudo nano /etc/opendkim/KeyTable
Utilizziamo la posta elettronica, non è necessario modificarla.
Aggiungere queste righe:
mail._domainkey.esempio.it esempio.it:mail:/etc/opendkim/keys/esempio.it/mail.private
#mail._domainkey.esempio.tech esempio.tech:mail:/etc/opendkim/keys/esempio.tech/mail.private
Salvare e chiudere il file.
Creare il prossimo file, utilizzato per dichiarare i domini e gli indirizzi email:
sudo nano /etc/opendkim/SigningTable
Aggiungere queste righe:
*@esempio.it mail._domainkey.esempio.it
#*@esempio.tech mail._domainkey.esempio.tech
Generare la Private Key e la Public Key
Cambiare cartella:
cd /etc/opendkim/keys
Creare ed accedere una nuova cartella per il dominio:
sudo mkdir esempio.it
cd esempio.it
Generare le chiavi:
sudo opendkim-genkey -s mail -d esempio.it
Rendere opendkim il proprietario della chiave privata (private key):
sudo chown opendkim:opendkim mail.private
Chiave pubblica (public key) per i record DNS del dominio
Aprire il file mail.txt:
sudo nano -$ mail.txt
La chiave pubblica è definita sotto il parametro p:
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme"
"0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB" ; ----- DKIM key mail for esempio.it
La parte che vi interessa è quella compresa tra le doppie virgolette ":
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme"
"0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB"
Unire le due stringhe di codice eliminando le doppie virgolette ", quindi:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB
Questo è il valore da aggiungere nel campo TXT nei record DNS del vostro dominio.
ATTENZIONE non copiare questa chiave pubblica, è solo illustrativa, non funzionerà sul tuo server.
Riavviare Postfix e OpenDKIM:
sudo service postfix restart
sudo service opendkim restart
La configurazione e l'installazione di DKIM su Ubuntu 18.