Moodul 4 · 4.5
DMARC-rapportite lugemine
Moodul 4: Kohaletoimetatavus: SPF, DKIM ja DMARC praktikas · Lugemisaeg: 12 minutit
Õpieesmärk: Pärast seda tundi oskad avada ja lugeda DMARC koondraportit, määrata iga rea kohta, milline on allikas ja miks see õnnestub või ebaõnnestub, ning otsustada, mida parandada, mida võib ignoreerida ja millal saad oma reeglit karmistada.
Põhimõisted: koondraport (aggregate report, RFC 9990), rua, XML, gzip või zip, report_metadata, policy_published, record, row, source_ip, count, policy_evaluated (disposition, dkim, spf), identifiers (header_from, envelope_from), auth_results, selector, veateade (ruf, RFC 9991), raportiteenus, privaatsus
Mida sa saad
Kui oled oma DMARC-kirjesse pannud rua-aadressi (tund 4.4), saadavad suured vastuvõtjad nagu Google, Microsoft ja Yahoo sulle umbes iga päev koondraporti. See on kiri koos manusega, tavaliselt gzip-vormingus XML-fail nimega umbes selline:
receiver.example!example.com!1793923200!1794009599.xml.gzSee tähendab: vastuvõtjalt receiver.example, sinu domeeni example.com kohta, ajavahemiku kohta kahe ajatempli vahel (sekundid alates 1970. aastast; siin 6. november 2026, kogu päev UTC ajas).
Raport ei sisalda kirjade sisu, pealkirju ega enamasti ka vastuvõtjate aadresse. See sisaldab iga saatva serveri kohta kirjade arvu ja SPF, DKIM ja DMARC tulemust. Seetõttu annab see usaldusväärse ülevaate, kes sinu domeeni nimel meile saadab, sealhulgas allikatest, mida olid ise unustanud, ja pettustest.
Raporti ülesehitus
Raportil on kolm osa. Allpool on olulisemad osad selle tunni näidisfailist (dmarc-rapport-1.xml).
1. Kes raporteerib ja millise perioodi kohta
<report_metadata>
<org_name>receiver.example</org_name>
<email>noreply-dmarc@receiver.example</email>
<report_id>receiver.example-20261106-7f3c2a91</report_id>
<date_range>
<begin>1793923200</begin>
<end>1794009599</end>
</date_range>
</report_metadata>2. Millise reegli vastuvõtja sinu juures leidis
<policy_published>
<domain>example.com</domain>
<p>none</p>
<sp>none</sp>
<np>none</np>
<adkim>r</adkim>
<aspf>r</aspf>
<testing>n</testing>
</policy_published>Kontrolli seda alati: kui siin ei ole see, mida arvad enda DNS-is olevat, siis luges vastuvõtja mõnd teist (või vana) kirjet.
3. Iga allika kohta: üks record
Iga record käib ühe saatva IP-aadressi kohta ja ühe tulemuste kombinatsiooni kohta:
<record>
<row>
<source_ip>198.51.100.40</source_ip>
<count>1250</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>fail</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<envelope_from>bounce.mailer.example</envelope_from>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>mailer.example</domain>
<selector>k1</selector>
<result>pass</result>
</dkim>
<spf>
<domain>bounce.mailer.example</domain>
<scope>mfrom</scope>
<result>pass</result>
</spf>
</auth_results>
</record>| Osa | Tähendus |
|---|---|
source_ip | Kirja kohale toimetanud serveri IP-aadress |
count | Mitu kirja sellelt IP-lt selle tulemusega |
policy_evaluated | DMARC tulemus: kas DKIM oli joondatult edukas (dkim), kas SPF oli joondatult edukas (spf), ja mida vastuvõtja tegi (disposition: pass, none, quarantine või reject) |
header_from | Kust-aadressi domeen |
envelope_from | Return-Pathi domeen |
auth_results | SPF ja DKIM toored tulemused, koos domeeniga, mille kohta need kehtisid, ja DKIM puhul selektoriga |
Kõige olulisem erinevus: auth_results versus policy_evaluated
Siin on lugemise tuum. Ülaltoodud näites on auth_results-is kaks korda pass: DKIM õnnestus domeenile mailer.example ja SPF õnnestus domeenile bounce.mailer.example. Ometi on policy_evaluated-is kaks korda fail. See ei ole vastuolu: policy_evaluated arvestab ainult õnnestunud kontrolli, mis on joondatud domeeniga header_from. Kumbki domeen ei kuulu domeeni example.com alla, seega DMARC ebaõnnestub.
Nii loed iga rida:
- Vaata
policy_evaluated. Kasdkimvõispfjuures on pass? Siis DMARC õnnestub ja see allikas on korras. - Kas kõik ebaõnnestub? Vaata
auth_results-ist domeene. Kas see on sinu enda teenus, mis õnnestub, aga oma domeeni jaoks? Siis pead selle teenuse juures sisse lülitama DKIM oma domeeniga (tund 4.3). - Kas ebaõnnestub ka
auth_results-is või puudub DKIM hoopis? Uuri, kellele IP-aadress kuulub (pöördloendi DNS, tund 5.1, või whois-päring). Kas see on üks sinu enda süsteemidest: paranda see. Kas see on tundmatu ja numbrid tunduvad kahtlased: tõenäoliselt võltsimine.
Mustrid, mida näed pidevalt
| Muster | Mida see tavaliselt tähendab | Mida teed |
|---|---|---|
| DKIM pass ja SPF pass, mõlemad sinu enda domeeni jaoks | Sinu enda meiliserver | Midagi |
| DKIM pass sinu domeenile, SPF fail või softfail, tundmatu IP | Edasisaadetud kiri: keegi suunab sinu kirja edasi, DKIM jäi püsima | Midagi; see on just põhjus, miks DKIM on tähtis |
| DKIM pass sinu domeenile, SPF pass teisele domeenile | Teenus, millel on oma Return-Path ja sinu DKIM | Midagi, DMARC õnnestub DKIM-i põhjal |
| Mõlemad pass, aga teenuse domeeni jaoks | Teenus, mis allkirjastab oma domeeniga | Lülita selle teenuse juures sisse DKIM sinu domeeniga |
| SPF softfail sinu domeenile, DKIM puudub, oma server | Oma server või aadress, mis ei ole SPF-is ja ei allkirjasta | Lisa SPF-i ja lülita sisse DKIM |
| SPF fail või softfail, DKIM puudub, tundmatu IP, kõikuvad arvud | Võltsimine (spoofing) | Ignoreeri; väärtusega p=quarantine või reject peatad selle |
Pööra tähelepanu ka IPv6-le: oma server, mis mõnikord saadab IPv6 kaudu, samal ajal kui sinu SPF nimetab ainult IPv4-aadressi, annab nendel ridadel softfaili. DKIM-allkirjaga õnnestub DMARC siiski, aga see on märk, et SPF on puudulik.
Raportist otsuseni
Oled valmis oma reeglit karmistama (väärtuselt none väärtusele quarantine, seejärel reject), kui:
- igal sinu enda allikal on
policy_evaluated-is vähemalt üks pass; - nii on olnud juba mõni nädal kõigi suurte vastuvõtjate juures;
- see, mis veel ebaõnnestub, on ainult kehtiva DKIM-allkirjaga edasisaadetud kiri (mis õnnestub siiski) või selge võltsimine.
Kui ebaõnnestub suur oma allikas, nagu näites 1250 kirjaga uudiskirjateenus, siis on veel vara. Väärtusega p=reject keelduks vastuvõtja neist 1250 uudiskirjast.
Raportite loetavaks tegemine
Ühe raporti saab tekstiredaktoris veel läbi vaadata. Kakskümmend päevas enam mitte. Selleks on kolm võimalust:
- Raportiteenus (neid on palju, ka tasuta variandiga). Paned nende aadressi
rua-väärtusesse ja nemad teevad sellest graafikud ja loendid. Pane tähele: siis annad sellele teenusele ülevaate, millised serverid sinu nimel meile saadavad, ja raporti aadress asub nende domeenil (vt luba väljal_report._dmarctunnis 4.4). Vali teenus, mida usaldad ja mis järgib isikuandmete kaitse üldmäärust (GDPR). - Oma tööriist: on olemas avatud lähtekoodiga programme, mis võtavad raporteid postkastist ja koostavad neist ülevaate.
- Ise lugemine XML-vaaturiga või brauseriga, aeg-ajalt.
Veateated (ruf, RFC 9991) on teistsugused: iga ebaõnnestunud kirja kohta eraldi, mõnikord koos osadega kirjast endast. Peaaegu ükski suur vastuvõtja neid ei saada, just privaatsuse pärast. Neid ei ole vaja DMARC-i korralikuks kasutuselevõtuks.
Praktikas: nii see välja näeb
WebOké juures saad täita raporti aadressi DMARC abivahendis DirectAdmin'is või Minu WebOké's (vt tund 4.4), ja valid ise postkasti, kuhu raportid saabuvad; eraldi aadress nagu dmarc@ koos oma kaustaga väldib, et see matab alla tavalise kirjavahetuse. Lugemiseks kasuta valitud raportiteenust või programmi. See töötab iga pakkuja juures samamoodi: raport on standardvorming.
Kokkuvõte
- Koondraport on igapäevane XML-fail (sageli gzip-vormingus) iga vastuvõtja kohta, koos iga saatva IP kirjade arvu ja tulemustega.
auth_resultsannab SPF ja DKIM toore tulemuse;policy_evaluatedainult selle, mis õnnestus joondatult. Pass väärtusesauth_resultsvõib DMARC-is siiski olla fail.- Edasisaadetud kirja tunned ära DKIM pass'i ja SPF fail'i kombinatsioonist; võltsimise sellest, et kõik ebaõnnestub tundmatult IP-lt.
- Karmista reeglit alles siis, kui kõik sinu enda allikad õnnestuvad juba mõni nädal.
- Veateated (
ruf) on haruldased ja ei ole vajalikud.
Test
Ülesanne
Ülesanne Z4.5: DMARC-aruande lugemine. Ava näidisfail dmarc-rapport-1.xml (koondraport domeeni example.com kohta, välja mõeldud andmetega). Vasta küsimustele: millise reegli vastuvõtja leidis, kui palju kirju raportis kokku on, kui palju neist ei läbinud DMARC-i, milline rida on uudiskirjateenus ja mida seal tuleb teha, milline rida on edasisaadetud kiri, milline rida on tõenäoliselt võltsimine, mida tuleb SPF-kirjes muuta vastavalt reale 6, milline rida õnnestub ainult tänu DKIM-ile teenuse juures, millel on oma Return-Path, ja kas domeen võib nüüd minna reeglile p=quarantine? Programm kontrollib su vastuseid fikseeritud vastustevõtme järgi ja selgitab iga küsimuse juures, milline raporti rida annab vastuse.
Lisalugemist
Nende artiklite sammud kehtivad WebOké paneelide kohta; teiste pakkujate juures töötab see sarnaselt.
- Mis see on DMARC? Selgitus lihtsas keeles
- DirectAdmin juhend 5.9: DMARC seadistamine
- Tasuta DNS-kursus 4.5: DMARC: mida vastuvõtjad peavad tegema võltspostiga
- RFC 9990 (DMARC Aggregate Reporting), koos näidisraportiga lisas B; RFC 9991 (Failure Reporting)
