Erinevus lehekülje "DKIM ja DMARC" redaktsioonide vahel
P |
P |
||
(ei näidata 3 kasutaja 21 vahepealset redaktsiooni) | |||
1. rida: | 1. rida: | ||
− | DKIM ja DMARC on kaks venda kolmest (kolmas on SPF, millel on eraldi peatükk [[SPF_kasutamine_Postfixiga]]). | + | DKIM ja DMARC on kaks venda kolmest (kolmas on SPF, millel on eraldi peatükk [[SPF_kasutamine_Postfixiga]]), mida loetakse tänapäeva moodsa e-mailinduse kaitsjateks. |
DKIM tähendab DomainKeys Identified Mail | DKIM tähendab DomainKeys Identified Mail | ||
10. rida: | 10. rida: | ||
DKIM mõte on selles, et väljuvatele kirjadele pannakse päisesse lisainformatsioon kirja allkirjastamise kohta. Käesoleval hetkel kasutatakse RSA võtmeid (vaikimisi 1024bit). Väga suuri võtmeid ei soovitata kasutada, kuna avalik võti ei pruugi ära mahtuda UDP vastusesse*. Lisaks võib suurem võti põhjustada suurt koormust arvuti protsessorile (olenevalt muidugi kirjade "käibest"/mahust). | DKIM mõte on selles, et väljuvatele kirjadele pannakse päisesse lisainformatsioon kirja allkirjastamise kohta. Käesoleval hetkel kasutatakse RSA võtmeid (vaikimisi 1024bit). Väga suuri võtmeid ei soovitata kasutada, kuna avalik võti ei pruugi ära mahtuda UDP vastusesse*. Lisaks võib suurem võti põhjustada suurt koormust arvuti protsessorile (olenevalt muidugi kirjade "käibest"/mahust). | ||
− | DKIM seadistamisel on alustuseks vaja DKIMi takrvara seadistada ja seejärel nimeserverisse lisada oma domeenile TXT kirje. | + | DKIM seadistamisel on alustuseks vaja DKIMi takrvara seadistada ja seejärel nimeserverisse lisada oma domeenile TXT kirje (kui soovid ise ka allkirjastama hakata väljuvaid kirju). |
− | TXT kirje peab olema kujul: selector._domainkey. | + | TXT kirje peab olema kujul: selector._domainkey.uusdomeen.ee ja selle sisu |
− | "v=DKIM1; k=rsa; s=email; "avalik võti" | + | "v=DKIM1; k=rsa; s=email;" "p=avalik võti base64 encodingus" |
<nowiki>*</nowiki> - Siit tuleb ka välja UDP vastuse mõte - kuna DNS päringud on UDP, siis peab kogu TXT päring mahtuma UDP vastusesse ära. | <nowiki>*</nowiki> - Siit tuleb ka välja UDP vastuse mõte - kuna DNS päringud on UDP, siis peab kogu TXT päring mahtuma UDP vastusesse ära. | ||
+ | == TXT kirje komponendid == | ||
+ | * v= - versioon, hetkel ainuke valiidne väärtus DKIM1 | ||
+ | * k= - võtmetüüp, hetkel ainuke valiidne väärtus rsa | ||
+ | * s= - teenuse tüüp, vaikimisi on "*", võimalik ka "email" (NB! Selector ja service type on erinevad tähendused/väärtused | ||
+ | * p= - avalik võti base64 encodingus | ||
+ | |||
+ | "Lihtsam" kirjaviis oleks: | ||
+ | |||
+ | "v=DKIM1; p=võti..." | ||
+ | |||
+ | DKIMi puhul lähtutakse kahest eraldi kirja mõlemast sektsioonist: header ja body. Mõlema jaoks on võimalik reegel kirjutada - kas range/leebe. | ||
== OpenDKIM seadistamine == | == OpenDKIM seadistamine == | ||
30. rida: | 41. rida: | ||
=== Konfiguratsioon === | === Konfiguratsioon === | ||
− | Vaikimisi töötab opendkim sign ja verify režiimis. Seda saad muuta Mode parameetriga: | + | Vaikimisi töötab opendkim '''sign''' ja '''verify''' režiimis. Seda saad muuta Mode parameetriga: |
* sv - sign + verify | * sv - sign + verify | ||
* v - verify | * v - verify | ||
* s - sign | * s - sign | ||
+ | Vaikimisi piisab verify režiimist, sellisel juhul valideeritakse ainult sissetulevaid kirju. Kui soovid ka oma domeene allkirjastada, pead kasutama sign režiimi lisaks. | ||
− | Lisks on olulised konfiguratsiooniparameetrid SigningTable, KeyTable ja InternalHosts | + | '''Verify''' töötab ilma lisaseadistuseta. Veendu vaid, et nimelahendus töötab. ;) |
+ | |||
+ | Lisks on olulised konfiguratsiooniparameetrid '''SigningTable''', '''KeyTable''' ja '''InternalHosts'''. | ||
* SigningTable - sisaldab saatjadomeeni ja võtme vastavust. | * SigningTable - sisaldab saatjadomeeni ja võtme vastavust. | ||
41. rida: | 55. rida: | ||
* InternalHosts - sisaldab domeene/IP-sid, millelt tulnud kirju signeeritakse (ülejäänusid ainult verifitseeritakse). | * InternalHosts - sisaldab domeene/IP-sid, millelt tulnud kirju signeeritakse (ülejäänusid ainult verifitseeritakse). | ||
− | === | + | Canonicalization määrab ära kuidas suhtutakse header/body muutumisse. Ehk siis vaikimisi on rangem režiim ('''simple/simple'''). See tähendab, et header/body puhul ei lubata peaaegu mingit ümberkirjutamist. |
+ | Soovitusi on kahtepidiseid, aga siin näites on arvestatud pigem sellega, et päiseid võib ümber kirjutada ('''relaxed''') ja sisu mitte ('''simple''') | ||
+ | |||
+ | # kirja header/body jaoks - väärtused simple või relaxed | ||
+ | Canonicalization relaxed/simple | ||
+ | |||
+ | |||
+ | === Socket või IP === | ||
+ | Kui DKIMile tullakse ligi vaid kohalikust masinast, siis on mõistlik kasutada socketit. | ||
+ | IP peale konfigureerides pead veenduma, et sinna ei saa keegi võõras ligi (vastasel juhul saab ta sinna ju saata oma soovitud kirja allkirjastamiseks jmt "jubedusi" teha). | ||
+ | |||
+ | Selle jaoks konfigureeri vastavalt soovile: | ||
+ | #Socket inet:8891@localhost | ||
+ | Socket local:/run/opendkim/opendkim.sock | ||
+ | |||
+ | Näites siis tehakse socket asukohta /run/opendkim/opendkim.sock | ||
+ | |||
+ | '''NB! Seda pead kasutama pärast ka Postfixi konfiguratsioonis.''' | ||
− | + | Selleks, et postfix saaks opendkimile ligi on soovituslik opendkim lisada postfix gruppi: | |
− | + | usermod -a -G postfix opendkim | |
− | |||
− | |||
+ | Sellisel juhul on vaja ka konfiguratsioonis umask paika panna (et socketi õigused oleksid rwxrwx---) | ||
+ | |||
+ | UMask 007 | ||
+ | |||
+ | == Uue allkirjastatava tsooni lisamine == | ||
+ | |||
+ | Lisa vajadusel InternalHost faili uus kirje. | ||
+ | |||
+ | Tekita võtmete jaoks uus kaust (kui juba pole) ja sinna alla loodava domeeni jaoks kaust, näiteks: | ||
+ | |||
+ | mkdir -vp /etc/opendkim/keys/uusdomeen.ee | ||
+ | |||
+ | Vaheta kausta | ||
+ | |||
+ | cd /etc/opendkim/keys/uusdomeen.ee | ||
+ | |||
+ | ja tekita uus tsoon käsuga | ||
+ | |||
+ | opendkim-genkey --restrict --domain uusdomeen.ee --bits 1024 --selector default | ||
+ | |||
+ | võid muuta väärtusi vastavalt vajadusele. Arvesta, et --bits on vaikimisi 1024. Kui kasutad konfis mingit muud MinimumKeyBits suurust, siis pead seda arvestama võtme loomisel. | ||
+ | |||
+ | Seepeale tehakse sulle kaks faili (--selector argumendile vastavalt): nimeserveri jaoks TXT kirje ja privaatvõti (default.private ja default.txt). | ||
+ | |||
+ | Muuda KeyTable faili, lisades sinna | ||
+ | |||
+ | default._domainkey.uusdomeen.ee uusdomeen.ee:default:/etc/opendkim/keys/uusdomeen.ee/default.private | ||
+ | |||
+ | Muuda SigningTable faili, lisades sinna | ||
+ | |||
+ | uusdomeen.ee default._domainkey.uusdomeen.ee | ||
+ | |||
+ | SigningTable faili puhul olen kohanud ka kirjapilti esimeses väljas *@uusdomeen.ee. Oleneb vist sellest, kas konfis on vaikimisi alamdomeenide allkirjastamine ka sees. Ülanäite puhul tehakse (kuna klapib), aga *@ näite puhul pigem mitte, sest et reegel kehtib vaid @uusdomeen.ee puhul (mitte @alamdomeen.uusdomeen.ee). | ||
+ | |||
+ | '''Mõlema faili puhul arvesta oma domeeni ja selectori ja kaustapuuga! :)''' | ||
+ | |||
+ | Nüüd mine oma nimeserveri haldusesse (või palu seda kellelgi teha) ja täienda seda TXT kirjega: | ||
+ | |||
+ | <pre> | ||
+ | default._domainkey.uusdomeen.ee IN TXT ( "v=DKIM1; k=rsa; s=email; " | ||
+ | "p=avalik_võti_base64_encodingus" ) ; | ||
+ | </pre> | ||
+ | Olen kohanud ka kirjapilti ilma jutumärkideta. Sellisel juhul peaks kogu kirje olema ilma. Selles näites on mõlemad osad omaette jutumärkidega. | ||
+ | |||
+ | == Kirja näidispäised == | ||
+ | Ühe DKIMi poolt allkirjastatud näidiskirja päisest võib leida | ||
+ | |||
+ | <pre> | ||
+ | DKIM-Filter: OpenDKIM Filter v2.10.3 mxfilter.uusdomeen.ee 861BF8005D | ||
+ | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=uusdomeen.ee; | ||
+ | s=default; t=1570605036; | ||
+ | bh=LQZPc7Ca6aVneKHX25GlrXx4Xtkwjb0tLZwuCasB0MU=; | ||
+ | h=From:To:Subject:Date; | ||
+ | b=e2QagT5U4OjBPjTA7sHdGDAMR9R/UilD6TOsXavn5C3Kg49mIMZXsYF6XF30U5uS3 | ||
+ | uB6GRQZwZDQR6C3R1adTSW4qlgTN3eZzREm8DhNthDTG4nsmucOdSNYsFkQBuTgShJ | ||
+ | V5b/2kOyFAjEeiI9UqIf8gcy6F6uiJhOhKQLQG3Y= | ||
+ | </pre> | ||
+ | |||
+ | h=From:To:Subject:Date; | ||
+ | Tunnetuslik selgitus hetkel, aga h= peaks näitama neid päiseid, mis olid olemas kirja allkirjastamise hetkel. RFC seletab keeruliselt? | ||
+ | |||
+ | == Postfixiga integreerimine == | ||
+ | |||
+ | Lisa Postfixi main.cf' faili | ||
+ | |||
+ | <pre> | ||
+ | # DKIM reeglid | ||
+ | smtpd_milters = unix:/run/opendkim/opendkim.sock | ||
+ | non_smtpd_milters=$smtpd_milters | ||
+ | milter_default_action = accept | ||
+ | </pre> | ||
== Probleemid DKIMiga == | == Probleemid DKIMiga == | ||
Kui kasutad rohkem kui ühte väljuvat e-postiserverit sama domeeni kirjade saatmiseks (nt mailchip või mõni muu masspostitustööriist vmt), siis peaksid seadistama kõigile DKIMi kasutamise. Vastasel juhul on osad kirjad varustatud DKIMi päisega ja osad mitte. Kuna aga su nimeserverist tuleb DKIMi vastus - mis osutub valideerimisel valeks - võib saaja kirja kas minema visata või karantiini või junki panna. | Kui kasutad rohkem kui ühte väljuvat e-postiserverit sama domeeni kirjade saatmiseks (nt mailchip või mõni muu masspostitustööriist vmt), siis peaksid seadistama kõigile DKIMi kasutamise. Vastasel juhul on osad kirjad varustatud DKIMi päisega ja osad mitte. Kuna aga su nimeserverist tuleb DKIMi vastus - mis osutub valideerimisel valeks - võib saaja kirja kas minema visata või karantiini või junki panna. | ||
− | DKIMi võtmeid võib olla rohkem kui üks ja neid saad eraldada selektoriga | + | '''DKIMi võtmeid võib olla rohkem kui üks ja neid saad (pead) eraldada selektoriga!''' |
= DMARC = | = DMARC = | ||
− | DMARC | + | DMARC (Domain-Based Message Authentication, Reporting & Conformance) on protokoll, mis ehitab ennast juba olemasolevate SPF ja DKIM protokollide peale lisades autori, domeeni nime, soovitused kirjade käitlemiseks ning võltskirjade eest kaitseks teated domeeni haldurile. |
+ | |||
+ | DMARC seadistatakse analoogselt kahe vennaga nimeserveris ja selle ilmestamiseks on _dmarc.uusdomeen.ee TXT kirje sisuga: | ||
+ | |||
+ | "v=DMARC1;p=reject;sp=none;rua=<nowiki>mailto:dmarcreports@uusdomeen.ee</nowiki>" | ||
+ | |||
+ | DMARC kontrollib '''kirja''' From: (header from) päist. | ||
+ | SPF kontroll käib aga '''ümbriku''' saatja (envelope from) pihta. Kui need domeenid erinevad ja kirjal DKIM allkirja pole, siis DMARC kontroll ebaõnnestub! | ||
+ | |||
+ | == TXT kirje komponendid == | ||
+ | * v= - versioon, hetkel ainuke valiidne väärtus DMARC1 | ||
+ | * p= - policy/poliitika - soovitus, mida kirjadega teha | ||
+ | * sp= - poliitika alamdomeenide jaoks (kui pole öeldud eraldi), väärtused samad mis p | ||
+ | * rua, fo, rf, ri - vaata [[#Aruanded]] alampeatükki | ||
+ | '''NB! p= peab olema kohe peale v= parameetrit!''' | ||
+ | |||
+ | == Aruanded == | ||
+ | |||
+ | DMARC reeglite poolt on võimalik nendelt e-posti serveritelt aruannete küsimine, kuhu kirju on saadetud. | ||
+ | |||
+ | Aruannete (Raporting) kohta on neli väärtust TXT kirjes võimalik määrata: | ||
+ | |||
+ | * fo= - mille kohta aruandeid saadetakse | ||
+ | * rf= - raporti formaat | ||
+ | * ri= - intervall kui tihti raportit saadetakse (vaikimisi 24h)24h). | ||
+ | * rua= - raporti saatmise aadress, formaat <nowiki>mailto:dmarcreports@example.com</nowiki>. | ||
+ | * ruf= - detailsem analüüs DMARCi kohta, peab olema samas domeenis mille kohta DMARC kirje on, formaat <nowiki>mailto:dmarcreports@example.com</nowiki>. | ||
+ | |||
+ | Mitu emaili on lubatud panna, kirje on siis midagi sellist <nowiki>rua=mailto:dmarcreports@example.com,mailto:teine@domeen.ee</nowiki>. | ||
== OpenDMARC seadistamine == | == OpenDMARC seadistamine == | ||
− | + | Paigalda pakihaldusest opendmarc pakk | |
+ | |||
+ | pacman -Sy opendmarc | ||
+ | |||
+ | Tekib töötav konfiguratsioonifail | ||
+ | |||
+ | /etc/opendkim/opendkim.conf | ||
+ | |||
+ | === Konfiguratsioon === | ||
+ | Tutvu sellega ja seadista vastavalt. Soovituslik on example/esialgsed väärtused alles jätta. | ||
+ | Konfiguratsioon on piisavalt ''self-explanatory''. | ||
+ | |||
+ | Selleks, et opendmarc tarkvara töötaks Postfixiga samas grupis oleks mõistlik seadistada opendmarc service käivitusel: | ||
+ | |||
+ | mkdir -vp /etc/systemd/system/opendmarc.service.d/ | ||
+ | cat > /systemd/system/opendmarc.service.d/override.conf <<EOT | ||
+ | [Service] | ||
+ | Group= | ||
+ | Group=postfix | ||
+ | EOT | ||
+ | |||
+ | === Socket või IP === | ||
+ | Kui DMARCile tullakse ligi vaid kohalikust masinast, siis on mõistlik kasutada socketit. | ||
+ | |||
+ | Selle jaoks konfigureeri vastavalt soovile: | ||
+ | |||
+ | # Socket inet:8893@localhost | ||
+ | Socket unix:/run/opendmarc/opendmarc.sock | ||
+ | |||
+ | Näites siis tehakse socket asukohta /run/opendmarc/opendmarc.sock | ||
+ | |||
+ | NB! Seda pead kasutama pärast ka Postfixi konfiguratsioonis. | ||
+ | |||
+ | Selleks, et postfix saaks opendkimile ligi on soovituslik opendkim lisada postfix gruppi: | ||
+ | |||
+ | usermod -a -G postfix opendkim | ||
+ | |||
+ | Sellisel juhul on vaja ka konfiguratsioonis umask paika panna (et socketi õigused oleksid rwxrwx---) | ||
+ | |||
+ | UMask 007 | ||
+ | |||
+ | == Postfixiga integreerimine == | ||
+ | |||
+ | Vaata ka OpenDKIM Postfixiga integreerimine. | ||
+ | |||
+ | Postfixi main.cf' faili tuleb lisada | ||
+ | |||
+ | # DKIM reeglid | ||
+ | smtpd_milters = unix:/run/opendmarc/opendmarc.sock | ||
+ | |||
+ | Kui sul juba on olemas smtpd_milters muutuja, siis jäta opendkim ettepoole ja dmarc tahapoole. | ||
+ | |||
+ | Veendu, et sul oleks seadistatud ka: | ||
+ | |||
+ | non_smtpd_milters=$smtpd_milters | ||
+ | milter_default_action = accept | ||
= Lingid = | = Lingid = | ||
68. rida: | 251. rida: | ||
* OpenDMARC - http://www.trusteddomain.org/opendmarc/ | * OpenDMARC - http://www.trusteddomain.org/opendmarc/ | ||
* OpenDKIM - http://opendkim.org/ | * OpenDKIM - http://opendkim.org/ | ||
+ | * DKIM RFC4871 - http://dkim.org/specs/rfc4871-dkimbase.html | ||
+ | * Abiks DMARC'i seadistamisel - https://www.kitterman.com/dmarc/assistant.html | ||
+ | * DKIM, DMARC valideerimine ja tagasiside (vt Tools menüüst juurde): https://www.dmarcanalyzer.com/dmarc/dmarc-record-check/ |
Viimane redaktsioon: 13. aprill 2021, kell 11:24
DKIM ja DMARC on kaks venda kolmest (kolmas on SPF, millel on eraldi peatükk SPF_kasutamine_Postfixiga), mida loetakse tänapäeva moodsa e-mailinduse kaitsjateks.
DKIM tähendab DomainKeys Identified Mail DMARC tähendab Domain-based Message Authentication Reporting and Conformance
Näites on kasutatud Arch Linuxit, Postfixi ja OpenDKIM ja OpenDMARC tarkvarasid. Eeldatud on, et Postfix on juba esialgselt seadistatud.
DKIM
DKIM mõte on selles, et väljuvatele kirjadele pannakse päisesse lisainformatsioon kirja allkirjastamise kohta. Käesoleval hetkel kasutatakse RSA võtmeid (vaikimisi 1024bit). Väga suuri võtmeid ei soovitata kasutada, kuna avalik võti ei pruugi ära mahtuda UDP vastusesse*. Lisaks võib suurem võti põhjustada suurt koormust arvuti protsessorile (olenevalt muidugi kirjade "käibest"/mahust).
DKIM seadistamisel on alustuseks vaja DKIMi takrvara seadistada ja seejärel nimeserverisse lisada oma domeenile TXT kirje (kui soovid ise ka allkirjastama hakata väljuvaid kirju). TXT kirje peab olema kujul: selector._domainkey.uusdomeen.ee ja selle sisu
"v=DKIM1; k=rsa; s=email;" "p=avalik võti base64 encodingus"
* - Siit tuleb ka välja UDP vastuse mõte - kuna DNS päringud on UDP, siis peab kogu TXT päring mahtuma UDP vastusesse ära.
TXT kirje komponendid
- v= - versioon, hetkel ainuke valiidne väärtus DKIM1
- k= - võtmetüüp, hetkel ainuke valiidne väärtus rsa
- s= - teenuse tüüp, vaikimisi on "*", võimalik ka "email" (NB! Selector ja service type on erinevad tähendused/väärtused
- p= - avalik võti base64 encodingus
"Lihtsam" kirjaviis oleks:
"v=DKIM1; p=võti..."
DKIMi puhul lähtutakse kahest eraldi kirja mõlemast sektsioonist: header ja body. Mõlema jaoks on võimalik reegel kirjutada - kas range/leebe.
OpenDKIM seadistamine
Paigalda DKIM tarkvara kasutades pakihaldust
pacman -Sy opendkim
Tekib töötav konfiguratsioonifail
/etc/opendkim/opendkim.conf
Tutvu sellega ja seadista vastavalt.
Konfiguratsioon
Vaikimisi töötab opendkim sign ja verify režiimis. Seda saad muuta Mode parameetriga:
- sv - sign + verify
- v - verify
- s - sign
Vaikimisi piisab verify režiimist, sellisel juhul valideeritakse ainult sissetulevaid kirju. Kui soovid ka oma domeene allkirjastada, pead kasutama sign režiimi lisaks.
Verify töötab ilma lisaseadistuseta. Veendu vaid, et nimelahendus töötab. ;)
Lisks on olulised konfiguratsiooniparameetrid SigningTable, KeyTable ja InternalHosts.
- SigningTable - sisaldab saatjadomeeni ja võtme vastavust.
- KeyTable - sisaldab iga selectori ja domeeni paari ning privaatvõtme asukohta.
- InternalHosts - sisaldab domeene/IP-sid, millelt tulnud kirju signeeritakse (ülejäänusid ainult verifitseeritakse).
Canonicalization määrab ära kuidas suhtutakse header/body muutumisse. Ehk siis vaikimisi on rangem režiim (simple/simple). See tähendab, et header/body puhul ei lubata peaaegu mingit ümberkirjutamist. Soovitusi on kahtepidiseid, aga siin näites on arvestatud pigem sellega, et päiseid võib ümber kirjutada (relaxed) ja sisu mitte (simple)
# kirja header/body jaoks - väärtused simple või relaxed Canonicalization relaxed/simple
Socket või IP
Kui DKIMile tullakse ligi vaid kohalikust masinast, siis on mõistlik kasutada socketit. IP peale konfigureerides pead veenduma, et sinna ei saa keegi võõras ligi (vastasel juhul saab ta sinna ju saata oma soovitud kirja allkirjastamiseks jmt "jubedusi" teha).
Selle jaoks konfigureeri vastavalt soovile:
#Socket inet:8891@localhost Socket local:/run/opendkim/opendkim.sock
Näites siis tehakse socket asukohta /run/opendkim/opendkim.sock
NB! Seda pead kasutama pärast ka Postfixi konfiguratsioonis.
Selleks, et postfix saaks opendkimile ligi on soovituslik opendkim lisada postfix gruppi:
usermod -a -G postfix opendkim
Sellisel juhul on vaja ka konfiguratsioonis umask paika panna (et socketi õigused oleksid rwxrwx---)
UMask 007
Uue allkirjastatava tsooni lisamine
Lisa vajadusel InternalHost faili uus kirje.
Tekita võtmete jaoks uus kaust (kui juba pole) ja sinna alla loodava domeeni jaoks kaust, näiteks:
mkdir -vp /etc/opendkim/keys/uusdomeen.ee
Vaheta kausta
cd /etc/opendkim/keys/uusdomeen.ee
ja tekita uus tsoon käsuga
opendkim-genkey --restrict --domain uusdomeen.ee --bits 1024 --selector default
võid muuta väärtusi vastavalt vajadusele. Arvesta, et --bits on vaikimisi 1024. Kui kasutad konfis mingit muud MinimumKeyBits suurust, siis pead seda arvestama võtme loomisel.
Seepeale tehakse sulle kaks faili (--selector argumendile vastavalt): nimeserveri jaoks TXT kirje ja privaatvõti (default.private ja default.txt).
Muuda KeyTable faili, lisades sinna
default._domainkey.uusdomeen.ee uusdomeen.ee:default:/etc/opendkim/keys/uusdomeen.ee/default.private
Muuda SigningTable faili, lisades sinna
uusdomeen.ee default._domainkey.uusdomeen.ee
SigningTable faili puhul olen kohanud ka kirjapilti esimeses väljas *@uusdomeen.ee. Oleneb vist sellest, kas konfis on vaikimisi alamdomeenide allkirjastamine ka sees. Ülanäite puhul tehakse (kuna klapib), aga *@ näite puhul pigem mitte, sest et reegel kehtib vaid @uusdomeen.ee puhul (mitte @alamdomeen.uusdomeen.ee).
Mõlema faili puhul arvesta oma domeeni ja selectori ja kaustapuuga! :)
Nüüd mine oma nimeserveri haldusesse (või palu seda kellelgi teha) ja täienda seda TXT kirjega:
default._domainkey.uusdomeen.ee IN TXT ( "v=DKIM1; k=rsa; s=email; " "p=avalik_võti_base64_encodingus" ) ;
Olen kohanud ka kirjapilti ilma jutumärkideta. Sellisel juhul peaks kogu kirje olema ilma. Selles näites on mõlemad osad omaette jutumärkidega.
Kirja näidispäised
Ühe DKIMi poolt allkirjastatud näidiskirja päisest võib leida
DKIM-Filter: OpenDKIM Filter v2.10.3 mxfilter.uusdomeen.ee 861BF8005D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=uusdomeen.ee; s=default; t=1570605036; bh=LQZPc7Ca6aVneKHX25GlrXx4Xtkwjb0tLZwuCasB0MU=; h=From:To:Subject:Date; b=e2QagT5U4OjBPjTA7sHdGDAMR9R/UilD6TOsXavn5C3Kg49mIMZXsYF6XF30U5uS3 uB6GRQZwZDQR6C3R1adTSW4qlgTN3eZzREm8DhNthDTG4nsmucOdSNYsFkQBuTgShJ V5b/2kOyFAjEeiI9UqIf8gcy6F6uiJhOhKQLQG3Y=
h=From:To:Subject:Date;
Tunnetuslik selgitus hetkel, aga h= peaks näitama neid päiseid, mis olid olemas kirja allkirjastamise hetkel. RFC seletab keeruliselt?
Postfixiga integreerimine
Lisa Postfixi main.cf' faili
# DKIM reeglid smtpd_milters = unix:/run/opendkim/opendkim.sock non_smtpd_milters=$smtpd_milters milter_default_action = accept
Probleemid DKIMiga
Kui kasutad rohkem kui ühte väljuvat e-postiserverit sama domeeni kirjade saatmiseks (nt mailchip või mõni muu masspostitustööriist vmt), siis peaksid seadistama kõigile DKIMi kasutamise. Vastasel juhul on osad kirjad varustatud DKIMi päisega ja osad mitte. Kuna aga su nimeserverist tuleb DKIMi vastus - mis osutub valideerimisel valeks - võib saaja kirja kas minema visata või karantiini või junki panna.
DKIMi võtmeid võib olla rohkem kui üks ja neid saad (pead) eraldada selektoriga!
DMARC
DMARC (Domain-Based Message Authentication, Reporting & Conformance) on protokoll, mis ehitab ennast juba olemasolevate SPF ja DKIM protokollide peale lisades autori, domeeni nime, soovitused kirjade käitlemiseks ning võltskirjade eest kaitseks teated domeeni haldurile.
DMARC seadistatakse analoogselt kahe vennaga nimeserveris ja selle ilmestamiseks on _dmarc.uusdomeen.ee TXT kirje sisuga:
"v=DMARC1;p=reject;sp=none;rua=mailto:dmarcreports@uusdomeen.ee"
DMARC kontrollib kirja From: (header from) päist. SPF kontroll käib aga ümbriku saatja (envelope from) pihta. Kui need domeenid erinevad ja kirjal DKIM allkirja pole, siis DMARC kontroll ebaõnnestub!
TXT kirje komponendid
- v= - versioon, hetkel ainuke valiidne väärtus DMARC1
- p= - policy/poliitika - soovitus, mida kirjadega teha
- sp= - poliitika alamdomeenide jaoks (kui pole öeldud eraldi), väärtused samad mis p
- rua, fo, rf, ri - vaata #Aruanded alampeatükki
NB! p= peab olema kohe peale v= parameetrit!
Aruanded
DMARC reeglite poolt on võimalik nendelt e-posti serveritelt aruannete küsimine, kuhu kirju on saadetud.
Aruannete (Raporting) kohta on neli väärtust TXT kirjes võimalik määrata:
- fo= - mille kohta aruandeid saadetakse
- rf= - raporti formaat
- ri= - intervall kui tihti raportit saadetakse (vaikimisi 24h)24h).
- rua= - raporti saatmise aadress, formaat mailto:dmarcreports@example.com.
- ruf= - detailsem analüüs DMARCi kohta, peab olema samas domeenis mille kohta DMARC kirje on, formaat mailto:dmarcreports@example.com.
Mitu emaili on lubatud panna, kirje on siis midagi sellist rua=mailto:dmarcreports@example.com,mailto:teine@domeen.ee.
OpenDMARC seadistamine
Paigalda pakihaldusest opendmarc pakk
pacman -Sy opendmarc
Tekib töötav konfiguratsioonifail
/etc/opendkim/opendkim.conf
Konfiguratsioon
Tutvu sellega ja seadista vastavalt. Soovituslik on example/esialgsed väärtused alles jätta. Konfiguratsioon on piisavalt self-explanatory.
Selleks, et opendmarc tarkvara töötaks Postfixiga samas grupis oleks mõistlik seadistada opendmarc service käivitusel:
mkdir -vp /etc/systemd/system/opendmarc.service.d/ cat > /systemd/system/opendmarc.service.d/override.conf <<EOT [Service] Group= Group=postfix EOT
Socket või IP
Kui DMARCile tullakse ligi vaid kohalikust masinast, siis on mõistlik kasutada socketit.
Selle jaoks konfigureeri vastavalt soovile:
# Socket inet:8893@localhost Socket unix:/run/opendmarc/opendmarc.sock
Näites siis tehakse socket asukohta /run/opendmarc/opendmarc.sock
NB! Seda pead kasutama pärast ka Postfixi konfiguratsioonis.
Selleks, et postfix saaks opendkimile ligi on soovituslik opendkim lisada postfix gruppi:
usermod -a -G postfix opendkim
Sellisel juhul on vaja ka konfiguratsioonis umask paika panna (et socketi õigused oleksid rwxrwx---)
UMask 007
Postfixiga integreerimine
Vaata ka OpenDKIM Postfixiga integreerimine.
Postfixi main.cf' faili tuleb lisada
# DKIM reeglid smtpd_milters = unix:/run/opendmarc/opendmarc.sock
Kui sul juba on olemas smtpd_milters muutuja, siis jäta opendkim ettepoole ja dmarc tahapoole.
Veendu, et sul oleks seadistatud ka:
non_smtpd_milters=$smtpd_milters milter_default_action = accept
Lingid
- Zone DKIM: https://help.zone.eu/kb/dkim/
- Zone DMARC: https://help.zone.eu/kb/dmarc-reeglid/
- OpenDMARC - http://www.trusteddomain.org/opendmarc/
- OpenDKIM - http://opendkim.org/
- DKIM RFC4871 - http://dkim.org/specs/rfc4871-dkimbase.html
- Abiks DMARC'i seadistamisel - https://www.kitterman.com/dmarc/assistant.html
- DKIM, DMARC valideerimine ja tagasiside (vt Tools menüüst juurde): https://www.dmarcanalyzer.com/dmarc/dmarc-record-check/