Moodul 4 · 4.3
SPF: kes tohib sinu domeeni nimel kirju saata?
Moodul 4: Kirjed e-posti jaoks · Lugemisaeg: 10 minutit
Õpieesmärk: Pärast seda tundi oskad lugeda SPF-kirjet, lisada sinna õigesti teenuse ja vältida kolme tuntumat SPF-viga: kaks kirjet, +all ja üle kümne päringu.
Põhimõisted: SPF, v=spf1, mehhanism (a, mx, ip4, ip6, include), kvalifikaator (+ - ~ ?), all, üks SPF-kirje, piirang 10 DNS-päringut, envelope-saatja (Return-Path)
Probleem: igaüks saab sinu nime kasutada
E-post mõeldi välja 1980. aastatel väikese ja sõbraliku interneti jaoks. Iga meiliserver saab saata kirja, mille saatjaks on märgitud info@example.com, isegi kui sellel serveril pole domeeniga example.com mingit pistmist. Petturid kasutavad seda rõõmuga ära.
SPF (Sender Policy Framework, RFC 7208) on esimene samm selle vältimiseks. SPF-kirjes määrad, millised serverid tohivad sinu domeeni nimel kirju saata. Vastuvõttev meiliserver kontrollib iga saabuva kirja puhul: kas see kiri tuli serverist, mis on nimekirjas?
Mõtle sellest kui külaliste nimekirjast ukse taga. Uksehoidja (vastuvõttev meiliserver) küsib nimekirja sinu domeenilt ja vaatab, kas külastaja (saatev server) on seal kirjas.
Kuidas SPF-kirje välja näeb?
SPF-kirje on TXT-kirje sinu domeenil, mis algab märgendiga v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Loed seda vasakult paremale. Vastuvõtja käib osad ükshaaval läbi ja peatub esimese sobiva kohal.
| Osa | Tähendus |
|---|---|
v=spf1 | See on SPF-kirje. Peab olema esimesel kohal. |
a | Server(id), kuhu sinu domeeni A/AAAA-kirje osutab, tohivad kirju saata. |
mx | Sinu MX-kirjetes olevad serverid tohivad kirju saata. |
ip4:192.0.2.25 | See IPv4-aadress tohib kirju saata. Võib kasutada ka vahemikku: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Sama IPv6 puhul. |
include:spf.mailer.example | Kõik serverid, mis on kirjas domeeni spf.mailer.example SPF-kirjes, tohivad samuti. Nii lisad välise teenuse. |
~all | Kõik muud serverid: kahtlased. Peab alati olema lõpus. |
Lõpp: ~all, -all, ?all või +all
Iga osa ees võib olla märk, mis ütleb, mis juhtub, kui see sobib. all puhul (mis sobib alati) teeb see märk suure vahe:
| Lõpp | Nimi | Tähendus |
|---|---|---|
-all | fail | Teised serverid ei tohi. Vastuvõtjad tohivad kirja tagasi lükata. |
~all | softfail | Teised serverid on kahtlased. Kiri võetakse enamasti vastu, kuid seda peetakse sagedamini rämpspostiks. |
?all | neutral | Seisukohta ei võeta. Peaaegu kasutu. |
+all | pass | Iga server maailmas tohib sinu nimel kirju saata. Ära kasuta kunagi. |
Kui märki ees ei ole, kehtib +. mx tähendab seega +mx.
Mida valida? ~all on turvaline vaikevalik. -all on rangem ja sobib, kui oled kindel, et kõik sinu saatjad on kirjas kirjas. Kui kasutad DMARC-i (tund 4.5), määrab lõpliku käitumise DMARC-reegel; paljud haldurid valivad siis ~all.
Viga 1: kaks SPF-kirjet
Igal domeenil tohib olla ainult üks SPF-kirje. Kui vastuvõtja leiab kaks, on tulemuseks viga (permerror) ning sinu SPF ei kehti üldse. See on hullem kui SPF-i puudumine.
See läheb praktikas sageli valesti. Uudiskirjateenus või Microsoft 365 ütleb "lisa see SPF-kirje" ja siis tekib vana kirje kõrvale järsku teine v=spf1-kirje. Lahendus: lisa uus teenus olemasolevasse kirjesse.
Vale:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Õige:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Pane tähele: kirjeid ühendades ära eemalda servereid, mida veel kasutad. Kui su veebisait saadab kirju majutuspakkuja serveri kaudu, peab see sees olema ka siis, kui tavaline meil käib Microsoft 365 kaudu. Majutuspaketil on sageli juba vaikimisi SPF koos majutuspakkuja include-ga (WebOkés on see näiteks include:webawere.nl); jäta see sisse seni, kuni su veebisait või vormid saadavad kirju selle serveri kaudu.
Viga 2: +all või liiga avar kirje
+all lõpus, või tohutu vahemik nagu ip4:0.0.0.0/0, tähendab, et kõigil on luba. Siis ei kaitse sinu SPF enam midagi ja rämpspostifiltrid näevad seda halva märgina.
Viga 3: üle kümne päringu
SPF-kirje kontrollimiseks peab vastuvõtja mõnikord tegema lisapäringuid. Iga include, a, mx, exists, ptr ja redirect maksab ühe päringu ning include arvestab ka kõik päringud kirjes, millele see viitab. RFC 7208 järgi ei tohi kogusumma ületada kümmet. Kui see juhtub, on tulemuseks permerror ja SPF ebaõnnestub.
ip4 ja ip6 ei maksa ühtegi päringut. all ka mitte.
Lisaks tohib kõige rohkem kaks päringut tulla tagasi "tühjana" (nimi, mida ei eksisteeri, või millel pole vastust). Seega võib probleeme tekitada ka include teenusele, mida sa enam ammu ei kasuta ja mis on oma kirje eemaldanud.
Kui kasutad palju teenuseid, loe need üle SPF-kontrolliriistaga (tund 8.3) ja eemalda teenused, mida enam ei kasuta.
Mida SPF ei tee
SPF kontrollib envelope-saatjat: tehnilist saatja-aadressi (Return-Path), mida meiliserverid omavahel kasutavad. See pole alati sama aadress mis "Saatja:" aadress, mida sa oma meiliprogrammis näed. Uudiskirjateenus saadab sageli oma Return-Path aadressiga. Ainult SPF ei peata seega iga võltsitud saatjat. Selleks on olemas DKIM (tund 4.4) ja DMARC (tund 4.5).
SPF läheb katki ka edastamise puhul: kui saadad kirja automaatselt edasi teisele aadressile, jõuab kiri lõppsaajani serverist, mida sinu SPF-is ei ole.
Miks see oluline on
Suured meiliteenuse pakkujad on muutunud rangemaks. Alates 2024. aasta veebruarist nõuavad Gmail ja Yahoo, et igaühel, kes kirju saadab, on vähemalt SPF või DKIM, ning et kes saadab palju kirju (rohkem kui umbes 5000 päevas), sellel on SPF, DKIM ja DMARC. Microsoft kehtestab alates 2025. aasta maist sama nõude Outlook.com, Hotmail ja Live.com jaoks. Ka kui saadad vähe kirju, aitab korralik SPF-kirje rämpspostikausta sattumise vastu.
Praktikas: nii näeb see välja haldurpaneelis
Selles näites kasutame DirectAdmin'i. DNS Administration'is klõpsa pliiatsikese ikoonil TXT-kirje juures, mis algab märgendiga v=spf1. DirectAdmin avab SPF-abilise: välja Include Domain juurde sisestad teenuse domeeni (ilma include:-ta), välja Mode juures valid SoftFail (~all) või Fail (-all). All näed kogu kirjet. Minu WebOké's on sarnane SPF-abiline DNS vahelehel.
Teistes haldurpaneelides pole alati sellist abilist olemas. Siis muudad TXT-kirjet tavalise tekstina; sisu on täpselt sama.
Kokkuvõte
- SPF on TXT-kirje märgendiga
v=spf1, mis ütleb, millised serverid tohivad sinu domeeni nimel kirju saata. - Täpselt üks SPF-kirje domeeni kohta. Uus teenus? Täienda olemasolevat kirjet.
- Lõpeta kirje märgendiga
~allvõi-all, mitte kunagi+all-ga. - Maksimaalselt kümme DNS-päringut (
include,a,mx,exists,ptr,redirect),ip4/ip6ei lähe arvesse. - SPF vaatab envelope-saatjat; tõeliseks kaitseks vajad ka DKIM-i ja DMARC-i.
Test
Ülesanne
Ülesanne Z4.3: SPF-kirje otsimine. Otsi üles domeeni google.com SPF-kirje (või oma domeeni oma). Kleebi kogu kirje ja märgi, millega see lõpeb (~all, -all, ?all või +all). Oma domeeni puhul kontrollib ülesanne ka, kas sul on täpselt üks SPF-kirje.
Ülesanne O4.3: Seadista ise oma harjutustsoonis. Harjutustsoonis kasutad väljamõeldud teenust; oma päris domeenil kasutad tegelikku include'i, mille su meiliteenuse pakkuja annab (näiteks include:_spf.google.com). Loo oma harjutustsoonis SPF-kirje, mis lubab: tsooni MX-serverid (<code>.dnspractice.eumx), aadressi 192.0.2.25 ning harjutusteenuse _spf.mailsuite-demo.dnspractice.eu. Teised serverid on kahtlased või keelatud, seega kirje lõpeb märgendiga ~all või -all.
Ülesanne O4.3
Selle ülesande teed oma harjutustsoonis: päris DNS-tsoonis WebOké nimeserverites, mis on ainult sinu jaoks. Logi sisse oma e-posti aadressiga. Saad meili teel sisselogimislingi ja jõuad siis tagasi selle tunni juurde. Kasutame su aadressi ainult kursuse jaoks.
Rohkem lugemist
Nende artiklite sammud kehtivad WebOké haldurpaneelide kohta; teistes paneelides toimib see sarnaselt.
- DirectAdmin juhend 5.7: SPF seadistamine ja täiendamine
- SPF-kirje toimimine DNS-is on lihtne: see ütleb, millised serverid tohivad sinu domeeni nimel e-kirju saata. Nii saavad vastuvõtvad serverid kontrollida, kas kiri on pärit volitatud allikast, ja vähendada võltsitud e-kirjade (spoofing) riski.
- SPF-kirje lisamine või muutmine DirectAdminis
- WebOké juhend 5.5: DNS-abimehed: MX, SPF, DMARC, CAA ja SRV
- RFC 7208 (SPF), eriti lõik 4.6.4 (kümne päringu ja kahe tühja päringu piirang)
