Ενότητα 4 · 4.3
SPF: ποιος επιτρέπεται να στέλνει email εκ μέρους του domain σας;
Ενότητα 4: Εγγραφές για email · Χρόνος ανάγνωσης: 10 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα θα μπορείτε να διαβάσετε μια εγγραφή SPF, να προσθέσετε σωστά μια υπηρεσία και να αποφύγετε τα τρία πιο γνωστά λάθη SPF: δύο εγγραφές, +all και περισσότερες από δέκα αναζητήσεις.
Βασικές έννοιες: SPF, v=spf1, μηχανισμός (a, mx, ip4, ip6, include), προσδιοριστικό (+ - ~ ?), all, μία εγγραφή SPF, όριο 10 αναζητήσεων DNS, αποστολέας φακέλου (Return-Path)
Το πρόβλημα: ο καθένας μπορεί να χρησιμοποιήσει το όνομά σας
Το email σχεδιάστηκε τη δεκαετία του 1980 για ένα μικρό, φιλικό internet. Κάθε mailserver μπορεί να στείλει ένα email με αποστολέα info@example.com, ακόμα και αν αυτός ο server δεν έχει καμία σχέση με το example.com. Οι απατεώνες εκμεταλλεύονται αυτό με μεγάλη ευχαρίστηση.
Το SPF (Sender Policy Framework, RFC 7208) είναι ένα πρώτο βήμα για να αποτραπεί αυτό. Σε μια εγγραφή SPF καθορίζετε ποιοι servers επιτρέπεται να στέλνουν email εκ μέρους του domain σας. Ένας mailserver που λαμβάνει email ελέγχει σε κάθε εισερχόμενο μήνυμα: προέρχεται αυτό το email από έναν server που βρίσκεται στη λίστα;
Σκεφτείτε το σαν μια λίστα καλεσμένων σε μια πόρτα. Ο θυρωρός (ο mailserver που λαμβάνει το μήνυμα) ζητάει τη λίστα από το domain σας και ελέγχει αν ο επισκέπτης (ο server αποστολής) βρίσκεται σε αυτήν.
Πώς μοιάζει μια εγγραφή SPF;
Μια εγγραφή SPF είναι μια εγγραφή TXT στο domain σας που ξεκινά με v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Τη διαβάζετε από αριστερά προς τα δεξιά. Ο παραλήπτης εξετάζει τα στοιχεία ένα προς ένα και σταματά στο πρώτο που ταιριάζει.
| Στοιχείο | Σημασία |
|---|---|
v=spf1 | Αυτή είναι μια εγγραφή SPF. Πρέπει να βρίσκεται στην αρχή. |
a | Ο server (ή οι servers) στον οποίο δείχνει η εγγραφή A/AAAA του domain σας επιτρέπεται να στέλνει email. |
mx | Οι servers από τις εγγραφές MX σας επιτρέπεται να στέλνουν email. |
ip4:192.0.2.25 | Αυτή η διεύθυνση IPv4 επιτρέπεται να στέλνει email. Μπορεί επίσης να είναι εύρος: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Το ίδιο για IPv6. |
include:spf.mailer.example | Όλοι οι servers που αναφέρονται στην εγγραφή SPF του spf.mailer.example επιτρέπονται επίσης. Έτσι προσθέτετε μια εξωτερική υπηρεσία. |
~all | Όλοι οι άλλοι servers: ύποπτοι. Βρίσκεται πάντα στο τέλος. |
Το τέλος: ~all, -all, ?all ή +all
Πριν από κάθε στοιχείο μπορεί να υπάρχει ένα σύμβολο που δηλώνει τι συμβαίνει όταν αυτό ταιριάζει. Στο all (που ταιριάζει πάντα) αυτό το σύμβολο κάνει τη διαφορά:
| Τέλος | Όνομα | Σημασία |
|---|---|---|
-all | fail | Άλλοι servers δεν επιτρέπονται. Οι παραλήπτες μπορούν να απορρίψουν το email. |
~all | softfail | Άλλοι servers είναι ύποπτοι. Το email συνήθως γίνεται δεκτό, αλλά συχνότερα θεωρείται spam. |
?all | neutral | Καμία δήλωση. Σχεδόν άχρηστο. |
+all | pass | Κάθε server στον κόσμο επιτρέπεται να στέλνει email εκ μέρους σας. Ποτέ μην το χρησιμοποιείτε. |
Αν δεν υπάρχει σύμβολο, ισχύει το +. Το mx σημαίνει δηλαδή +mx.
Ποιο να επιλέξετε; Το ~all είναι μια ασφαλής προεπιλογή. Το -all είναι αυστηρότερο και κατάλληλο όταν είστε σίγουροι ότι όλοι οι αποστολείς σας βρίσκονται στην εγγραφή. Αν χρησιμοποιείτε DMARC (μάθημα 4.5), τότε η πολιτική DMARC καθορίζει τελικά τι συμβαίνει· πολλοί διαχειριστές επιλέγουν τότε ~all.
Λάθος 1: δύο εγγραφές SPF
Μπορεί να υπάρχει μόνο μία εγγραφή SPF ανά domain. Αν ο παραλήπτης βρει δύο, το αποτέλεσμα είναι σφάλμα (permerror) και το SPF σας δεν μετράει καθόλου. Αυτό είναι χειρότερο από το να μην έχετε καθόλου SPF.
Αυτό συμβαίνει συχνά στην πράξη. Μια υπηρεσία newsletter ή το Microsoft 365 λέει «προσθέστε αυτή την εγγραφή SPF», και τότε ξαφνικά εμφανίζεται μια δεύτερη εγγραφή v=spf1 δίπλα στην παλιά. Η λύση: προσθέστε τη νέα υπηρεσία στην υπάρχουσα εγγραφή.
Λάθος:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Σωστό:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Προσοχή: όταν συνενώνετε, μην αφαιρείτε τους servers που εξακολουθείτε να χρησιμοποιείτε. Αν ο ιστότοπός σας στέλνει email μέσω του server της εταιρείας hosting σας, αυτός πρέπει να παραμείνει στην εγγραφή, ακόμα και αν το κανονικό σας email πηγαίνει στο Microsoft 365. Ένα πακέτο hosting έχει συχνά ήδη ένα προεπιλεγμένο SPF με ένα include της εταιρείας hosting (στο WebOké αυτό είναι για παράδειγμα include:webawere.nl)· αφήστε το όπως είναι όσο ο ιστότοπός σας ή οι φόρμες σας στέλνουν email μέσω αυτού του server.
Λάθος 2: +all ή μια πολύ ευρεία εγγραφή
Το +all στο τέλος, ή ένα τεράστιο εύρος όπως ip4:0.0.0.0/0, σημαίνει ότι επιτρέπεται στον καθένα. Τότε το SPF σας δεν προστατεύει πλέον τίποτα, και τα φίλτρα spam το θεωρούν κακό σημάδι.
Λάθος 3: περισσότερες από δέκα αναζητήσεις
Για να ελέγξει μια εγγραφή SPF, ο παραλήπτης μπορεί να χρειαστεί να κάνει επιπλέον ερωτήματα DNS. Κάθε include, a, mx, exists, ptr και redirect κοστίζει μία αναζήτηση, και ένα include προσμετρά επίσης όλες τις αναζητήσεις της εγγραφής στην οποία παραπέμπει. Σύμφωνα με το RFC 7208, το σύνολο δεν επιτρέπεται να υπερβαίνει τις δέκα. Αν ξεπεραστεί, το αποτέλεσμα είναι permerror και το SPF αποτυγχάνει.
Τα ip4 και ip6 δεν κοστίζουν καμία αναζήτηση. Ούτε το all.
Επιπλέον, το πολύ δύο αναζητήσεις επιτρέπεται να επιστρέφουν «κενές» (ένα όνομα που δεν υπάρχει ή δεν έχει απάντηση). Ένα include προς μια υπηρεσία που δεν χρησιμοποιείτε πλέον εδώ και καιρό και έχει αφαιρέσει την εγγραφή της, μπορεί επομένως επίσης να προκαλέσει προβλήματα.
Αν χρησιμοποιείτε πολλές υπηρεσίες, μετρήστε τις αναζητήσεις με ένα εργαλείο ελέγχου SPF (μάθημα 8.3) και αφαιρέστε υπηρεσίες που δεν χρησιμοποιείτε πλέον.
Τι δεν κάνει το SPF
Το SPF ελέγχει τον αποστολέα φακέλου (envelope sender): τη τεχνική διεύθυνση αποστολέα (Return-Path) που χρησιμοποιούν οι mailservers μεταξύ τους. Αυτή δεν είναι πάντα η ίδια διεύθυνση με το πεδίο «Από:» που βλέπετε στο πρόγραμμα email σας. Μια υπηρεσία newsletter συχνά στέλνει με δικό της Return-Path. Το SPF από μόνο του δεν σταματά επομένως κάθε πλαστογραφημένο αποστολέα. Για αυτό υπάρχουν το DKIM (μάθημα 4.4) και το DMARC (μάθημα 4.5).
Το SPF επίσης αστοχεί κατά την ανακατεύθυνση: αν στέλνετε αυτόματα email σε άλλη διεύθυνση, το email φτάνει στον τελικό παραλήπτη από έναν server που δεν βρίσκεται στο SPF σας.
Γιατί έχει σημασία
Οι μεγάλοι πάροχοι email έχουν γίνει αυστηρότεροι. Από τον Φεβρουάριο του 2024, το Gmail και το Yahoo απαιτούν από όλους όσοι στέλνουν email να έχουν τουλάχιστον SPF ή DKIM, και όσοι στέλνουν μεγάλο όγκο email (πάνω από περίπου 5.000 την ημέρα) να έχουν SPF, DKIM και DMARC. Η Microsoft θέτει από τον Μάιο του 2025 την ίδια απαίτηση για τα Outlook.com, Hotmail και Live.com. Ακόμα και αν στέλνετε λίγα email, μια σωστή εγγραφή SPF βοηθά ενάντια στον φάκελο ανεπιθύμητων.
Στην πράξη: έτσι φαίνεται σε ένα πίνακα ελέγχου
Σε αυτό το παράδειγμα χρησιμοποιούμε το DirectAdmin. Στο DNS Administration κάνετε κλικ στο μολύβι δίπλα στην εγγραφή TXT που ξεκινά με v=spf1. Το DirectAdmin ανοίγει έναν βοηθό SPF: στο Include Domain συμπληρώνετε το domain της υπηρεσίας (χωρίς το include:), στο Mode επιλέγετε SoftFail (~all) ή Fail (-all). Στο κάτω μέρος βλέπετε ολόκληρη την εγγραφή. Το Το WebOké μου διαθέτει παρόμοιο βοηθό SPF στην καρτέλα DNS.
Άλλοι πίνακες ελέγχου δεν διαθέτουν πάντα τέτοιο βοηθό. Τότε επεξεργάζεστε την εγγραφή TXT ως απλό κείμενο· το περιεχόμενο είναι ακριβώς το ίδιο.
Σύνοψη
- Το SPF είναι μια εγγραφή TXT με
v=spf1που δηλώνει ποιοι servers επιτρέπεται να στέλνουν email εκ μέρους του domain σας. - Ακριβώς μία εγγραφή SPF ανά domain. Νέα υπηρεσία; Συμπληρώστε την υπάρχουσα εγγραφή.
- Τελειώστε με
~allή-all, ποτέ με+all. - Το πολύ δέκα αναζητήσεις DNS (
include,a,mx,exists,ptr,redirect)· ταip4/ip6δεν προσμετρώνται. - Το SPF εξετάζει τον αποστολέα φακέλου· για πραγματική προστασία χρειάζεστε επίσης DKIM και DMARC.
Κουίζ
Άσκηση
Άσκηση Z4.3: Αναζήτηση SPF. Αναζητήστε την εγγραφή SPF του google.com (ή του δικού σας domain). Επικολλήστε την πλήρη εγγραφή και συμπληρώστε με τι τελειώνει (~all, -all, ?all ή +all). Στην περίπτωση του δικού σας domain, η άσκηση ελέγχει επίσης αν έχετε ακριβώς μία εγγραφή SPF.
Άσκηση O4.3: Ρύθμιση στη ζώνη εξάσκησής σας. Στη ζώνη εξάσκησης χρησιμοποιείτε μια πλασματική υπηρεσία· στο πραγματικό σας domain χρησιμοποιείτε το πραγματικό include που σας δίνει ο πάροχος email σας (για παράδειγμα include:_spf.google.com). Δημιουργήστε στη ζώνη εξάσκησής σας μια εγγραφή SPF που επιτρέπει: τους servers MX της ζώνης (<code>.dnspractice.eumx), τη διεύθυνση 192.0.2.25 και την υπηρεσία εξάσκησης _spf.mailsuite-demo.dnspractice.eu. Άλλοι servers είναι ύποπτοι ή δεν επιτρέπονται, οπότε η εγγραφή τελειώνει σε ~all ή -all.
Άσκηση O4.3
Αυτή την άσκηση την κάνετε στη δική σας ζώνη εξάσκησης: μια πραγματική ζώνη DNS στους nameservers του WebOké, μόνο για εσάς. Εγγραφείτε με το email σας. Θα λάβετε έναν σύνδεσμο σύνδεσης μέσω email και θα επιστρέψετε στη συνέχεια σε αυτό το μάθημα. Χρησιμοποιούμε τη διεύθυνσή σας μόνο για το μάθημα.
Περαιτέρω ανάγνωση
Τα βήματα σε αυτά τα άρθρα ισχύουν για τους πίνακες ελέγχου του WebOké· σε άλλους πίνακες ελέγχου η διαδικασία είναι παρόμοια.
- Εγχειρίδιο DirectAdmin 5.7: SPF ρύθμιση και συμπλήρωση
- Πώς λειτουργεί η εγγραφή SPF στο DNS;
- Προσθήκη ή αλλαγή εγγραφής SPF στο DirectAdmin
- Εγχειρίδιο WebOké 5.5: DNS βοηθήματα: MX, SPF, DMARC, CAA και SRV
- RFC 7208 (SPF), ιδίως η παράγραφος 4.6.4 (όριο δέκα αναζητήσεων και δύο κενών αναζητήσεων)
