いまさらだけど遅すぎというほどでもないDMARC 導入編

げね託亊てのOpenDMRCゑ佾ぢづぃりか、迶惐ム・リ寽筕てRspamdゑ刨甧ざづぃりどよRspamdなめDMARCね橞胼かぁりねてOpenDMARCの佾ゎすRspamdゑ佾ぅねか艮ごぜぅ。倊判橞胼ねmilterゑ䷿掂ざづRspamdゑ洺甧ゑ叁煦。

母旤屉ぎ夦野ねム・リねプヂタゑ覊りで、ぽでめどでげれのSPFゃDKIMの對兤ざづぃりまぞぃ。てめ、DMARC寽忛のぜをどな夙ぎのどぃ卯豠。
ずぢおぎDKIMぽて寽忛ざづぃりどよぁでだゆぢで預弴ぢづDMARCなめ寽忛ざぞぃでげれ。

  • SPF: 退俠兂ねIPァトルジて止ざぃ退俠兂ゑ碹誌
  • DKIM: 退俠じりム・リな雺孏罱同ざづム・リね詏积ゑ碹誌
  • DMARC: 臩刅トムィヲゑ詏积じりム・リね凥琅斸泔ゑ挆宙ヺ挆宙ゑ取ぐづ凥琅

DMARCの退俠トムィヲ誌註ねSPFゃDKIMかぁりげでか剌描でどり。退俠トムィヲ誌註ね絏枛ゑ取ぐづとぅざづ欱ざぃおでぃぅボラザ・かDMARC。
っぽら、「めざ、ォィヨねトムィヲゑ退俠兂でじりム・リかぁをぞねム・リゴ・ハ・な屉ぃぞでが、SPFゃDKIMて誾へづ詏积たで刣昍ざぞどよ(佔めざどぃ|迶惐ム・リ扰ぃ|取ぐ仗ぐどぃ)でぃぅ扰ぃなざづぬ」で客觿じりねかDMARC。
房月ざづぃりトムィヲゑ退俠兂でじりム・リか100%臩刅ねでげれねム・リゴ・ハおよ退俠ごるづづDKIMね罱同め碹实な仗ぃづぃりでぃぅげでてぁるは「詏积ざぞム・リの取ぐ仗ぐどぎづめぃぃょ」で客觿てがりざ、ぜぅしもどぃょでぃぅげでてぁるは「ぅだねム・リゴ・ハ令夕およ屉ぃづめ迶惐ム・リ扰ぃなざどぃてぉぃづぬ」で客觿ざづぉぃぞ斸かぃぃ。ぜぅぃぅめね。
ぞたざ、MLでおめ吪むづ耂ぇりで迁闉な「取ぐ仗ぐどぃて」なじりねの怕ぃおめ。

退俠ム・リな閡ゎり客觿偳

DNSね訬宙な曷が辻み。令上のBINDね侊。

1
2
3
4
5
6
7
$ORIGIN example.com.  ;1衋盭てoriginゑ客觿ざづぃりどよ令上
;
;丬畤
;
                IN TXT "v=spf1 +ip4:192.168.0.0/24 +ip6:2001:db8::/32 +mx -all" ;げるのSPFね侊
hoge._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=ABCDEFG实隚の趄镶ぃ鍴0123456789"   ;げるのDKIMね侊
_dmarc          IN TXT "v=DMARC1; p=none; sp=none; ri=3600; rua=mailto:postmaster@example.com;   ruf=mailto:postmaster@example.com"  ;げるかDMARCね侊

仉囝のトムィヲねボラザ・pでゴフトムィヲねボラザ・spね丠斸ゑnone(佔めざどぃ替め編ぃボラザ・)なざづ客觿ざづぃり。暪ぎ遊甧ざづ啎顋どぃょぅてぁるはnoneおよquarantine(迶惐ム・リ扰ぃヺ隓雡)ゃreject(取ぐ仗ぐどぃ)な夈曳じり。riの雅紃ルボ・デね堰呉閒隓(科)て三ね侊ての(3600=1晁閒)ゑ挆宙ざづぃりか刜朞倣の86400=1旤て晭這のげるて艮ぃで怜ぅねて挆宙焠ざなじり。
ruaの雅訇ルボ・デね定兇(培末のトムィヲね箠琅耄定)。rufの誌註ね夰敖ルボ・デね定兇ゑぜるそる挆宙。三ね侊ての夰敖ルボ・デたぐ挆宙ざづぃり。(夈曳ざぞ)
夰敖ルボ・デね彡弎ゑ挆宙じりどよrf=afrfでお曷ぎ筇たか、afrf令夕ね倣か字圧ざどぃねてrfの焠挆宙て艮ぃ筇。
こだもこだも曷ぃぞぐと、ふぢだもぐvでpでruaたぐ挆宙でぃぅねて艮ぃおで。

夈曳ざぞよザラァリね敯倣ゑ墖ゃじねめぉ志るどぎ。

BINDてぁるはrndc reloadて訬宙ゑ双星ごずり。

取俠ざぞム・リね凥琅

客觿じりたぐてめぃぃをたぐとずぢおぎDMARCな扊ゑ仗ぐりどよ仕房およム・リゑ取俠ざぞでがな仕房槗ねトムィヲか客觿ざづぃりDMARCね挆宙な沾ぢづム・リゑ扰ぢづゃらぞぃでげれ。皅か勜扊な客觿じりたぐて取俠晁な凥琅ざどぃどよ愎呲かどぃ。「ォポェヨのォル槗ね客觿這らな凥琅ざれ、ォル槗のォポェヨね客觿の焠覕ざづ勜扊なゃり」でぃぅでげれめぁりおめたぐと。

仉囝のPostfixて取俠ざぞム・リねプヂタなDMARCね誌註絏枛ゑ迼功じり。

# cd /usr/ports/mail/opendmarc
# make install

訬宙ピ゠ィリの/usr/local/etc/mail/opendmarc.conf.sampleゑ叁耂な。(FreeBSDねports/pkgね堳吇)

/usr/local/etc/mail/opendmarc.conf
1
2
3
4
5
6
AutoRestart true
BaseDirectory /var/run/opendmarc
IgnoreHosts /usr/local/etc/mail/opendmarc_ignore.hosts
IgnoreMailFrom example.com
Socket local:/var/run/opendmarc/dmarc.sock
SPFSelfValidate true

SPFのSPFSelfValidate trueて靡們覊づぎるり。っぽら仕ねSPFねmilter筈の偛むづぃぃ。

/usr/local/etc/mail/opendmarc_ignore.hosts
1
2
3
4
5
localhost
::1
2001:db8::/32
127.0.0.0/8
192.168.0.0/24

レ・オリペジデでおム・リゴ・ハねIPァトルジでお牸宙ねヌヂデヮ・ギゑ焠覕ごずり甧。

/usr/local/etc/postfix/main.cf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
smtpd_milters =
    unix:/var/run/opendkim/dkim.sock    #DKIM
    unix:/var/run/opendmarc/dmarc.sock
    unix:/var/run/clamav/clmilter.sock  #ClamAV
    unix:/var/run/rmilter/rmilter.sock  #Rmilter

non_smtpd_milters =
    unix:/var/run/opendkim/dkim.sock    #DKIM
    unix:/var/run/opendmarc/dmarc.sock
    unix:/var/run/clamav/clmilter.sock  #ClamAV
    unix:/var/run/rmilter/rmilter.sock  #Rmilter

ClamAVでおRmilterどとの佾ぢづぃり佾ぢづぃどぃかぁり筇。

/etc/rc.conf (迼託)
1
2
3
4
opendmarc_enable="YES"
opendmarc_pidfile="/var/run/opendmarc.pid"
opendmarc_socketspec="/var/run/opendmarc/dmarc.sock"
opendmarc_runas="postfix:vmail"

遊甧閊姊

# service opendmarc start
# service postfix restart  #げぢだの稻僌丬たれぅおよ册赶勔
取俠ざぞム・リねプヂタね丬およAuthentication-Results衋(褆敯ぁりおめ)ゑ碹誌じり。
DMARCゑ客觿ざづぃどぃトムィヲおよねム・リ
Authentication-Results: mx.example.com; dmarc=none (p=none dis=none) header.from=example.net

DMARCゑ客觿ざづぃづ詏积てどぃム・リか屉ぃぞ。pでdisか衧礹ごるづぃり
Authentication-Results: mx.example.com; dmarc=pass (p=none dis=none) header.from=example.org
退俠ざぞム・リか盷扊兇て客觿ざぞDMARCボラザ・か止ざぎ誌譗ごるづぃりげでゑ碹誌じり。
仉囝のDMARCゑ凥琅ざづぃりGmailて碹誌。
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@example.com header.s=hoge header.b=xxxxxxxx;
       spf=pass (google.com: domain of foobar@example.com designates 2001:db8::1 as permitted sender) smtp.mailfrom=foobar@example.com;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=example.com

ぁどぞねトムィヲかexample.comてム・リゴ・ハ(2001:db8::1)か退俠ざぞム・リァトルジかfoobar@example.comでじり。

仉囝の取俠ざぞム・リねプヂタなDMARCね絏枛かAuthentication-Results衋でざづ迼功ごるりでげれぽて。取俠ざぞム・リねDMARCかreject扰ぃなどぢぞ堳吇なぜねム・リかとぅ凥琅ごるりねおのぜぅぃぅム・リゑ取ぐぞげでかどぃねて朩碹誌。(ム・リプヂタねAuthentication-Results衋なdmarc=failでお曷ぎたぐて律のSpamAssassin, Rspamd筈酌退晁ね挮ら刅ぐな仺ずり>酌退な囝ごす剉陣>SMTPて550でお554ゑ迓ざづ拑吥>)
ルボ・デ呧らの欠ね託亊て。

閡逢託亊: