mercoledì 10 settembre 2014

In caso di problemi di routing e-mail verificare PTR, SPF, DKIM e DMARC

Negli ultimi giorni mi sono trovato in mezzo a clienti con problemi di spam e difficoltà nell'invio posta, in questo posto faccio un riassunto delle impostazioni che ho controllato e implementato.

Record PTR

Fontamentale ! Il record PTR è il record di risoluzione inversa di un indirizzo IP. In pratica la maggioranza dei server SMTP (cioè gli antispam) come primo controllo verificano la presenza del record PTR nel DNS dell'IP del server che gli sta inviando posta ed in caso di assenza droppano la connessione immediatamente (es. Tiscali o Libero).
Il record PTR va impostato dal proprietario dell'indirizzo IP (quindi tipicamente l'interne provider che vi da la connessione) . Viene considerato un punto di partenza fondamentale per combattere lo SPAM perchè tipicamente i server SMTP "leciti" lo hanno impostato mentre SMTP "illeciti" che generano spam no.

SPF Record

SPF (sender policy framework) record è sempre un impostazione di DNS internet, dove dovrete creare un record di tipo TXT che identifica i server SMTP che possono inviare posta per il vostro dominio. Se il server che riceve posta riceve un email apparentemente valida, ma che non proviene da SMTP autorizzato , rifiuta la mail.

Ad esempio se i vostri server SMTP che ricevono la posta (quelli che avete registrato come record MX del vostro dominio) sono gli unici server che possono spedire posta per il vostro dominio dovete inserire un record TXT con il seguente valore:

"v=spf1 mx -all"

la sintassi seguente invece autorizza qualunque ip nel range fra 192.168.0.1 e 192.168.255.255 a spedire posta:

"v=spf1 ip4:192.168.0.1/16 -all"


A questa pagina potete trovare le definizioni del protocollo ed alcuni esempi , mentre a questa pagina potete fare un check del vostro dominio per verificare la correttezzadel record.


DKIM

La validazione degli IP address dei server SMTP autorizzati tramite SPF record purtroppo può non essere sufficente, in caso di spoofing (falsificazione) dell'ip address del server da parte di malintenzionati che potrebbero falsificare il proprio IP per fingersi autorizzati. 
Per aggirare questa possibilità possiamo ricorrere all'utilizzo di DomainKeys Identified Mail (DKIM).
Per poterla utilizzare il vostro server SMTP deve apporre una firma digitale nell'intestazione SMTP del messaggio e-mail che sarà invisibile all'utente ma che verrà letta e validata dal server ricevente tramite un record di tipo TXT nel DNS internet del vostro dominio che conterrà la chiave pubblica per validare la firma.
Ad esempio per il mio dominio ho impostato un record TXT di nome

msbiro._domainkey

contenente il valore il seguente valore :

v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4HaRa97JsN7F9Np8bHhmBj06tCiwTucGPiPG5C4bZLmbCu1P5P12fExGzEkmZUy6hd4KwVPQVWgbcFvxZTOs5iA6TzxtQe6QCr2l0EX9AYtP5ykkA3HLlRmhAkmCJTsEh/kEEdLbP3LQ78RVk+E1ZLA//BPrDikRym3/EFvfhKwIDAQAB

dove v= identifica la versione del protocollo , k= la tipologia della cifratura e p= è la chiave pubblica associata al mio dominio.

A questo link il sito contente le spefiche, mentre a questo link  potete verificare la correttezza dei vostri record.

NOTA: per poter utilizzare DKIM il vostro server SMTP che invia le email deve supportare questa tecnologia per poter aggiungere nell'intestazione la firma digitale. Nel miei casi io ho utilizzato come gateway SMTP Scrollout F1, un antispam rilasciato sotto licenza GNU GPL che gira su Debian (funziona molto bene).

DMARC

Dmarc (Domain-based Message Authentication, Reporting and Conformanceè un ulteriore record di tipo TXT che possiamo inserire nel DNS internet del nostro dominio e dice cosa fare al ricevente in caso che i controlli SPF o DKIM non vadano a buon fine.
Tramite il record dmarc potete impostare una soglia percentuale sui messaggi che possono fallire i check SPF o DKIM che possono fallire il check e dire ai server SMTP se trattare le mail che falliscono questi check come Junk (non attendibili) e magari consegnarle agli utenti marchiate, oppure se scartarle.

La feature veramente comoda di questo record è che si imposta una casella e-mail alla quale i server SMTP che ricevono i messaggi , invieranno giornalmente un report in formato XML contenente le violazioni ricevute sulla politica DMARC del vostro dominio. 

Un esempio di record DMARC è il seguente, 

host :
_dmarc 
valore:
v=DMARC1; p=quarantine; pct=1; rua=mailto:postmaster@msbiro.net

v= rappresenta la versione del protocollo
p= rappresenta la policy da applicare ovvero quarantena
pct=1 rappresenta la percentuale dei messaggi soggetta al filtraggio e 1 dice di monitorare tutti i messaggi senza imporre junk o drop 
rua= dice a quale indirizzo inviare il report XML sui messaggi che falliscono i check.

L'attivazione dle record DMARC è consigliabile farla a salire, partendo dal monitoraggio arrivando fino al 100% dei messaggi in drop.  

Il vantaggio dell'implementare questo record con il monitoraggio sta nel poter ricevere il record con le sorgenti delle e-mail che trasgrediscono le policy SPF o DKIM e cosi poter capire se dover fare delle correzioni al routing delle nostre e-mail.

A questa pagina potete trovare le specifiche generali mentre a questa un tool di verifica .

Nessun commento:

Posta un commento