Article ID: 11152, created on Jan 22, 2014, last review on May 11, 2014

  • Applies to:
  • Plesk for Linux/Unix

Informazioni aggiuntive

Prima è necessario fare una query con una riga di comando fornita da libspf2:
/usr/bin/spfquery_static -ip 12.345.67.89 -sender from@mydomain.com -rcpt-to to@mydomain.com

Un dominio impostato correttamente viene stampato come segue (usando Google come esempio):
$ /usr/bin/spfquery_static -ip 66.102.13.18 -sender from@gmail.com -rcpt-to to@gmail.com
pass

spfquery: domain of gmail.com designates 66.102.13.18 as permitted sender
Received-SPF: pass (spfquery: domain of gmail.com designates 66.102.13.18 as permitted sender Received-SPF: envelope-from=from@gmail.com;

Un dominio problematico potrebbe essere simile a questo:
$ /usr/bin/spfquery_static -ip 12.345.67.89 -sender from@gmail.com -rcpt-to to@gmail.com
pass
spfquery: Failed to query MAIL-FROM
ErrorCode: (26) DNS lookup failure
Error: Temporary DNS failure for 'mydomain.com'.
EndError
(invalid)neutral
Please see http://www.openspf.org/Why?id=from%40mydomain.com&ip=12.345.67.89&receiver=spfquery : Reason: default
spfquery: 12.345.67.89 is neither permitted nor denied by domain of mydomain.com
Received-SPF: neutral (spfquery: 12.345.67.89 is neither permitted nor denied by domain of domain.com) client-ip=12.345.67.89; envelope-from=from@mydomain.com;

Per continuare a indagare, è necessario sapere che le informazioni SPF possono essere scritte in formato TXT o come record SPF dedicato. Quest'ultimo a volte riceve anche il nome di record "type99". Le informazioni SPF devono essere in almeno uno di questi formati. Se entrambi sono usati, questi record devono essere copie esatte di ciascuno. Questi record sono serviti dallo stesso server DNS che server il tuo nome di dominio.

Quindi libspf2 esegue una verifica SPF. Prima chiede al server DNS un record SPF. Se non è negato, cerca di chiedere TXT. Se entrambi i tentativi falliscono, vul dire che non c'è un SPF per questo dominio.

Per controllare il record, usare l'utility dig:
$ dig -t TXT gmail.com

; <<>> DiG 9.6.2-P2-RedHat-9.6.2-4.P2.fc11 <<>> -t TXT gmail.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: Se la macchina virtuale "%2" viene arrestata adesso, si perderanno tutti i dati non salvati.<br><br><b>ID di errore:</b> %3.39868
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;gmail.com.                     IN      TXT

;; ANSWER SECTION:
gmail.com.              300     IN      TXT     "v=spf1 redirect=_spf.google.com"

Come si può vedere qui, la riga che inizia con v=spf1 è un record SPF. gmail.com non ha un record SPF, quindi se viene richiesto mediante una query, il risultato è:
$ dig -t SPF gmail.com

; <<>> DiG 9.6.2-P2-RedHat-9.6.2-4.P2.fc11 <<>> -t TXT gmail.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: Se la macchina virtuale "%2" viene arrestata adesso, si perderanno tutti i dati non salvati.<br><br><b>ID di errore:</b> %3.10846
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;gmail.com.                     IN      SPF

;; AUTHORITY SECTION:
gmail.com.              1       IN      SOA     ns1.google.com. dns-admin.google.com. 1445323 21600 3600 1209600 300

Come si può vedere, viene invece restituito il record SOA. Se diamo ora uno sguardo al dominio problematico, quello che possiamo vedere è:
$ dig -t TXT mydomain.com
; <<>> DiG 9.6.2-P2-RedHat-9.6.2-4.P2.fc11 <<>> -t TXT mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, #14137 Unable to work with java console from SDK
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.com.             IN      TXT

;; AUTHORITY SECTION:
mydomain.com.      1       IN      SOA     ns1.mydomain.com. ns2.mydomain.com. 2006070615 10800 3600 604800 180

Non c'è un record TXT, ma escludendo questo, il resto è corretto. Verifichiamo il SPF:
$ dig -t SPF mydomain.com

; <<>> DiG 9.6.2-P2-RedHat-9.6.2-4.P2.fc11 <<>> -t SPF mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 28010
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.com.             IN      SPF

Non c'è SPF né SOA. Questo significa che il server DNS che lo sollecita non sa niente su mydomain.com. Dato che è il server DNS quello responsabile del nome di dominio, non c'è nessun'altro a cui chiedere. Pertanto, si ritiene un errore di query DNS e libspf2 lo gestisce come tale.

29d1e90fd304f01e6420fbe60f66f838 a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF