0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOS7 : OpenDKIM 2.11.0 + Postfix 2.10.1 で DKIM の実装

Last updated at Posted at 2024-10-11

新しいメール送信者のガイドライン

2024 年 2 月 1 日以降、Gmail アカウントにメールを送信するすべての送信者は、このセクションに示す要件を満たしている必要があります。

重要: Gmail アカウントに 1 日あたり 5,000 件を超えるメールを送信する場合は、1 日あたり 5,000 件以上のメールを送信する場合の要件を満たす必要があります。

送信元ドメインに SPF または DKIM メール認証を設定します。
送信元のドメインまたは IP に、有効なフォワードおよびリバース DNS レコード(PTR レコードとも呼ばれます)があることを確認します。詳細
メールの送信に TLS 接続を使用します。Google Workspace で TLS を設定する手順については、メールのセキュアな接続を必須にする手順についてのヘルプ記事をご覧ください。
Postmaster Tools で報告される迷惑メール率を 0.3% 未満に維持します。詳しくは、迷惑メール率の詳細をご覧ください。
Internet Message Format 標準(RFC 5322)に準拠する形式でメールを作成します。
Gmail の From: ヘッダーのなりすましはしないでください。Gmail では、DMARC の quarantine(検疫)適用ポリシーの使用が開始されます。Gmail の From: ヘッダーのなりすましをした場合、メール配信に影響する可能性があります。
メーリング リストや受信ゲートウェイなどの転送サービスを管理する場合は、送信メールに ARC ヘッダーを追加します。ARC ヘッダーによって、メールが転送されたことが示され、送信者が転送者と見なされます。メーリング リストの送信者は、メーリング リストを指定する List-id: ヘッダーも送信メールに追加する必要があります。

Step1: 現在の環境の確認

既にPostfixを使ったメールサーバが構築されていることを前提に進めます。メールサーバはローカルドメインや仮想ドメインのどちらでも構いません。

この手順は、CentOS6やUbuntuでもほとんど変わりません。

Step2: 必要なソフトのインストール

yum リポジトリの追加

まず、EPELリポジトリをインストールします。

sudo yum install -y epel-release

OpenDKIM のインストール

EPELリポジトリを利用してOpenDKIMをインストールします。

sudo yum install -y --enablerepo=epel opendkim

Step3: 秘密鍵と公開鍵の作成

鍵の保存ディレクトリの作成

複数のドメインを運用している場合、ドメイン毎にディレクトリを作成することをお勧めします。

sudo mkdir /etc/opendkim/keys/hogehoge.net
sudo mkdir /etc/opendkim/keys/fugafuga.net

鍵の作成

opendkim-genkeyコマンドを使って鍵を作成します。

sudo opendkim-genkey -D /etc/opendkim/keys/hogehoge.net -b 2048 -d hogehoge.net -s 20241011
sudo opendkim-genkey -D /etc/opendkim/keys/fugafuga.net -b 2048 -d fugafuga.net -s 20241011

オプション説明

  • -b オプション: 鍵の長さを指定します。2048ビットを推奨します。
  • -d オプション: メールアドレスのドメイン部分を指定します。
  • -s オプション: 鍵のセレクタを指定します。任意の管理しやすい文字列を使用します。

鍵のパーミッションの設定

生成した鍵のパーミッションを設定します。

sudo chmod 700 /etc/opendkim/keys/*
sudo chmod 600 /etc/opendkim/keys/*/*

また、所有者をopendkimユーザーに変更します。

sudo chown opendkim. -R /etc/opendkim/keys/*

Step4: OpenDKIM の設定

設定ファイルの編集

OpenDKIMの設定ファイルを編集します。

sudo vi /etc/opendkim.conf

送信時の署名を有効にするために、Modesまたはsvに変更します。

Mode sv

使用する鍵の設定

キーテーブルと署名テーブルを指定します。

KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable

キーテーブルを作成し、鍵の情報を追加します。

sudo vi /etc/opendkim/KeyTable
20241011._domainkey.hogehoge.net hogehoge.net:20241011:/etc/opendkim/keys/hogehoge.net/20241011.private
20241011._domainkey.fugafuga.net fugafuga.net:20241011:/etc/opendkim/keys/fugafuga.net/20241011.private

署名テーブルも編集します。

sudo vi /etc/opendkim/SigningTable
*@hogehoge.net 20241011._domainkey.hogehoge.net
*@fugafuga.net 20241011._domainkey.fugafuga.net

OpenDKIM の起動

設定が完了したら、OpenDKIMを起動し、自動起動を有効にします。

sudo systemctl start opendkim
sudo systemctl enable opendkim

Step5: Postfix の設定

PostfixにOpenDKIMを関連付けます。Postfixの設定ファイル/etc/postfix/main.cfを編集し、以下の設定を追加します。

smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

設定後、Postfixをリロードします。

Step6: DNS レコードの設定

DKIM 公開鍵レコードの設定

公開鍵をDNSに設定します。以下のコマンドで生成された公開鍵を確認し、DNSのTXTレコードとして登録します。

sudo cat /etc/opendkim/keys/*/*.txt

公開鍵ファイルには次のような内容が含まれています。

20241011._domainkey     IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdz4AEc0L7y+8pGcnUeX3aF/O5ZvcgtmUs2245D+VLCdn6wr/EA5zvWzSZHf1Pr9c/62EbtY0qangUP5GE+jfwFZLbVOm3r04leyzapQ0h04R+qKT3mgoGgDlQHWi2id3uDqhvVpmWTcLMtyYSmmM1cj954MpeWBCYFYRthVk+3wIDAQAB" )  ; ----- DKIM key 20241011 for hogehoge.net

この公開鍵をDNSにTXTレコードとして登録します。TXTレコードの形式は以下の通りです。

  • セレクタ名:20241011._domainkey
  • ドメイン名:hogehoge.net
  • 公開鍵の内容:v=DKIM1; k=rsa; p=公開鍵データ

公開鍵データが長い場合、255文字以下に分割して登録する必要があります。

また、DNSサービスプロバイダによっては、適切に自動で分割してくれることもあります。

ADSP レコードの設定

ADSPレコードも設定し、メールの署名ポリシーをDNSに登録します。

_adsp._domainkey.hogehoge.net. IN TXT "dkim=unknown"
_adsp._domainkey.fugafuga.net. IN TXT "dkim=unknown"

DNS 設定の確認

設定が反映されたことを確認します。

dig 20241011._domainkey.hogehoge.net txt
dig 20241011._domainkey.fugafuga.net txt

Step7: 追加の設定

署名が二重にされる場合

amavisd-newをインストールしている場合、DKIMの署名が二重になることがあります。この場合、Postfixのmaster.cfに以下の設定を追加します。

-o receive_override_options=no_address_mappings,no_milters

セキュリティ設定

OpenDKIMはroot権限で実行する必要はありません。追加のセキュリティ設定を行うことをお勧めします。

参考情報

おわりに

これでCentOS7上でOpenDKIMとPostfixを使ってDKIMの実装が完了しました。この設定により、送信するメールにDKIM署名を付与し、受信側での認証が行えるようになります。メールの信頼性を向上させるため、ぜひDKIMの実装を検討してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?