User Tools

Site Tools


doc:appunti:linux:sa:postfix_spf_check

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:postfix_spf_check [2025/12/02 13:04] – [Problema envelope_sender e From] niccolodoc:appunti:linux:sa:postfix_spf_check [2025/12/04 10:22] (current) – [Manual Testing] niccolo
Line 5: Line 5:
 Secondo le specifiche **[[https://tools.ietf.org/id/draft-ietf-spfbis-4408bis-09.html|Sender Policy Framework]]** si possono effettuare dei controlli di validità durante una sessine SMTP verificando il contenuto dei comandi **HELO/EHLO** e **MAIL FROM**. Secondo le specifiche **[[https://tools.ietf.org/id/draft-ietf-spfbis-4408bis-09.html|Sender Policy Framework]]** si possono effettuare dei controlli di validità durante una sessine SMTP verificando il contenuto dei comandi **HELO/EHLO** e **MAIL FROM**.
  
-Per implementare il check SPF su **MAIL FROM** si deve aggiungere al DNS un record di tipo **TXT** relativamente al dominio mittente, un esempio per il dominio example.org:+Per soddisfare il controllo SPF su **MAIL FROM** il provider mittente deve aggiungere al DNS un record di tipo **TXT** relativamente al dominio mittente, un esempio per example.org:
  
 <file> <file>
Line 11: Line 11:
 </file> </file>
  
-Per implementare il check SPF su **HELO/EHLO** si deve anzitutto configurare correttamente il comando HELO sul server di posta che invia i messaggi, supponendo che il comando sarà **EHLO mail.example.org** e che un record di tipo **A** sia correttamente configurato per quel nome, si deve aggiungere un record **TXT** del tipo:+Per soddisfare il check SPF su **HELO/EHLO** si deve anzitutto configurare correttamente il comando HELO sul server di posta che invia i messaggi, supponendo che il comando sarà **EHLO mail.example.org** e che un record di tipo **A** sia correttamente configurato per quel nome, si deve aggiungere un record **TXT** del tipo:
  
 <file> <file>
Line 17: Line 17:
 </file> </file>
  
-**ATTENZIONE**! Nei **record TXT** è necessario specificare **il nome esatto** del **dominio** e quello dell'**host**, inoltre il nome dell'host deve avere un corrispondente record di tipo **A** (IPv4) ed eventualmente di tipo **AAA** (IPv6). Non è possibile definire i nome dell'host con un **CNAME** poiché il software Bind non accetta che un ''CNAME'' coesista con altri record, in questo caso un ''TXT''.+**ATTENZIONE**! Nei **record TXT** è necessario specificare **il nome esatto** del **dominio** e quello dell'**host**, inoltre il nome dell'host deve avere un corrispondente record di tipo **A** (IPv4) ed eventualmente di tipo **AAAA** (IPv6). Non è possibile definire i nome dell'host con un **CNAME** poiché il software Bind non accetta che un ''CNAME'' coesista con altri record, in questo caso un ''TXT''.
  
 ===== Configurazione ===== ===== Configurazione =====
Line 55: Line 55:
 client_address=192.222.46.168 client_address=192.222.46.168
 client_name=testhost.rigacci.org client_name=testhost.rigacci.org
 +
 </code> </code>
  
-il programma risponde con qualcosa del tipo:+Questi sono i parametri che Postfix passa ad un altro programma quando esegue una **SMTP access policy delegation request**, la documentazione si trova in **[[https://www.postfix.org/SMTPD_POLICY_README.html|Postfix SMTP Access Policy Delegation]]**. 
 + 
 +**ATTENZIONE**: Il **sender** che viene passato da Postfix è il contenuto del **MAIL FROM** della sessione SMTP, **non è** l'eventuale contenuto dell'header **From:**. Infatti il controllo viene effettuato ancora prima che venga ricevuto il contenuto del messaggio con tutti gli header. Questo è un problema abbastanza importante perché un sender malevolo può forgiare il MAIL FROM in modo che sia compatibile con l'IP sorgente (la verifica SPF viene soddisfatta) e poi inserire un header **From:** a piacimento. Purtroppo i client di posta mostrano come mittente il contenuto dell'header, mentre l'originale MAIL FROM di solito è visibile solo nel sorgente del messaggio, generalmente nell'header **Return-Path:**. 
 + 
 +Per fare una verifica di coerenza fra **MAIL FROM** e header **From:** è possibile aggiungere a Postfix un controllo con **[[opendmarc|opendmarc]]**. 
 + 
 +Il programma risponde con qualcosa del tipo:
  
 <code> <code>
Line 72: Line 79:
 ===== Problema record TXT ed helo_name ===== ===== Problema record TXT ed helo_name =====
  
-**ATTENZIONE**! Per motivi non chiari il programma **policyd-spf** richiede il **record TXT** di **//helo_name//** prima di richidere quello del dominio del **//sender//**. Se tale record esiste, viene utilizzato il suo contenuto SPF per controllare l'indirizzo IP di //client_address//.+**ATTENZIONE**! Il programma è predisposto per effettuare due controlli SPF, il primo è su **HELO/EHLO**, il secondo su **MAIL FROM**, sono entrambi comandi usati durante la sessione SMTP. 
 + 
 +Per il controllo HELO/EHLO il programma **policyd-spf** richiede il **record TXT** di **//helo_name//** prima di richidere quello del dominio del **//sender//**. Se tale record esiste, viene eventualmente utilizzato il suo contenuto SPF per controllare l'indirizzo IP di //client_address//.
  
 Per questo motivo - quando si configura un server di posta - è opportuno controllare l'**//helo_name//**: se ad esso è **associato un record TXT**, questo deve includere l'indirizzo IP che verrà usato come **//client_address//**. Per questo motivo - quando si configura un server di posta - è opportuno controllare l'**//helo_name//**: se ad esso è **associato un record TXT**, questo deve includere l'indirizzo IP che verrà usato come **//client_address//**.
doc/appunti/linux/sa/postfix_spf_check.1764677049.txt.gz · Last modified: by niccolo