Τι είναι τα SPF Records.
Τα SPF records (Sender Policy Framework) είναι μια ειδική κατηγορία εγγραφών στην ζώνη ενός domain με την οποία μπορείτε να δηλώσετε από ποιους smtp server φεύγουν τα e-mail σας.
Ας πούμε ότι έχετε το: domainmou.gr και κάτω από αυτό έχετε “ανοίξει” μερικά e-mail. πχ το info@domainmou.gr Πολλές φορές μπορεί να έχετε παρατηρήσει ότι λαμβάνετε κάποια ανεπιθύμητα e-mails από τον εαυτό σας προς εσάς. Αυτό γίνεται γιατί οι επίδοξοι spammers ορίζουν σαν αποστολέα εσάς τον ίδιο, ώστε να σας δυσκολέψουν στην διαχείριση των spam mail που σας έρχονται. Φανταστείτε απλά ότι είναι πολύ δύσκολο να ορίσετε π.χ. το δικό σας e-mail σε μια black list ώστε να πηγαίνουν αυτόματα τα e-mail από εσάς στο Junk Folder.
Πως λειτουργεί τo SPF
Όταν ένας χρήστης (αποστολέας) στέλνει (βήμα 1) ένα e-mail σε έναν παραλήπτη γίνεται ο εξής έλεγχος: Ο Mail Server εισερχόμενης αλληλογραφίας (βήμα 2) του παραλήπτη κατά την διαδικασία παραλαβής του e-mail, ρωτάει τον DNS του (βήμα 3) αν η ip από όπου στάλθηκε το e-mail συμπίπτει με μια από τις ips που αναλύονται από τις SPF εγγραφές του domain του αποστολέα .
Γίνεται λοιπόν ο έλεγχος (βήμα 4) ο οποίος δίνει τέσσερα πιθανά αποτελέσματα στην μεταβλητή “Received-SPF” στο header του e-mail:
Οι πιθανές τιμές είναι οι: a) pass b) neutral c) softfail και d) fail.
Ανάλογα με τις ρυθμίσεις του Inbound Server το e-mail, ή γίνεται reject, ή περνάει από περαιτέρω έλεγχο από άλλα software που μπορεί να τρέχουν στον ίδιο server πχ Spamassassin αφού τώρα έχει σηματοδοτηθεί κατάλληλα, ή παραδίδεται στον αποστολέα (βήμα 5) για να φιλτραριστεί από εφαρμογές στο pc του χρήστη πχ AntiSpam εφαρμογές.
Πως ορίζω τα SPF records
Έτσι λοιπόν εάν είστε κάτοχος και διαχειριστής ενός domain, πέραν από τις υπόλοιπες εγγραφές που θα κάνετε για την λειτουργία του, καλό θα ήταν να ορίσετε και τα SPF record.
Μια ολοκληρωμένη εγγραφή SPF στην dns ζώνη είναι μια ΤΧΤ εγγραφή, με text της μορφής v=spf1 [[pre] type ] … [mod] και τελικά μοιάζει κάπως έτσι:
domainmou.gr 3600 IN TXT “v=spf1 ip4:124.212.34.28 -all”
Ουσιαστικά σε μια τέτοια εγγραφή δηλώνουμε από ποιον ή ποιούς mail server φεύγουν τα e-mail όλων των λογαριασμών που ανήκουν στο domain μας.
Ας δούμε μερικά παραδείγματα:
Εάν θέλουμε να δηλώσουμε ότι τα e-mail μας φεύγουν μονάχα από ένα mail server (smtp) που “ακούει” στην διεύθυνση 124.212.34.28 τότε η εγγραφή μας θα πρέπει να είναι:
v=spf1 ip4:124.212.34.28 -all (το -all δηλώνει ότι από καμία άλλη ip δεν φεύγουν τα e-mail μας)
Εάν θέλουμε να δηλώσουμε ότι τα e-mail μας φεύγουν μονάχα από τους mail servers για τους οποίους έχουμε κάνει μια ΜΧ εγγραφή στο domain μας τότε η εγγραφή μας θα είναι:
v=spf1 mx -all
ενώ εάν θέλουμε απλά να δηλώσουμε συγκεκριμένα έναν από τους server με MX εγγραφή τότε θα γράψουμε:
v=spf1 mx:domainmou.gr -all εάν όντως έχουμε μια εγγραφή MX με domainmou.gr
Ας κάνουμε μια παρατήρηση εδώ: Βλέπετε ότι στο τέλος γράψαμε “-all“. Αυτό “–” σημαίνει ότι: οτιδήποτε άλλο εξαιρείται. Θα μπορούσαμε να βάλουμε τον χαρακτήρα “~” αλλά τότε αφενός αφήνουμε περιθώρια στον κανόνα να πούμε ότι δεν είναι μονάχα απαραίτητο να φεύγουν τα e-mail από όλα τα προηγούμενα που έχουμε δηλώσει, αφετέρου έχουμε την δυνατότητα να μην περάσουμε τον έλεγχο με “pass” αλλά με “neutral” δηλαδή με “ουδέτερο”
Τώρα μπορούμε να κάνουμε και συνδυασμούς των παραπάνω δηλαδή να πούμε ότι τα domain μας φεύγουν από:
όλους τους server που έχουμε δηλώσει με ΜΧ server και (βάζωντας “+“, το οποίο είναι default) από μια ακόμα συγκεκριμένη ip,την 124.212.34.28 και μόνο από αυτά. Τότε θα είχαμε
v=spf1 +mx +ip4:124.212.34.28 -all
Υπάρχουν επίσης και άλλες επιλογές όπως το να ορίσουμε ipv6 αλλά και να ορίσουμε ptr. Με μια προσθήκη ptr μπορούμε να δηλώσουμε ότι τα mail μας μπορούν να φύγουν από τον server εκείνο για τον οποίο υπάρχει η συγκεκριμένη reverse dns εγγραφή. Πχ:
v=spf1 mx ptr ip4:124.212.34.28 ptr:allodomain.gr -all
το παραπάνω υποδηλώνει ότι τα email θα φεύγουν ή από κάποιον από όλους τους mail server για τους οποίους υπάρχουν mx εγγραφές, ή από την ip 124.212.34.28 αλλά και από την ip που επιλύεται από την ptr εγγραφή του allodomain.gr
Πρόσθετα μπορούμε να χρησιμοποιήσουμε και την επιλογή “a” όπου μαζί με την “mx” είναι και πιο ασφαλής ρύθμιση πχ
v=spf1 a mx -all
το παραπάνω δηλώνει ότι τα mail μας φεύγουν μόνο από server με ip που υπάρχουν στις εγγραφές ζώνης τύπου “Α” και “MX” του domain μας
Όλα τα παραπάνω λειτουργούν άψογα όταν χρησιμοποιείτε τους smtp των δικών σας domain για να στείλετε τα e-mail σας. Πολλές φορές όμως στέλνουμε τα mail μας από τον smtp του ISP με τον οποίο συνδεόμαστε στο διαδίκτυο, οπότε σε αυτήν την περίπτωση μπορούμε να προσθέσουμε π.χ. την ip του smtp του provider μας, αλλά έτσι δεν αποκλείουμε τους spammer που στέλνουν την “πραμάτεια” τους από τον isp που χρησιμοποιούμε και εμείς. Βέβαια οι Ελληνικοί isp έχουν δικλίδες ασφαλείας και διάφορα όρια τα οποία αποτρέπουν το spamming από τους συνδρομητές τους ωστόσο υπάρχει και η εκδοχή να τους αναφέρετε στον ISP σας και να απαλλαγεί όλοι οι κοινότητα από αυτούς.
για την περίπτωση που στέλνεται και e-mail από τον provider που συνδέεστε η εγγραφή θα είχε την παρακάτω μορφή:
v=spf1 a mx a:smtp.yourisp.com -all
Χρήσιμα Εργαλεία και Documentation για τα SPF Records
http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/
http://www.kitterman.com/spf/validate.html
http://www.zytrax.com/books/dns/ch9/spf.html
και φυσικά το http://www.openspf.net/ και το http://www.openspf.org/
Tips & Tricks
- Στο MsOutlook μπορείτε να ανιχνεύσετε την τιμή του Received-SPF μόνο μέσα από ένα Rule
Θα δεχόμουν ευχαρίστως παρατηρήσεις, και προσθήκες από όποιον φίλο επιθυμεί να αφήσει σχόλιο
Πολύ ωραία παρουσίαση
Μπράβο,
με βοήθησες πολύ. Είχε γίνει spoofing στα email μου.
OK, Αλλά αν το ντομεϊν μου δεν είναι ο τόπος από όπου ”φεύγουν” τα μηνύματα, αλλά είναι η ΧΟΛ ή το ΤΖΙμέϊλ,
πώς κάνω τη διαδικασία;
Εννοείς ότι τα διώχνεις από τον smtp.hol.gr ? Εάν ναι τότε βάλε: v=spf1 a mx a:smtp.hol.gr -all
Κατόπιν πήγαινε http://www.kitterman.com/spf/validate.html για να τεστάρεις εάν οι ρυθμίσεις σου είναι σωστές.
Και αν είναι απο το Hotmail?