Moduuli 4 · 4.3
SPF: kuka saa lähettää sähköpostia verkkotunnuksesi puolesta?
Moduuli 4: Sähköpostin tietueet · Lukuaika: 10 minuuttia
Oppitunnin tavoite: Tämän oppitunnin jälkeen osaat lukea SPF-tietueen, lisätä siihen palvelun oikein ja välttää kolme tunnetuinta SPF-virhettä: kaksi tietuetta, +all ja yli kymmenen hakua.
Keskeiset käsitteet: SPF, v=spf1, mekanismi (a, mx, ip4, ip6, include), tunniste (+ - ~ ?), all, yksi SPF-tietue, raja 10 DNS-hakua, envelope-lähettäjä (Return-Path)
Ongelma: kuka tahansa voi käyttää nimeäsi
Sähköposti keksittiin 1980-luvulla pientä, ystävällistä internetiä varten. Mikä tahansa postipalvelin voi lähettää viestin lähettäjänä info@example.com, vaikka palvelimella ei olisi mitään tekemistä verkkotunnuksen example.com kanssa. Huijarit käyttävät tätä mielellään hyväkseen.
SPF (Sender Policy Framework, RFC 7208) on ensimmäinen askel tämän estämiseksi. SPF-tietueessa määrität, mitkä palvelimet saavat lähettää sähköpostia verkkotunnuksesi puolesta. Vastaanottava postipalvelin tarkistaa jokaisen saapuvan viestin kohdalla: tuleeko tämä viesti palvelimelta, joka on listalla?
Ajattele sitä vieraslistana oven luona. Portieeri (vastaanottava postipalvelin) kysyy listaa verkkotunnukseltasi ja tarkistaa, onko vierailija (lähettävä palvelin) listalla.
Miltä SPF-tietue näyttää?
SPF-tietue on TXT-tietue verkkotunnuksessasi, joka alkaa merkinnällä v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Sen lukee vasemmalta oikealle. Vastaanottaja käy osat läpi yksi kerrallaan ja pysähtyy ensimmäiseen, joka täsmää.
| Osa | Merkitys |
|---|---|
v=spf1 | Tämä on SPF-tietue. Pitää olla ensimmäisenä. |
a | Palvelimet, joihin verkkotunnuksesi A/AAAA-tietue osoittaa, saavat lähettää sähköpostia. |
mx | MX-tietueissasi mainitut palvelimet saavat lähettää sähköpostia. |
ip4:192.0.2.25 | Tämä IPv4-osoite saa lähettää sähköpostia. Myös osoitealue käy: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Sama IPv6:lle. |
include:spf.mailer.example | Kaikki palvelimet, jotka on mainittu verkkotunnuksen spf.mailer.example SPF-tietueessa, saavat myös lähettää. Näin lisäät ulkoisen palvelun. |
~all | Kaikki muut palvelimet: epäilyttäviä. Tulee aina lopussa. |
Loppu: ~all, -all, ?all tai +all
Jokaisen osan edessä voi olla merkki, joka kertoo mitä tapahtuu, jos osa täsmää. Kohdassa all (joka täsmää aina) tämä merkki ratkaisee asian:
| Loppu | Nimi | Merkitys |
|---|---|---|
-all | fail | Muut palvelimet eivät saa lähettää. Vastaanottajat saavat hylätä viestin. |
~all | softfail | Muut palvelimet ovat epäilyttäviä. Viesti yleensä hyväksytään, mutta se tulkitaan useammin roskapostiksi. |
?all | neutral | Ei kannanottoa. Lähes hyödytön. |
+all | pass | Kuka tahansa palvelin maailmassa saa lähettää puolestasi. Älä käytä koskaan. |
Jos merkkiä ei ole, pätee +. mx tarkoittaa siis +mx.
Kumman valitset? ~all on turvallinen oletus. -all on tiukempi ja toimii hyvin, jos olet varma, että kaikki lähettäjäsi ovat tietueessa. Jos käytät DMARC:ia (oppitunti 4.5), DMARC-käytäntö määrää lopulta mitä tapahtuu; moni ylläpitäjä valitsee silloin ~all.
Virhe 1: kaksi SPF-tietuetta
Jokaisella verkkotunnuksella saa olla vain yksi SPF-tietue. Jos vastaanottaja löytää kaksi, tuloksena on virhe (permerror) eikä SPF:äsi oteta huomioon lainkaan. Se on pahempi tilanne kuin se, ettei SPF:ää olisi lainkaan.
Tämä menee käytännössä usein pieleen. Uutiskirjepalvelu tai Microsoft 365 sanoo "lisää tämä SPF-tietue", ja yhtäkkiä vanhan rinnalle ilmestyy toinen v=spf1-tietue. Ratkaisu: lisää uusi palvelu olemassa olevaan tietueeseen.
Väärin:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Oikein:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Huomaa: kun yhdistät tietueet, älä poista palvelimia, joita vielä käytät. Jos verkkosivustosi lähettää sähköpostia hostingyrityksesi palvelimen kautta, se pitää jättää tietueeseen, vaikka tavallinen sähköpostisi kulkisi Microsoft 365:n kautta. Hostingpaketissa on usein jo valmiiksi perus-SPF, jossa on hostingyrityksen include (WebOkéssa se on esimerkiksi include:webawere.nl); jätä se paikalleen niin kauan kuin verkkosivustosi tai lomakkeesi lähettävät sähköpostia sen palvelimen kautta.
Virhe 2: +all tai liian avoin tietue
+all lopussa, tai valtava alue kuten ip4:0.0.0.0/0, tarkoittaa, että kuka tahansa saa lähettää. Silloin SPF ei suojaa enää mitään, ja roskapostisuodattimet pitävät sitä huonona merkkinä.
Virhe 3: yli kymmenen hakua
SPF-tietueen tarkistamiseksi vastaanottajan pitää joskus tehdä lisää DNS-kyselyitä. Jokainen include, a, mx, exists, ptr ja redirect maksaa yhden haun, ja include laskee mukaan myös kaikki haut tietueessa, johon se viittaa. RFC 7208:n mukaan kokonaismäärä ei saa ylittää kymmentä. Jos raja ylittyy, tuloksena on permerror ja SPF epäonnistuu.
ip4 ja ip6 eivät maksa hakua. all ei myöskään.
Lisäksi enintään kaksi hakua saa palauttaa "tyhjää" (nimi, jota ei ole olemassa, tai johon ei tule vastausta). include, joka osoittaa palveluun, jota et enää käytä ja joka on poistanut oman tietueensa, voi siis myös aiheuttaa ongelmia.
Jos käytät paljon palveluita, laske haut SPF-tarkistustyökalulla (oppitunti 8.3) ja poista palvelut, joita et enää käytä.
Mitä SPF ei tee
SPF tarkistaa envelope-lähettäjän: teknisen lähettäjäosoitteen (Return-Path), jota postipalvelimet käyttävät keskenään. Se ei aina ole sama osoite kuin "Lähettäjä:"-osoite, jonka näet sähköpostiohjelmassasi. Uutiskirjepalvelu lähettää usein omalla Return-Path-osoitteellaan. Pelkkä SPF ei siis estä jokaista väärennettyä lähettäjää. Siihen tarvitaan DKIM (oppitunti 4.4) ja DMARC (oppitunti 4.5).
SPF myös rikkoutuu uudelleenohjauksessa: jos lähetät sähköpostin automaattisesti eteenpäin toiseen osoitteeseen, viesti saapuu lopulliselle vastaanottajalle palvelimelta, joka ei ole SPF-tietueessasi.
Miksi tällä on väliä
Suuret sähköpostipalveluntarjoajat ovat tiukentaneet vaatimuksiaan. Helmikuusta 2024 lähtien Gmail ja Yahoo vaativat, että kaikilla sähköpostin lähettäjillä on vähintään SPF tai DKIM, ja että jos lähetät paljon sähköpostia (yli noin 5 000 viestiä päivässä), sinulla on oltava SPF, DKIM ja DMARC. Microsoft asettaa toukokuusta 2025 lähtien saman vaatimuksen Outlook.com-, Hotmail- ja Live.com-osoitteille. Vaikka lähettäisit vain vähän sähköpostia, hyvä SPF-tietue auttaa pitämään viestit poissa roskapostikansiosta.
Käytännössä: miltä se näyttää hallintapaneelissa
Tässä esimerkissä käytämme DirectAdminia. DNS Administration -valikossa klikkaat kynäkuvaketta TXT-tietueen kohdalla, joka alkaa merkinnällä v=spf1. DirectAdmin avaa SPF-avustajan: kohtaan Include Domain syötät palvelun verkkotunnuksen (ilman etuliitettä include:), kohdasta Mode valitset SoftFail (~all) tai Fail (-all). Alhaalla näet koko tietueen. Oma WebOkéssa on vastaava SPF-avustaja DNS-välilehdellä.
Toisissa hallintapaneeleissa ei aina ole tällaista avustajaa. Silloin muokkaat TXT-tietuetta tavallisena tekstinä; sisältö on täsmälleen sama.
Yhteenveto
- SPF on TXT-tietue, jossa lukee
v=spf1ja joka kertoo, mitkä palvelimet saavat lähettää sähköpostia verkkotunnuksesi puolesta. - Tasan yksi SPF-tietue verkkotunnusta kohden. Uusi palvelu? Täydennä olemassa olevaa tietuetta.
- Lopeta merkinnällä
~alltai-all, älä koskaan merkinnällä+all. - Enintään kymmenen DNS-hakua (
include,a,mx,exists,ptr,redirect),ip4/ip6eivät lasketa mukaan. - SPF tarkistaa envelope-lähettäjän; todellista suojaa varten tarvitset myös DKIM:n ja DMARC:n.
Tietovisa
Tehtävä
Tehtävä Z4.3: SPF:n etsiminen. Etsi verkkotunnuksen google.com SPF-tietue (tai oman verkkotunnuksesi). Liitä koko tietue ja täytä mihin se päättyy (~all, -all, ?all tai +all). Jos käytät omaa verkkotunnustasi, tehtävä tarkistaa myös, että sinulla on tasan yksi SPF-tietue.
Tehtävä O4.3: Itse asettaminen harjoitusvyöhykkeessäsi. Harjoitusvyöhykkeessä käytät valepalvelua; oikealla verkkotunnuksellasi käytät sitä oikeaa include-merkintää, jonka sähköpostipalveluntarjoajasi antaa (esimerkiksi include:_spf.google.com). Luo harjoitusvyöhykkeeseesi SPF-tietue, joka sallii: vyöhykkeen MX-palvelimet (<code>.dnspractice.eumx), osoitteen 192.0.2.25 ja harjoituspalvelun _spf.mailsuite-demo.dnspractice.eu. Muut palvelimet ovat epäilyttäviä tai kiellettyjä, joten tietue päättyy merkintään ~all tai -all.
Tehtävä O4.3
Teet tämän tehtävän omassa harjoitusvyöhykkeessäsi: aidossa DNS-vyöhykkeessä WebOkén nimipalvelimilla, vain sinua varten. Kirjaudu sähköpostiosoitteellasi. Saat kirjautumislinkin sähköpostiisi ja palaat sen jälkeen tälle oppitunnille. Käytämme osoitettasi vain tätä kurssia varten.
Lue lisää
Näiden artikkelien vaiheet koskevat WebOkén hallintapaneeleita; muissa paneeleissa toiminta on vastaavaa.
- DirectAdmin-ohje 5.7: SPF:n määrittäminen ja täydentäminen
- Miten SPF-tietue toimii DNS:ssä?
- SPF-tietueen lisääminen tai muuttaminen DirectAdminissa
- WebOké-käyttöopas 5.5: DNS-apulaiset: MX, SPF, DMARC, CAA ja SRV
- RFC 7208 (SPF), erityisesti kohta 4.6.4 (kymmenen haun ja kahden tyhjän haun raja)
