Modul 4 · 4.3
SPF: kdo sme pošiljati pošto v imenu Vaše domene?
Modul 4: Zapisi za e-pošto · Čas branja: 10 minut
Cilj lekcije: Po tej lekciji boste znali prebrati zapis SPF, pravilno dodati storitev in se izogniti trem najbolj znanim napakam SPF: dvema zapisoma, +all in več kot desetim poizvedbam.
Ključni pojmi: SPF, v=spf1, mehanizem (a, mx, ip4, ip6, include), kvalifikator (+ - ~ ?), all, en sam zapis SPF, omejitev 10 poizvedb DNS, pošiljatelj ovojnice (Return-Path)
Problem: vsakdo lahko uporabi Vaše ime
E-pošta je bila zasnovana v osemdesetih letih za majhen, prijazen internet. Vsak poštni strežnik lahko pošlje sporočilo z naslovom pošiljatelja info@example.com, čeprav ta strežnik nima nikakršne zveze z example.com. Goljufi to z veseljem izkoriščajo.
SPF (Sender Policy Framework, RFC 7208) je prvi korak k preprečevanju tega. V zapisu SPF določite, kateri strežniki smejo pošiljati pošto v imenu Vaše domene. Prejemni poštni strežnik pri vsakem prejetem sporočilu preveri: ali to sporočilo prihaja s strežnika, ki je na seznamu?
Predstavljajte si to kot seznam gostov pri vratih. Vratar (prejemni poštni strežnik) seznam pridobi pri Vaši domeni in preveri, ali je obiskovalec (pošiljajoči strežnik) na njem.
Kako je videti zapis SPF?
Zapis SPF je TXT zapis na Vaši domeni, ki se začne z v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Berete ga od leve proti desni. Prejemnik pregleduje dele enega za drugim in se ustavi pri prvem, ki se ujema.
| Del | Pomen |
|---|---|
v=spf1 | To je zapis SPF. Mora biti na začetku. |
a | Strežnik(i), na katerega kaže zapis A/AAAA Vaše domene, smejo pošiljati pošto. |
mx | Strežniki iz Vaših zapisov MX smejo pošiljati pošto. |
ip4:192.0.2.25 | Ta naslov IPv4 sme pošiljati pošto. Lahko tudi obseg: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Enako za IPv6. |
include:spf.mailer.example | Vsi strežniki, ki so navedeni v zapisu SPF domene spf.mailer.example, smejo prav tako pošiljati. Tako dodate zunanjo storitev. |
~all | Vsi drugi strežniki: sumljivi. Vedno na koncu. |
Konec: ~all, -all, ?all ali +all
Pred vsakim delom je lahko znak, ki pove, kaj se zgodi, če se ujema. Pri all (ki se vedno ujema) ta znak naredi razliko:
| Konec | Ime | Pomen |
|---|---|---|
-all | fail | Drugi strežniki niso dovoljeni. Prejemniki lahko sporočilo zavrnejo. |
~all | softfail | Drugi strežniki so sumljivi. Sporočilo je navadno sprejeto, vendar pogosteje označeno kot neželena pošta. |
?all | neutral | Brez jasne izjave. Skoraj nekoristno. |
+all | pass | Vsak strežnik na svetu sme pošiljati v Vašem imenu. Nikoli ne uporabljajte. |
Če ni znaka, velja +. mx torej pomeni +mx.
Katerega izberete? ~all je varna privzeta izbira. -all je strožji in primeren, če ste prepričani, da so vsi Vaši pošiljatelji navedeni v zapisu. Če uporabljate DMARC (lekcija 4.5), potem politika DMARC na koncu določa, kaj se zgodi; veliko skrbnikov zato izbere ~all.
Napaka 1: dva zapisa SPF
Na domeno sme biti samo en zapis SPF. Če prejemnik najde dva, je rezultat napaka (permerror) in Vaš SPF sploh ne šteje. To je slabše kot brez SPF.
V praksi se to pogosto zgodi. Ponudnik e-novic ali Microsoft 365 reče "dodajte ta zapis SPF", in nenadoma se pojavi drugi zapis v=spf1 poleg starega. Rešitev: novo storitev dodajte v obstoječi zapis.
Napačno:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Pravilno:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Pozor: pri združevanju ne odstranite strežnikov, ki jih še vedno uporabljate. Če Vaša spletna stran pošilja pošto preko strežnika Vašega ponudnika gostovanja, mora ta ostati v zapisu, tudi če navadna pošta hodi preko Microsoft 365. Paket gostovanja ima pogosto že privzet SPF z elementom include ponudnika gostovanja (pri WebOké je to na primer include:webawere.nl); pustite ga, dokler Vaša spletna stran ali obrazci pošiljajo pošto preko tega strežnika.
Napaka 2: +all ali preveč širok zapis
+all na koncu, ali ogromen obseg, kot je ip4:0.0.0.0/0, pomeni, da sme pošiljati vsakdo. Takrat Vaš SPF ne ščiti več ničesar, filtri za neželeno pošto pa to vidijo kot slab znak.
Napaka 3: več kot deset poizvedb
Za preverjanje zapisa SPF mora prejemnik včasih poslati dodatne poizvedbe DNS. Vsak include, a, mx, exists, ptr in redirect stane eno poizvedbo, element include pa šteje tudi vse poizvedbe v zapisu, na katerega se sklicuje. Po RFC 7208 skupno število ne sme preseči deset. Če se to zgodi, je rezultat permerror in SPF ne uspe.
ip4 in ip6 ne stanejo nobene poizvedbe. Prav tako ne all.
Poleg tega sme biti največ dve poizvedbi "prazni" (ime, ki ne obstaja, ali brez odgovora). Element include, ki kaže na storitev, ki je že dolgo ne uporabljate več in je odstranila svoj zapis, lahko torej prav tako povzroči težave.
Če uporabljate veliko storitev, preštejte s pomočjo orodja za preverjanje SPF (lekcija 8.3) in odstranite storitve, ki jih ne uporabljate več.
Česa SPF ne naredi
SPF preverja pošiljatelja ovojnice: tehnični naslov pošiljatelja (Return-Path), ki ga poštni strežniki uporabljajo med seboj. To ni vedno isti naslov kot naslov "Od:", ki ga vidite v svojem poštnem programu. Ponudnik e-novic pogosto pošilja z lastnim Return-Path. Samo SPF torej ne prepreči vsake ponarejene pošiljateljeve identitete. Za to skrbita DKIM (lekcija 4.4) in DMARC (lekcija 4.5).
SPF se poruši tudi pri preusmeritvi: če sporočila samodejno preusmerjate na drug naslov, sporočilo pri končnem prejemniku prispe s strežnika, ki ni v Vašem zapisu SPF.
Zakaj je to pomembno
Veliki ponudniki e-pošte so postali strožji. Od februarja 2024 Gmail in Yahoo zahtevata, da ima vsak, ki pošilja pošto, vsaj SPF ali DKIM, in da ima tisti, ki pošilja veliko pošte (več kot približno 5.000 na dan), SPF, DKIM in DMARC. Microsoft od maja 2025 postavlja enako zahtevo za Outlook.com, Hotmail in Live.com. Tudi če pošiljate malo pošte, dober zapis SPF pomaga proti mapi z neželeno pošto.
V praksi: tako je videti v nadzorni plošči
V tem primeru uporabljamo DirectAdmin. V razdelku Upravljanje DNS kliknete na svinčnik ob zapisu TXT, ki se začne z v=spf1. DirectAdmin odpre pomočnika za SPF: pri Vključiti domeno vnesete domeno storitve (brez include:), pri Način izberete SoftFail-i (~all) ali Neuspešno (-all). Spodaj vidite celoten zapis. Moj WebOké ima podoben pomočnik za SPF na zavihku DNS.
Druge nadzorne plošče nimajo vedno takšnega pomočnika. Takrat zapis TXT uredite kot navadno besedilo; vsebina je popolnoma enaka.
Povzetek
- SPF je zapis TXT z
v=spf1, ki pove, kateri strežniki smejo pošiljati pošto v imenu Vaše domene. - Natanko en zapis SPF na domeno. Nova storitev? Dopolnite obstoječi zapis.
- Zaključite z
~allali-all, nikoli z+all. - Največ deset poizvedb DNS (
include,a,mx,exists,ptr,redirect),ip4/ip6se ne štejeta. - SPF gleda na pošiljatelja ovojnice; za resnično zaščito potrebujete tudi DKIM in DMARC.
Kviz
Naloga
Naloga Z4.3: iskanje zapisa SPF. Poiščite zapis SPF domene google.com (ali Vaše lastne domene). Prilepite celoten zapis in vnesite, s čim se konča (~all, -all, ?all ali +all). Pri Vaši lastni domeni naloga tudi preveri, ali imate natanko en zapis SPF.
Naloga O4.3: samostojna nastavitev v Vaši vadbeni coni. V vadbeni coni uporabljate lažno storitev; pri Vaši pravi domeni uporabite pravo vključitev, ki Vam jo poda Vaš ponudnik e-pošte (na primer include:_spf.google.com). V svoji vadbeni coni ustvarite zapis SPF, ki dovoljuje: strežnike MX cone (<code>.dnspractice.eumx), naslov 192.0.2.25 in vadbeno storitev _spf.mailsuite-demo.dnspractice.eu. Drugi strežniki so sumljivi ali nedovoljeni, zato se zapis konča z ~all ali -all.
Naloga O4.3
To nalogo opravite v svoji lastni vadbeni coni: pravi DNS coni na imenskih strežnikih WebOké, namenjeni samo Vam. Prijavite se s svojim e-poštnim naslovom. Po e-pošti boste prejeli prijavno povezavo in se nato vrnili na to lekcijo. Vaš naslov uporabljamo samo za namene tečaja.
Za nadaljnje branje
Koraki v teh člankih veljajo za nadzorne plošče WebOké; v drugih nadzornih ploščah deluje podobno.
- Priročnik DirectAdmin 5.7: Nastavitev in dopolnitev zapisa SPF
- Kako deluje zapis SPF v DNS? Zapis SPF (Sender Policy Framework) je poseben zapis TXT v DNS Vašega domena, ki določa, kateri strežniki smejo pošiljati e-pošto v imenu Vaše domene. S tem preprečite, da bi nepooblaščene osebe zlorabile Vaš domen za pošiljanje neželene ali lažne e-pošte. Ko prejemni strežnik prejme e-sporočilo, preveri zapis SPF Vašega domena v DNS. Na podlagi naslova IP pošiljatelja nato ugotovi, ali je ta strežnik v zapisu SPF naveden kot pooblaščen. Če ni, lahko prejemni strežnik e-sporočilo označi kot sumljivo ali ga celo zavrne. Primer zapisa SPF: v=spf1 include:_spf.{$domain} ~all V tem primeru: - v=spf1 pomeni, da gre za različico 1 protokola SPF. - include:_spf.{$domain} določa, da so strežniki, navedeni pri tem domenu, pooblaščeni za pošiljanje e-pošte. - ~all pomeni, da je treba e-sporočila iz drugih, nenavedenih virov obravnavati previdno (mehki neuspeh). Za pravilno delovanje je pomembno, da zapis SPF vključuje vse strežnike in storitve, ki dejansko pošiljajo e-pošto v imenu Vaše domene, na primer Vaš strežnik za spletno gostovanje, storitev za pošiljanje novic ali CRM sistem. Če zapis SPF ni pravilno nastavljen, lahko to povzroči, da Vaša e-sporočila pristanejo v mapi za neželeno pošto ali so popolnoma zavrnjena. Zapis SPF nastavite v nadzorni plošči DNS Vašega domena pri WebOké.
- Dodajanje ali sprememba zapisa SPF v DirectAdminu
- Priročnik WebOké 5.5: DNS-pomočniki: MX, SPF, DMARC, CAA in SRV
- RFC 7208 (SPF), zlasti razdelek 4.6.4 (omejitev desetih poizvedb in dveh praznih poizvedb)
