Route 53でドメインの実運用に必要な、ネームサーバ(NS)やメールサーバ(MX/SPF/DKIM)のひととおりのDNS設定を実施する
こんにちは。SREホールディングス株式会社のエンジニアの木津です。
最近業務で、AWS のRoute 53 での、ネームサーバの設定やメールサーバの設定など、ドメイン関連の設定について、一通りの流れを経験しました。その内容が勉強になったので、一連の流れとそれぞれの実施内容をご紹介します。
対象読者
- AWS上で運用するサービスを公開するのに、ドメインの設定を行おうとする人
- SPFやDKIMの設定をすると、どういう仕組みで安全なのか知りたい人
全体の流れ
- ネームサーバの設定
- 「お名前.com」で取得したドメインのネームサーバを「Route 53」に変更します。
- メールサーバの設定
- メールサーバとして契約した「Google Workspace」で、そのドメイン名でのメール送受信ができるようにします。
- メールのセキュリティ関連設定
- SPFとDKIMの設定を実施して、なりすましや偽装を防ぎます。
ネームサーバの設定
ウェブアプリのドメインを設定したり、ウェブアプリ上で指定ドメインからのメール送信を行うのに、AWSのDNSである「Route 53」を利用するのが便利なので、「お名前.com」で登録したドメインのDNSを「Route 53」に変更します。
実施概要
Route 53での設定手順概要
- Route 53: 「お名前.com」で登録されたドメイン名を指定して、ホストゾーンを作成します。
- Route 53: 登録後に表示される、ドメインに関連付けされたNSレコード(ネームサーバ)4点をメモします。
- お名前.com: メモした4つのNSレコードを、お名前.comに設定します。
反映確認
対象ドメインのネームサーバがRoute53に切り替わっているかを、nslookupコマンドを使って確認します。
「Non-authoritative answer」の欄にRoute53で表示されたネームサーバのアドレスが表示されていたらOKです。
$ nslookup -type=ns example.domain.com
参考
メールサーバの設定
上記のように、ドメインのネームサーバを「Route 53」に設定した上で、メールサーバとして契約した「Google Workspace」で、そのドメイン名でメールを送受信できるようにします。
ドメインの所有権をTXTレコードで証明する
第三者にドメインが不正使用されるのを防ぐため、ドメインの所有権証明を行います。
概要
手順
- Google Workspace: Google管理コンソールで確認コードを取得する
- Route 53: TXTレコードに上記確認コードを設定する
- Google Workspece: 確認コードを確認する
確認
nslookup -type=txt example.domain.com
参照
転送先メールサーバ設定
対象ドメイン宛てのメールの転送先としてGoogleのメールサーバを参照するように、DNSのMXレコードを設定します。
手順
- Route 53: ドメインのMXレコードで、Google Workspace の MX レコードの値の通りに設定する
確認
nslookup -type=mx example.domain.com
参考
中間疎通確認
転送メールサーバ設定(MXレコード)と所有者証明(TXTレコードにgoogle-site-verification=...
設定)が完了した段階で、メールの受信ができるかを確認します。
対象ドメイン宛てにメールを送付して、メール受信できればOK!
メールのセキュリティ関連設定
送信元ドメイン認証(SPF)
送信元アドレスは書き換えが可能で、簡単になりすましメールを送付できてしまいます。なりすましを防止するため、電子メールの送信元ドメインが詐称されていないかを検査するための仕組みとして、SPF(Sender Policy Framework)が、RFC4408で定められています。
送信元ドメインが正しいことを示すためのSPFの設定を行います。
概要
手順
- Route 53: TXTレコードに、GoogleのSPFレコード情報を登録する
確認
nslookup -type=txt example.domain.com
参考
- Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1
- ドメイン プロバイダで SPF レコードを追加する
- 送信ドメイン認証(SPF、DKIM、DMARC)とは?ゼロからわかる入門編
- SPFとは
改ざん検知(DKIM)
メールの改ざんを検知できるようにするため、DKIMの設定をします。
DKIM (DomainKeys Identified Mail)は、メールを送信する際に送信元が電子署名を行い、受信者がそれを検証することで、送信者のなりすましやメールの改ざんを検知できるようにするものです。
概要
手順
- Google Console: DKIMの鍵を作成する
- Route 53: 生成されたDKIM 情報のホスト名情報と公開鍵の値の情報を、TXTレコードに登録する
注意
DKIMの鍵情報は500文字程度あるが、DNSのTXTレコードの最大長は255文字のため、分割して登録する必要がある。
- How do I resolve the "CharacterStringTooLong (Value is too long) encountered with {Value}" error that I received when I tried to create a TXT record using DKIM syntax?
- DKIM keys and TXT record limits
確認
- 以下サイトで、ドメインを入力してSPFとDKIMの登録を確認
- dmarcian
- ※今回DMARKは対応していない
最終疎通確認
実際に対象ドメインのメールアドレスから送信したメールを受信して、受信側でSPF/DKIMが正しく認証されていることを確認します。
- 対象ドメインのメールアドレスから、メールを送信
- メールを受信したメーラーなどで、SPF/DKIMがpass しているか確認する
- Gmail -> 対象メールを開いて、右上のメニューアイコンクリック -> メッセージのソースを表示
- Outlook -> 対象メールを開いて、右上のメニューアイコンをクリック -> 表示 -> メッセージの詳細を表示
参考
- DKIMとは
- Turn on DKIM for your domain
- DKIM selectors
- How do I resolve the "CharacterStringTooLong (Value is too long) encountered with {Value}" error that I received when I tried to create a TXT record using DKIM syntax?
- DKIM keys and TXT record limits
- 【図解】DKIMとは?SPFとの違い、最新のDMARCも!なりすましメール対策の仕組みを解説
まとめ
Route 53でドメインを取り扱うときの、ネームサーバ設定やメールサーバ関連設定など、一連の流れをご紹介しました。
メール関連の設定は少々煩雑ですが、SPFやDKIMの認証の仕組みを学ぶことで、それらの設定があるから認証の仕組みが成立しており、結果として利用者の安全が守られていることが再認識できました。
何かの参考になれば幸いです。
Discussion