Portward
ワークフロー

メールサーバー設定:MXからDMARCまで、変更ごとに差分を表示

03
ドメインメール

独自ドメインのメールDNSレコード

独自ドメインのメールサーバー設定は、ソフトウェアではなくDNSから始まります。MXレコードはドメイン宛のメールの配送先を示し、SPFは送信を許可されたサーバーをリスト化し、DKIMは受信者が検証できる署名を追加し、DMARCはこれらの検証に失敗したメールの処理方法を指示します。また、送信元IPアドレスには一致する逆引きDNS(PTR)名が必要です。Portwardはレコードを読み取り、不足しているものをリスト化し、承認すべき変更を差分形式で準備します。受信側はIPの信頼性を判断するため、Portwardはメールが必ず受信トレイに届くことを保証するものではありません。このワークフローは、自身が所有するサーバーで独自ドメインの通常のメールを送信する場合に使用してください。作業は小さく保ちましょう:レコード1つ、差分1つ、テスト1つ。

01

プロジェクトフォルダを開く

ドメイン用のフォルダを作成し、ゾーンファイルやメール設定ファイルをそのフォルダにコピーして、Portwardの作業フォルダとして開きます。ファイルツールはそのフォルダ内で動作するため、エージェントに読ませたいファイルをコピーし、最初の変更前のゾーンファイルのコピーを保管しておいてください。必要に応じて元に戻せるようにするためです。

02

レコードの確認を依頼する

Plan onlyまたはAsk firstを選択し、例えば「このゾーンファイル内のMX、SPF、DKIM、DMARCレコードをリストアップし、不足しているものを教えてください」と目標を記述します。エージェントはツール呼び出しごとにカードを返答し、Plan onlyモードでは何も変更せずに、不足しているものをリスト化します。

03

各差分を確認する

各変更のカードを読んでください。edit_fileツールは新しいレコードを古いレコードの隣に表示し、Ask firstモードでは承認するまで何も変更されません。理解できないものは却下し、再試行する前にエージェントに説明を求めてください。

04

外部からテストする

DNSプロバイダでレコードを適用し、反映されるのを待ってから、Shellで独自のルックアップコマンドを実行し、出力をゾーンファイルと比較します。日付、変更したレコード、ルックアップの結果を、作業フォルダ内のログファイルに記録してください。

サーバーとメールドメインのセットアップチェックリスト

vps-setup-checklist.txt
# checklist for my own VPS and its mail domain
step 1: update the system
step 2: create a normal user
step 3: log in with SSH keys
verify 1: key login works before password login is off
step 4: allow only the ports I need in the firewall
step 5: set the time zone and time sync
step 6: add MX, SPF, DKIM and DMARC records
verify 2: the sending IP has a matching PTR name
step 7: make a backup
verify 3: a test restore works

このシンプルなチェックリストはVPSとその上のメールドメインをカバーします。各検証行には、次に進む前に確認できる結果(キーログイン、ファイアウォールルール、一致するPTR名など)が記載されています。行を自身のサーバーに合わせて編集し、エージェントに1つずつ処理させ、各行の実際の結果を報告させます。自身のサービス用の行を追加し、自身のサーバーに適用されない行は削除してください。

Portwardでメールドメインレコードを設定する

現在のレコードを読み取る

エージェントはread_fileでゾーンファイルのコピーを開き、grepでMX、SPF、DKIM、DMARCの行をリスト化し、不足しているものを1つのカードで報告します。Plan onlyモードでは、このリストをプランとして書き出し、何も変更しません。これはすでにメールを受信しているドメインで始める最も安全な方法です。自宅でメールサーバーをセルフホストする場合は、まず送信元IPアドレスの逆引きDNS名を制御できるか確認してください。受信側はIPの信頼性を判断するためです。リストを読み、最初に追加するレコードを決定します。エージェントはコピー上で作業するため、元のファイルはそのまま保たれます。不足しているレコードのリストをノートファイルに保存し、次のセッションが記憶ではなく事実から始まるようにしてください。

SPFとDKIMレコードを書く

SPFはドメインのために送信を許可されたサーバーをリスト化し、DKIMは受信者が検証できる署名を追加します。エージェントはedit_fileを使用してゾーンファイルのコピーにSPF行を追加し、差分として表示します。また、web_searchで必要な場合はメールソフトウェアの公式ドキュメントを検索し、正確な構文を見つけます。DKIMの公開鍵はメールソフトウェアから取得するため、あなたが貼り付け、エージェントに配置させます。Ask firstモードでは、エージェントは各変更の前に一時停止し、承認する前に新しい行と古い行を比較できます。1回に1つのレコードを追加し、次の追加の前にDNSプロバイダで適用してください。そうすれば、エラーは1つの変更だけに遡れます。

MXレコードと逆引きDNSを設定する

MXレコードはドメイン宛のメールを受信するホストを指定し、PTR名は送信に使用するIPアドレスに属します。エージェントはedit_fileでMX行を追加し、選択した優先度を維持します。また、write_fileで逆引きDNS名として希望するホスト名をリストした短いノートを作成します。IPアドレスを管理しているプロバイダに設定を依頼してください。新しいVPSに必要なハードニングの程度は実行するサービスに依存しますが、メールサービスは考慮すべきポートを増やすため、ポートを開く前にそれらをリストしてください。メールソフトウェアが使用する正確なホスト名を書き、エージェントにMX行とPTRノートとの一致を確認させ、名前が一致するようにしてください。

レコードとメールフローを確認する

Shellで独自のルックアップコマンドを実行し、エージェントにゾーンファイルとの比較を1レコードずつ行わせます。メールを公開する前に、ベースとなるVPSのセキュリティ設定(キーログイン、必要なポートのみを開いたファイアウォール、テスト済みバックアップ)を確認してください。次に、自身のドメインから自身のアドレスへテストメッセージを送信し、SPFとDKIMの結果をヘッダで確認します。エージェントはすべての結果をカードに表示し、ログファイルに結果を記録します。テストが成功しても、すべての受信トレイへの配信を保証するものではありません。チェックに失敗した場合は、ヘッダ行をチャットに貼り付け、受信側が一致しなかったレコードを問い、1回に1つのレコードを変更し、ルックアップコマンドを再実行してください。

Windows用Portward

確認可能なステップでメールDNSレコードを確認

Portwardをダウンロード ↗