Configurare DKIM come milter su Postfix e CentOS 6

Il DKIM (DomainKeys Indentified Mail) è un sistema per riconoscere univocamente le email provenienti dai domini che lo implementano, eliminando così il problema del mail spoofing e mitigando il problema del phishing/spamming. Esso si basa su un sistema di crittografia asimmetrica (RSA, chiave pubblica e privata), ed aggiunge all’header delle email (nel campo DKIM-Signature) alcuni tag necessari per l’identificazione delle stesse (ed eventualmente per la decifratura del corpo del messaggio).

dkim-process1

In soldoni, il destinatario dell’email ricava la chiave pubblica associata al dominio mittente da un record DNS di tipo TXT e la usa per decriptare il messaggio appena ricevuto (che era stato cifrato dal mittente utilizzando la chiave privata di quel dominio).

I dettagli sul funzionamento di tale sistema (con il segnificato dei vari tag aggiunti all’header) potete trovarli qui.

In questo post descriverò la procedura per integrare DKIM con Postfix su piattaforma CentOS 6.2 ed utilizzarlo come milter (con funzionalità di anti mail spoofing, anti phishing ed anti spam).

Per prima cosa installiamo il pacchetto opendkim:

[root@antispam ~]# yum install opendkim

ed impostiamo l’avvio automatico di tale servizio per i diversi runlevels:

[root@antispam ~]# chkconfig --levels 2345 opendkim on

Ora generiamo il keypair per il nostro dominio:

[root@antispam ~]# mkdir -p etc/opendkim/keys/vostrodominio.com/
[root@antispam ~]# /usr/sbin/opendkim-genkey -D /etc/opendkim/keys/vostrodominio.com/ -d vostrodominio.com -s default

e salviamo chiave pubblica e privata all’interno della giusta directory, previa definizione dell’owner:

[root@antispam ~]# chown -R opendkim:opendkim /etc/opendkim/keys/vostrodominio.com
[root@antispam ~]# mv /etc/opendkim/keys/vostrodominio.com/default.private /etc/opendkim/keys/vostrodominio.com/default

Editiamo il file /etc/opendkim.conf e settiamo per prima cosa il giusto pathname delle chiavi:

KeyFile /etc/opendkim/keys/vostrodominio.com/default

e successivamente definiamo la modalità di funzionamento di opendkim:

Mode v

ovvero, essendo installato su un server che funge da anti spam, il demone in questione dovrà solo verificare che le email provenienti dai domini che supportano DKIM siano autentiche (la v sta appunto per verify).

A questo punto editiamo il file /etc/postfix/main.cf ed aggiungiamo le seguenti direttive:

smtpd_milters           = inet:127.0.0.1:8891
non_smtpd_milters       = $smtpd_milters
milter_default_action   = accept

avviamo opendkim:

[root@antispam ~]# service opendkim start

e ricarichiamo la configurazione di postfix:

[root@antispam ~]# service postfix reload

Per verificare che tutto stia funzionando correttamente è sufficiente osservare l’output del comando:

[root@antispam ~]# tail -f /var/log/maillog | grep dkim

e fare delle prove di invio da domini che supportano DKIM (ad esempio gmail) e da domini che non lo supportano. Se in entrambi i casi la mail viene correttamente recapitata a destinazione allora abbiamo la certezza che il nostro nuovo sistema sta funzionando come dovrebbe.

Alla prossima.

Configurare DKIM come milter su Postfix e CentOS 6ultima modifica: 2014-10-01T11:34:28+02:00da nazarenolatella
Reposta per primo quest’articolo