Prima di iniziare l’installazione, un aggiornamento di sistema è consigliato:
sudo apt-get update
sudo apt-get dist-upgrade
Installare OpenDKIM e le sue dipendenze:
sudo apt-get install opendkim opendkim-tools
Cominciamo con il file di configurazione principale:
sudo nano /etc/opendkim.conf
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
Collegare milter a Postfix:
sudo nano /etc/default/opendkim
Aggiungere la seguente riga, modificare il numero di porta solo se se ne utilizza uno personalizzato:
SOCKET="inet:12301@localhost"
Configurare postfix per usare questo milter:
sudo nano /etc/postfix/main.cf
Assicurarsi che queste due linee sono presenti nel file di configurazione Postfix e non siano commentate:
milter_protocol = 2
milter_default_action = accept
E’ probabile che un filtro (SpamAssasin, Clamav etc.) sia già utilizzato da Postfix; se sono presenti i seguenti parametri, basta aggiungere il milter di opendkim (milters sono separati da una virgola), il numero di porta deve essere lo stesso che c’è nella configurazione opendkim.conf
:
smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
Se i parametri sono mancanti, definirli come segue:
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
Creare una struttura di directory che conterrà i TrustedHosts, le KeyTable, SigningTable e keys:
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
Specificare gli host attendibili:
sudo nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost
192.168.0.1/24
*.example.com
#*.example.net
#*.example.org
Crea una key table:
sudo nano /etc/opendkim/KeyTable
Esempio:
mail._domainkey.example.com example.com:mail:/etc/opendkim/keys/example.com/mail.private
Crea una signing table:
sudo nano /etc/opendkim/SigningTable
Esempio:
*@example.com mail._domainkey.example.com
Vai in:
cd /etc/opendkim/keys
sudo mkdir example.com
cd example.com
Genera le chiavi:
sudo opendkim-genkey -s mail -d example.com
Cambia il proprietario:
sudo chown opendkim:opendkim mail.private
Apri mail.txt:
sudo nano -$ mail.txt
La chiave pubblica viene definita sotto il parametro p. Non utilizzare quella riportata di seguito, è solo un esempio e non funziona su server.
`mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGYcKBPpo8HHbcFfCIIV10Hwo4PhCoGZSaKVHOjDm4yefKXhQjM7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmbMxJrJAG0HZVn8z6EAoOHZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDAQAB" ; ----- DKIM key mail for example.com`
Copiare la chiave e aggiungere un record TXT alle voci DNS del dominio:
Name: mail._domainkey.example.com.
Text: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGYcKBPpo8HHbcFfCIIV10Hwo4PhCoGZSaKVHOjDm4yefKXhQjM7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmbMxJrJAG0HZVn8z6EAoOHZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDAQAB"
Riavvia:
sudo service postfix restart
sudo service opendkim restart
La configurazione può essere testato con l’invio di una e-mail vuota a check-auth@verifier.port25.com e nella risposta verrà ricevuto il risultato.