← Back to docs

DNSBL DMARC-intagning och granskning

Language: SV | EN | SV

DNSBL DMARC-intagning och granskning

Den här sidan beskriver det nuvarande DMARC-flödet i Tools för DNSBL-relaterad granskning.

Det här är inte ett vanligt slutanvändarflöde för svartlistning. De tänkta anroparna är:

  • dnsbl-engine
  • interna hjälpjobs
  • sajtägare / administratörer som vill granska DMARC-data innan en rapporterad käll-IP eventuellt publiceras till DNSBL

Vad funktionen gör

Tools kan ta emot DMARC-aggregate-rapporter och lägga dem i en adminkö för granskning i stället för att publicera direkt från inkommande payload.

Kön gör det möjligt att:

  • granska normaliserad rapportmetadata
  • se en rad per rapporterad käll-IP
  • publicera vald rad som spam (16)
  • publicera vald rad som spam + fraud (84)
  • ignorera en rad utan publicering

Det gör att den slutliga blacklistbedömningen fortsätter att vara manuell.


API-endpoint

POST /api/dnsbl/dmarc/report

Requesten laddar upp en DMARC-payload för intagning.

Stödda payloadformat inkluderar:

  • vanlig DMARC-XML
  • gzip-komprimerade DMARC-rapporter
  • ZIP-komprimerade DMARC-rapporter
  • MIME-wrappade DMARC-payloads
  • vidarebefordrade eller wrappade message/rfc822-mail där DMARC-XML/ZIP ligger som attachment i nästlade MIME-delar
  • notice-/forensic-liknande DMARC-mail som beskriver avsändardomän/IP/alignment/resultat i text och innehåller kopierade headers

Request body

{
  "payload_base64": "H4sIAAAAA...",
  "source_type": "dnsbl_engine_dmarc",
  "source_name": "dnsbl-engine",
  "original_filename": "mailru-report.xml.gz",
  "content_type": "application/gzip",
  "content_encoding": "gzip"
}

Fältnoter

  • payload_base64 är obligatoriskt och måste dekoda till en icke-tom payload.
  • source_type är valfri metadata om vem/system som skickar rapporten.
  • source_name är valfri läsbar metadata om anroparen.
  • original_filename är valfritt och hjälper granskaren att känna igen den uppladdade filen.
  • content_type och content_encoding är valfria ledtrådar om originalformatet.

Autentiseringsbeteende

Nuvarande DMARC-intagning accepterar dessa lägen:

  • aktiv DNSBL-token via X-Dnsbl-Token eller dnsbl_token
  • tokenet måste vara aktivt och ha effektiv DNSBL add/write-rätt (can_add=true)
  • aktiva DNSBL-provider keys (provider=tornevall_dnsbl) accepteras också via samma token-transport
  • aktiva adminägda Tools API-nycklar accepteras också via samma token-transport som full admin-passthrough

Praktiska noter

  • Saknade, ogiltiga eller inaktiva DNSBL-token blockerar nu DMARC-intagning med 401.
  • Aktiva DNSBL-token utan add-rätt misslyckas nu med 403 reason="insufficient_dnsbl_scope".
  • Vanliga icke-DNSBL-Tools API-nycklar, adminsessionsfallback och anonyma interna DMARC-uppladdningar accepteras inte längre på denna endpoint.
  • Dubblettuppladdningar hanteras som ofarliga no-ops och returnerar duplicate: true med metadata för den redan sparade rapporten.
  • Den dubblettlogiken är nu också race-säker när två identiska payloads träffar samma unika payload_hash nästan samtidigt; anroparen får fortfarande tillbaka den redan sparade rapporten i stället för ett rått SQL-duplicate-key-fel.
  • Ogiltiga eller ej tolkbara payloads returnerar 422.
  • När dnsbl-engine nekas uppladdning lämnas den lokala DMARC-filen kvar i spoolen för retry i stället för att raderas.

Typiskt success-svar

{
  "ok": true,
  "duplicate": false,
  "message": "DMARC payload ingested for admin review.",
  "report": {
    "id": 12,
    "report_id": "33491921110551199191685577600",
    "org_name": "Mail.Ru",
    "policy_domain": "tornevall.net",
    "status": "pending",
    "record_count": 1,
    "source_ip_count": 1,
    "date_begin": "2023-06-01T00:00:00+00:00",
    "date_end": "2023-06-02T00:00:00+00:00",
    "created_at": "2026-04-19T21:03:00+00:00"
  },
  "records": [
    {
      "id": 99,
      "source_ip": "60.13.8.218",
      "message_count": 1,
      "disposition": "reject",
      "dkim_result": "fail",
      "spf_result": "fail",
      "recommended_action": "spam_fraud",
      "status": "pending"
    }
  ]
}

Granskningskö i webbgränssnittet

Efter intagning finns rapporten i:

  • /admin/dnsbl/dmarc

Där kan en admin öppna detaljsidan och granska:

  • rapport-ID
  • sändande organisation
  • policydomän
  • DMARC-policyfält (p, sp, adkim, aspf, pct)
  • rapportens tidsfönster
  • rapporttyp (Aggregate XML eller Forensic notice)
  • normaliserat rapportinnehåll (XML för aggregate-rapporter, normaliserad notice-text + kopierade headers för forensic-liknande rapporter)
  • en rad per rapporterad käll-IP
  • reverse-DNS-hostnames som resolverats från dessa käll-IP-adresser när PTR-data finns

Varje käll-IP-rad har följande åtgärder:

  • Publish spam → publicerar DNSBL-bitmask 16
  • Publish spam+fraud → publicerar DNSBL-bitmask 84
  • Ignore → lämnar IP-adressen opublicerad och markerar raden som hanterad i kön

Statusvärden som kan förekomma

Rapportstatus

En DMARC-rapport kan bland annat få dessa statusar:

  • pending - inga rader har granskats ännu
  • partial - vissa rader är hanterade medan andra fortfarande är pending eller blandade
  • reviewed - raderna är hanterade med blandat resultat mellan publicerade och ignorerade
  • published - samtliga rader blev publicerade
  • ignored - samtliga rader blev ignorerade

Radstatus

En enskild käll-IP-rad kan bland annat få:

  • pending
  • published
  • ignored
  • failed

När ett publiceringsförsök har gjorts visar UI:t även senaste sparade publish-resultat för raden.


Felbeteende

Vanliga felutfall:

  • 401 missing_dnsbl_token - ingen DNSBL-token skickades med
  • 401 invalid_dnsbl_token - det skickade värdet resolve:ade inte till en aktiv DNSBL-token
  • 401 inactive_dnsbl_token - DNSBL-tokenet finns men är inte aktivt
  • 403 insufficient_dnsbl_scope - DNSBL-tokenet är aktivt men saknar add/write-rätt
  • 403 wrong_token_type - det skickade värdet matchade en annan Tools-tokenmodell i stället för en DNSBL-token
  • 422 invalid_payload - payload_base64 gick inte att dekoda till en användbar payload
  • 422 invalid_dmarc_report - den uppladdade payloaden kunde inte tolkas som en DMARC-rapport

Dubblettuppladdningar ger inte fel. De returnerar ett vanligt success-svar med duplicate: true.


Rekommenderat arbetsflöde

  1. Samla in eller ta emot en DMARC-aggregate-rapport.
  2. Base64-koda den råa payloaden.
  3. Ladda upp den till POST /api/dnsbl/dmarc/report med en aktiv DNSBL-token som har add-rätt.
  4. Öppna /admin/dnsbl/dmarc.
  5. Granska raderna med rapporterade käll-IP-adresser.
  6. Publicera bara de rader som verkligen ska bli DNSBL-poster.

Relaterad dokumentation

Senast uppdaterad: 2026-04-20