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:[email protected]

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:[email protected]"

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.