Modul 4 · 4.3
SPF: tko smije slati poštu u ime Vaše domene?
Modul 4: Zapisi za e-poštu · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete pročitati SPF zapis, ispravno dodati uslugu i izbjeći tri najpoznatije SPF greške: dva zapisa, +all i više od deset upita.
Ključni pojmovi: SPF, v=spf1, mehanizam (a, mx, ip4, ip6, include), kvalifikator (+ - ~ ?), all, jedan SPF zapis, ograničenje od 10 DNS upita, envelope pošiljatelj (Return-Path)
Problem: svatko može koristiti Vaše ime
E-pošta je osmišljena osamdesetih godina za mali, prijateljski internet. Svaki poslužitelj pošte može poslati e-mail s pošiljateljem info@example.com, čak i ako taj poslužitelj nema nikakve veze s example.com. Prevaranti to rado iskorištavaju.
SPF (Sender Policy Framework, RFC 7208) prvi je korak u sprječavanju toga. U SPF zapisu navodite koji poslužitelji smiju slati poštu u ime Vaše domene. Poslužitelj primatelja kod svake dolazne pošte provjerava: dolazi li ova pošta s poslužitelja koji se nalazi na popisu?
Zamislite to kao popis gostiju na vratima. Vratar (poslužitelj primatelja) traži popis od Vaše domene i provjerava je li posjetitelj (poslužitelj pošiljatelja) na njemu.
Kako izgleda SPF zapis?
SPF zapis je TXT zapis na Vašoj domeni koji počinje s v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Čitate ga slijeva nadesno. Primatelj prolazi kroz dijelove jedan po jedan i zaustavlja se kod prvog koji odgovara.
| Dio | Značenje |
|---|---|
v=spf1 | Ovo je SPF zapis. Mora biti na početku. |
a | Poslužitelj(i) na koji pokazuje A/AAAA zapis Vaše domene smiju slati poštu. |
mx | Poslužitelji iz Vaših MX zapisa smiju slati poštu. |
ip4:192.0.2.25 | Ova IPv4 adresa smije slati poštu. Moguć je i raspon: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Isto za IPv6. |
include:spf.mailer.example | Svi poslužitelji koji se nalaze u SPF zapisu domene spf.mailer.example također smiju. Tako dodajete vanjsku uslugu. |
~all | Svi ostali poslužitelji: sumnjivi. Uvijek na kraju. |
Završetak: ~all, -all, ?all ili +all
Ispred svakog dijela može stajati znak koji kazuje što se događa ako odgovara. Kod all (koji uvijek odgovara) taj znak čini razliku:
| Završetak | Naziv | Značenje |
|---|---|---|
-all | fail | Drugi poslužitelji nisu dopušteni. Primatelji smiju odbiti poštu. |
~all | softfail | Drugi poslužitelji su sumnjivi. Pošta se obično prihvaća, ali se češće smatra neželjenom (spam). |
?all | neutral | Nema izjave. Gotovo beskorisno. |
+all | pass | Svaki poslužitelj na svijetu smije slati poštu u Vaše ime. Nikada ne koristite. |
Ako znak nije naveden, vrijedi +. mx stoga znači +mx.
Koji odabrati? ~all je siguran standard. -all je stroži i dobar je ako ste sigurni da su svi Vaši pošiljatelji navedeni u zapisu. Ako koristite DMARC (lekcija 4.5), DMARC politika na kraju određuje što se događa; mnogi administratori tada odabiru ~all.
Greška 1: dva SPF zapisa
Po domeni smije postojati samo jedan SPF zapis. Ako primatelj pronađe dva, rezultat je greška (permerror) i Vaš SPF se uopće ne broji. To je gore nego da uopće nemate SPF.
To se u praksi često dogodi. Usluga newslettera ili Microsoft 365 kaže "dodajte ovaj SPF zapis", i odjednom se pored starog pojavi drugi v=spf1 zapis. Rješenje: dodajte novu uslugu u postojeći zapis.
Pogrešno:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Ispravno:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Pazite: pri spajanju ne uklanjajte poslužitelje koje još uvijek koristite. Ako Vaša web stranica šalje poštu putem poslužitelja Vaše hosting tvrtke, on mora ostati u zapisu, čak i ako Vaša obična pošta ide na Microsoft 365. Hosting paket često već ima standardni SPF s include hosting tvrtke (kod WebOké je to primjerice include:webawere.nl); ostavite ga dok Vaša web stranica ili obrasci šalju poštu putem tog poslužitelja.
Greška 2: +all ili preopćenit zapis
+all na kraju, ili ogroman raspon poput ip4:0.0.0.0/0, znači da smije svatko. Tada Vaš SPF više ništa ne štiti, a filtri neželjene pošte to vide kao loš znak.
Greška 3: više od deset upita
Za provjeru SPF zapisa primatelj ponekad mora postaviti dodatne DNS upite. Svaki include, a, mx, exists, ptr i redirect znači jedan upit, a include uračunava i sve upite u zapisu na koji upućuje. Prema RFC 7208 ukupan broj ne smije prijeći deset. Ako se to dogodi, rezultat je permerror i SPF ne uspijeva.
ip4 i ip6 ne koštaju upit. all također ne.
Osim toga, najviše dva upita smiju vratiti "prazno" (naziv koji ne postoji ili nema odgovor). Dakle, include prema usluzi koju više odavno ne koristite i koja je uklonila svoj zapis također može prouzročiti probleme.
Ako koristite mnogo usluga, prebrojite ih alatom za provjeru SPF-a (lekcija 8.3) i uklonite usluge koje više ne koristite.
Što SPF ne radi
SPF provjerava envelope pošiljatelja: tehničku adresu pošiljatelja (Return-Path) koju poslužitelji pošte međusobno koriste. To nije uvijek ista adresa kao "Od:" adresa koju vidite u svom programu za e-poštu. Usluga newslettera često šalje s vlastitim Return-Path-om. Sam SPF stoga ne zaustavlja svaki lažirani pošiljatelj. Za to postoje DKIM (lekcija 4.4) i DMARC (lekcija 4.5).
SPF se također "kvari" kod preusmjeravanja: ako automatski preusmjeravate poštu na drugu adresu, pošta kod krajnjeg primatelja stiže s poslužitelja koji nije naveden u Vašem SPF-u.
Zašto je to važno
Veliki pružatelji usluga e-pošte postali su stroži. Od veljače 2024. Gmail i Yahoo zahtijevaju da svatko tko šalje poštu ima barem SPF ili DKIM, te da tko šalje puno pošte (više od otprilike 5.000 dnevno) ima SPF, DKIM i DMARC. Microsoft od svibnja 2025. postavlja isti zahtjev za Outlook.com, Hotmail i Live.com. Čak i ako šaljete malo pošte, dobar SPF zapis pomaže protiv završavanja u mapi neželjene pošte.
U praksi: ovako izgleda u panelu
U ovom primjeru koristimo DirectAdmin. U DNS Administration kliknete na olovku iza TXT zapisa koji počinje s v=spf1. DirectAdmin otvara SPF pomoćnik: kod Include Domain upisujete domenu usluge (bez include:), kod Mode birate SoftFail (~all) ili Fail (-all). Na dnu vidite cijeli zapis. Moj WebOké ima sličan SPF pomoćnik na kartici DNS.
Drugi paneli nemaju uvijek takav pomoćnik. Tada TXT zapis uređujete kao običan tekst; sadržaj je potpuno isti.
Sažetak
- SPF je TXT zapis s
v=spf1koji kazuje koji poslužitelji smiju slati poštu u ime Vaše domene. - Točno jedan SPF zapis po domeni. Nova usluga? Dopunite postojeći zapis.
- Završite s
~allili-all, nikada s+all. - Najviše deset DNS upita (
include,a,mx,exists,ptr,redirect),ip4/ip6se ne broje. - SPF gleda envelope pošiljatelja; za stvarnu zaštitu trebate i DKIM i DMARC.
Kviz
Zadatak
Zadatak Z4.3: Pronalaženje SPF zapisa. Pronađite SPF zapis domene google.com (ili svoje vlastite domene). Zalijepite cijeli zapis i upišite čime završava (~all, -all, ?all ili +all). Kod vlastite domene zadatak također provjerava imate li točno jedan SPF zapis.
Zadatak O4.3: Samostalno postavljanje u Vašoj zoni za vježbu. U zoni za vježbu koristite lažnu uslugu; kod svoje prave domene koristite stvarni include koji navodi Vaš pružatelj usluge e-pošte (primjerice include:_spf.google.com). U svojoj zoni za vježbu napravite SPF zapis koji dopušta: MX poslužitelje zone (<code>.dnspractice.eumx), adresu 192.0.2.25 i uslugu za vježbu _spf.mailsuite-demo.dnspractice.eu. Drugi poslužitelji su sumnjivi ili nisu dopušteni, pa zapis završava s ~all ili -all.
Zadatak O4.3
Ovaj zadatak izvodite u svojoj vlastitoj zoni za vježbu: pravoj DNS zoni na poslužiteljima imena tvrtke WebOké, isključivo za Vas. Prijavite se svojom e-mail adresom. Dobit ćete poveznicu za prijavu putem e-pošte i nakon toga se vratiti na ovu lekciju. Vašu adresu koristimo samo za potrebe tečaja.
Daljnje čitanje
Koraci u ovim člancima vrijede za panele WebOké; u drugim panelima postupak je sličan.
- DirectAdmin priručnik 5.7: SPF postavljanje i dopunjavanje
- Kako funkcionira SPF zapis u DNS-u?
- Dodavanje ili promjena SPF zapisa u DirectAdminu
- Priručnik za WebOké 5.5: DNS pomoćnici: MX, SPF, DMARC, CAA i SRV
- RFC 7208 (SPF), posebice odlomak 4.6.4 (ograničenje od deset upita i dva prazna upita)
