Sei sulla pagina 1di 4

1.

 Premessa - installazione
Ho messo insieme un po di informazioni trovate in rete per arrivare a questa soluzione che vado a
presentare, il problema principale di linux e' che ogni distribuzione mette i propri file e
configurazioni in posti diversi
 cominciamo con la preparazione della base..
sudo apt-get install opendkim opendkim-tools

fatto questo la prima cosa da fare e' modificare il file opendkim.conf


sudo nano /etc/opendkim.conf

al suo interno dovremmo inserire quanto segue cancellando tutto il resto:


Syslog                  yes
SyslogSuccess           yes
OversignHeaders         From
Canonicalization        relaxed/relaxed
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
LogWhy                  Yes
MinimumKeyBits          1024
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  inet:8891@127.0.0.1
Syslog                  Yes
SyslogSuccess           Yes
TemporaryDirectory      /var/tmp
UMask                   022
UserID                  opendkim:opendkim

Questa soluzione permette di utilizzare chiavi differenti per ogni dominio, sarebbe comunque
possibile utilizzare una sola chiave per tutti
principalmente abbiamo definito
InternalHosts: definiamo una lista di indirizzi che vanno firmati ma non verificati
KeyTable: i nomi delle chiavi da usare per firmare
SigningTable: lista delle firme da applicare ai messaggi basandosi sull'indirizzo trovato nel campo
From: 
Mode: signer (s)  e verifier (v)
Colleghiamo milter a postfix
sudo nano /etc/default/opendkim

Sara' sufficiente togliere il commento "#" dalla riga qui sotto


SOCKET="inet:12301@localhost"

Per configurare postfix affinche comunichi con opendkim


sudo nano /etc/postfix/main.cf

assicuriamoci siano presenti le seguenti impostazioni al suo interno:


milter_protocol = 2
milter_default_action = accept

a questo punto aggiungiamo :


smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

 
Le 2 voci precedenti probabilmente erano gia' presenti sara' quindi sufficiente aggiungere
inet:localhost:12301 preceduto da una virgola es: smtpd_milters = unix:/spamass/spamass.sock,
inet:localhost:12301
Creiamo la struttura delle directory che conterranno le nostre informazioni (chiavi, host etc):
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys

Iniziamo specificando la lista dei nostri hosts (da prendere come esempio):
sudo nano /etc/opendkim/TrustedHosts

127.0.0.1
localhost
192.168.0.1/24

*.kiokoman.eu.org
*.kiokoman.tk
#*.example.org

Creiamo la tabella delle chiavi da usare


sudo nano /etc/opendkim/KeyTable

mail._domainkey.example.com kiokoman.eu.org:mail:/etc/opendkim/keys/kiokoman.eu.org/mail.private
mail._domainkey.example.net kiokoman.tk:mail:/etc/opendkim/keys/kiokoman.tk/mail.private
#mail._domainkey.example.org example.org:mail:/etc/opendkim/keys/example.org/mail.private

Creiamo la tabella delle firme dove dichiariamo i domini e le email e il selector per opendkim:
sudo nano /etc/opendkim/SigningTable

*@kiokoman.eu.org mail._domainkey.kiokoman.eu.org
*@kiokoman.tk mail._domainkey.kiokoman.tk
#*@example.net mail._domainkey.example.net
#*@example.org mail._domainkey.example.org

2. Generazione chiave pubblica e privata


Spostiamoci nella directory che conterrà le chiavi pubbliche e private
cd /etc/opendkim/keys

Creiamo una cartella per ogni dominio:


sudo mkdir example.org

cd example.org

nel mio caso ho creato 2 cartelle una kiokoman.eu.org e una kiokoman.tk


Generiamo le chiavi:
sudo opendkim-genkey -s mail -d example.com

nel mio caso ho generato 2 chiavi con opendkim-genkey -s mail -d kiokoman.org.eu poi
spostamdomi nell'altra cartella ho generato la seconda chiave opendkim-genkey -s mail -d
kiokoman.tk
prendendo in esame il comando con -s specifichiamo il selettore, con -d il dominio, il comando
genererà 2 file, mail.private che e' la chiave privata e mail.txt contenente la chiave pubblica.
generato le chiavi a questo punto bisogna fare attenzione ai permessi dei file in quanto opendkim
non funzionerà se non saranno impostate correttamente.
sudo chown -R opendkim:opendkim /etc/opendkim

cd /etc/opendkim

sudo chmod 640 *

sudo chmod 755 keys

cd keys

sudo chmod 755 *

cd example.org

sudo chmod 600 mail.private

ripetere per le altre chiavi

3. Aggiungiamo le chiavi pubbliche ai record DNS del dominio


Esaminiamo il file mail.txt (/etc/opendkim/keys/example.org):
cat mail.txt

Name: mail._domainkey.example.com.

Text: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iG

La chiave pubblica è definita dopo il carattere "p" . non usate la chiave qui specificata che è solo
illustrativa e non funzionante.
Copiamo la chiave e aggiungiamo un record TXT al nostro dominio, l'operazione varia a seconda
che i DNS siano gestiti da voi o se vi appoggiate a qualcuno
in Bind avremo questo record per esempio:
mail._domainkey.kiokoman.tk. 180      TXT        "v=DKIM1; k=rsa;
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTLKOpImBlL9EIoiChZkfqI1Mw
XoWFNknivLzQCAR6YYCEj+DQNZKwQM5q7z+zFXMAl7EOc3BCa4vSLaGI/
4XzCJu43p6NzzqCj/faHVM2rjfmFeJrWPs1cfwlaLd3LYAUZNfGp7DTs6Rcnt2oTsLHEZ/
QZQ3P0y1fg6MF0hVuOQIDAQAB; t=s"
non ci resta che riavviare i servizi configurati
sudo service postfix restart

sudo service opendkim restart

Congratulazioni ! se tutto e' andato a buon fine avremo configurato correttamente DKIM
Per verificare il corretto funzionamento possiamo mandare una email senza oggetto/vuota a
check-auth@verifier.port25.com da cui riceveremo una risposta automatica con il
risultato
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham

Potrebbero piacerti anche