2020年6月14日日曜日

Microsoft 365 Business BasicでのDKIMとDMARCの有効化

2020/6/30までの契約でMicrosoft 365 Business Basicが半年無料で使えるとのことだったので試しに契約してみた

独自ドメイン(MSの表記上はカスタムドメイン)のサブドメインでの運用だが、DNSに記載する必要があるレコードは全て管理コンソール上で明示されるので、ほぼコピペだけで問題なく設定が完了した



ただ、Exchange Onlineで利用するメールに対してDKIMとDMARC認証を行うにはGUIだけではできなかった



まずは以下のドキュメント通りに【Exchange Online PowerShell V2 モジュール】をインストールする

PowerShellを管理者権限で開いて以下コマンドを実行
> Set-ExecutionPolicy RemoteSigned

> Install-Module -Name ExchangeOnlineManagement
#yで使用許諾証明書に同意

Exchange Online に接続する
> $UserCredential = Get-Credential

> Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true
#【Windows PowerShell 資格情報の要求】で表示されるダイアログボックスへは今回契約したMicrosoft365のアカウント情報を入力する


■DKIMを手動でセットアップする
以下のドキュメントを参考にPowerShellでコマンドを叩く

Microsoft365の初期ドメインと独自ドメインの両方に適用するため、似たような事を繰り返す
> New-DkimSigningConfig -DomainName <domain> -Enabled $false
Get-DkimSigningConfig -Identity <domain> | Format-List Selector1CNAME, Selector2CNAME
#<domain>のところを初期ドメインと独自ドメインのFQDNでそれぞれ実行する

実行するとPowerShellの画面にDNSに記載するためのレコードが発行されるのでこれをメモしておく

以下がレコードの例
selector1-<domainGUID>._domainkey.<initialDomain>
selector2-<domainGUID>._domainkey.<initialDomain>
#初期ドメインはMicrosoft365側で自動設定されるため気にする必要はない
 <domainGUID>は独自ドメインのFQDNと末尾に文字が挿入された
 <initialDomain>は初期ドメインがそのまま入る

それぞれtxtレコードのHost nameは【selector1._domainkey】と【selector2._domainkey】になっているが、独自ドメインのサブドメインを利用しいているため【selector1._domainkey.<サブドメイン>】と【selector2._domainkey.<サブドメイン>】となる

上記の情報を確認したら、DNSレコードに必要情報を登録する
その上で、Microsoft365管理センターにログインして【Exchange】からExchange管理センターへ移動、【保護】>【dkim】から該当ドメインのdkimを有効にするをクリックする
DNS情報の伝播の関係でエラーが出た際は数時間~1日程時間を空けて再試行すればいい


■DMARCの設定
DKIMさえ有効になればDMARCはレコードを追加するだけで良い
DNSに以下のtxtレコードを追加する
【Host name】 _dmarc.<サブドメイン>
【種類】TXT
【値】"v=DMARC1; p=none"




値を有効にしたのち、gmail宛にテストメールを送り、メールのソースを表示して確認すれば、問題なくDKIMもDMARCも有効化されている



G Suiteの方がこの辺りの設定は簡単なものの、個人で利用する上では540円/月で50GBの独自ドメインのメールが使えて、1TBのクラウドストレージが使えて、ついでにモバイルのアプリが使えると思えばコスパの良いサービスだと思う

今後仕事で関わる可能性も考慮した場合、安価にMicrosoftの管理者として色々設定を確認できるので、何かしらの参考にもなればいいかなとも思う