Google Appsで運用している独自ドメイン名のメールの送信元偽装防止対策として「SPF」に続き、このほど「DKIM認証」にも対応した。
「DKIM」とは「DomainKeys Identified Mail」の略称で、送信したメールに電子署名を付けて送信することで、送信者を詐称したメールでないことを証明する認証方式である。
電子署名は、送信メールサーバー(Google Appsの場合はGmailのサーバー)が自動的に行うので、クライアント側で新しいことをする必要はない。また、この電子署名を確認するのは受信者側のメールサーバーで、受信メールサーバーはDNSサーバーに予め登録されている公開鍵と電子署名を照合し、届いたメールが正しい送信元であることを確認する。
なにやら難しそうな話ではあるが、ドメイン管理者が行うことはDNSサーバーに公開鍵を「TXT」レコードで追記するだけである。VALUE-DOMAINユーザーの場合は、下記の設定で利用できる。
Google Appsの設定
- ダッシュボード(管理者画面)にログインする。
- この記事を書いている時点では、ダッシュボードが日本語表示になっている場合は、DKIM設定の画面が表示されないため、一時的に「英語版」にする必要がある。
- 「ドメインの設定」→「全般」タブを下記に設定して「設定を保存」ボタンを押す。
・言語 = 「English(US)」
・新しいサービスとベータ版の機能 = 拡張版 (アメリカ英語のみ)
- 「Advanced tools」→「Authenticate email Set up email authentication (DKIM)」のリンクを開く
- 「Authenticate email」の一番下にある「Generate new record」のリンクを開くと「Generate new record」の画面が開く。
- 既に「Prefix selector」に「Google」と入力されているが、特に変更する必要はない。また任意の英数字の文字列を入力してもよい。
- 「Generate」ボタンを押すと
・DNS Host name (TXT record name):
・TXT record value:
が表示される。これをDNSにTXTレコードとして登録する。
VALUE-DOMAINの設定
ここではネームサーバーで「ns*.value-domain.com」を利用している人と「dns*.name-services.com」(eNom)を利用している人で設定方法が違ってくる。
I.「ns*.value-domain.com」を利用の場合
- VALUE-DOMAINの管理画面にログインし、該当の独自ドメインのネームサーバー設定画面を開く。
- 設定フィールドに下記を追記して「保存する」ボタンを押す。
txt google._domainkey v=DKIM1; k=rsa; t=y; p=MIG(中略)QAB
※赤字の部分は「Prefix selector」画面で設定した文字列になる。未設定の場合は「google」になる。
II.「dns*.name-services.com」(eNom)を利用の場合
- VALUE-DOMAINのDNS情報変更画面から設定しようとすると「TXT record value」が後半が切れてしまうため、設定は出来ない。
- 公開鍵情報は239文字。VALUE-DOMAINの画面から入力できる文字数は130文字。そのため、eNomの画面から設定変更を行う。
- ただ、eNomの画面から変更して、トラブルが発生した場合は、VALUE-DOMAINではサポート対象外となるため、自己責任で設定を進めて欲しい。
- eNomの管理画面にログインする。
・domain = 独自ドメイン名 (例:example.com)
・password = VALUE-DOMAINの「ドメインパスワード」欄に記載されているパスワード。 - 「Domain Settings」タブの「Host Records」の項目の「Edit」ボタンを押す。
- 次の画面で「Add New」ボタンを押す。
- 「Host Records」が編集可能の状態になるので、下記を入力し「Save」ボタンを押す。
- Host Name = google._domainkey
※赤字の部分は「Prefix selector」画面で設定した文字列になる。未設定の場合は「Google」になる。
- Address = v=DKIM1; k=rsa; t=y; v=DKIM1; k=rsa; t=y; p=MIG(中略)QAB
- Record Type = TXT
- Host Name = google._domainkey
- Google Appsのダッシュボード(管理者画面)にログインする。
- 「Advanced tools」→「Authenticate email Set up email authentication (DKIM)」のリンクを開く
- 「Authenticate email」画面一番下の「Start authentication」のボタンを押す
- Status欄が緑色の字で「Authenticating email」と表示されれば設定完了である。
- 赤字で「Not authenticating email」というメッセージが出た場合は、DNSが浸透(伝搬)していないので、時間をおいて、この項目の手順を繰り返して確認する。設定後48時間は様子見である。
- 設定が完了すれば、ちゃんと有効になっているかもチェックしておきたい。一番てっとり早いのはテストメールをGmail(gmail.com)宛へ送る方法である。
- GmailのWebメールでテストメールを受信し、「詳細を表示」のリンクを開くと「署名元」欄が表示され、DKIMを設定した独自ドメイン名が表示されていれば、正常に運用できている。
きちんと運用できていることを確認できれば、Google Appsのダッシュボードを日本語表示に戻してもよい。
DarkHor.se
丁寧な解説で、とても参考になりました。
さっそく設定し、浸透待ちです。
ありがとうございました。
Ammy
こんにちは。
TXTフィールド内の“ t=y”は確認が終わったら消したほうがいいと思うのですが、どうなんでしょうか?
kazamidoriからAmmyへの返信
Ammyさん。はじめまして。
まず「t=y」とは「DKIMのテストモード」を意味し、DKIM認証に失敗しても受信側で受信できるようにする意味があります。
Ammyさんの疑問を受けて、休眠中のドメインを利用して、Google Apps指定のDKIMのTXTレコードから「t=y」を外し、テストしてみました。サンプルは少ないですが、このドメインからGmailとそれ以外のメールアドレス3件にメールを送ってみました。当然ながらすべて正常に受信できており、メールのヘッダーにも「DKIM-Signature」「DomainKey-Signature」が追記されていました。
従いまして、本稿記事で正常に運用できていれば、DNSレコードから「t=y」を削除しても問題はなさそうです。
ちなみに「gmail.com」ドメインのDKIMのコードをnslookupで確認したところTXTレコードに「t=y」がしっかりと入っていました。(gamma._domainkey.gmail.comで確認)
motu
今日、やってみました。
気付いた変更点2ヶ所。
1.ダッシュボードは日本語のままで出来ました。
「高度なツール」→「メール認証(DKIM)を設定」
2.生成されたTXTレコードに“ t=y”は存在しませんでした。
>TXT レコード値:v=DKIM1; k=rsa; p=MIG後略