【設定方法】DKIMとは?ビジネスメールのセキュリティ対策!仕組みも解説

ビジネスメールのセキュリティ対策にはさまざまなものがあります。その中で「DKIM」という技術をご存じでしょうか。

「DKIM」は電子署名を用いてメールの正当性を証明する技術です。

似ているものとして「SPF」「DMARC」などのドメイン認証技術があります。

それぞれの技術は異なる目的や仕組みがあり、組み合わせることでよりセキュリティを高めることができます。

この記事では「ビジネスメールのセキュリティ対策を行いたい」「そもそも『DKIM』ってなに?」という方に向けて、ドメイン認証技術の1つであるDKIM(DomainKeys Identified Mail)の設定方法について解説していきます。

DKIMとは

「DKIM」とは「DomainKeys Identified Mail」の略で「SPF」と同様にドメイン認証技術の一つです。電子署名を用いてメールの正当性を証明できます。

DKIMの仕組み

  1. 送信メールサーバーより秘密鍵を用いて署名を付与したメールが送信される。
  2. 受信メールサーバーがメールを受信する。
  3. 受信メールサーバーがDNSへDKIMの正規の情報を問い合わせる。
  4. DNSへ登録されている公開鍵との認証チェックする。

事前にDNSへDKIMの正規の情報を登録しておきます。

メール送信の際に電子署名を付与し、メールを取得した際に受信者側がDNSより取得した正規のDKIM情報を用いて検証することでメールの正当性を確認します。

認証失敗時は受信者側のセキュリティ状況により、スパムメール扱いされ、受信者の迷惑メールフォルダに振り分けられることがあります。

また、受信サーバー側が受信拒否を行う場合があります。

送信者側がDMARCの設定を行っている場合は、DMARCの設定によりメールを「受信」「隔離」「拒否」します。

SPFとの違い

ドメイン認証方式で似ている認証技術にSPFが有ります。

SPFについては別記事で詳しく解説しています。

SPFは送信元のIPアドレスを元にドメイン認証を行います。IPアドレスを利用するため送信元の正当性への認証に効果が有ります。

しかし、メールの改ざんなどの検知は行わないためメールの内容の正当性を保証はできません。

DKIMは、メールの改ざんの検知を行うため、メール内容の正当性への認証に効果が有ります。

しかし、送信元の正当性は完全に保証できません。

よって、SPFとDKIMは似ている点が多いですが特徴が異なるため、ともに対応を行う事が望まれます。

設定方法

それでは実際に対応した際の設定を記載していきます。

設定環境

  • CentOS 7
  • Postfix
  • DNSはお名前ドットコム様

※メールの送信は本サーバーにて行います。

設定の流れ

  1. SMTPサーバーにてDKIMの設定
  2. DNSへのDKIM情報の登録
  3. SMTPサーバーへのDKIMの反映
  4. SMTPサーバーにてDKIMの設定

DKIMの設定

epelをインストール ※インストール済みの場合はスキップ
$ sudo yum install epel-release
openDKIMをインストール
$ sudo yum install opendkim

※エラーになる場合はリポジトリを一時的に有効にしてインストール
$ sudo yum --enablerepo=epel install opendkim
鍵を保管場所を作成
$ sudo mkdir /etc/opendkim/keys/※任意のディレクトリを作成 

例:$ sudo mkdir /etc/opendkim/keys/example.com
鍵の生成
$ sudo opendkim-genkey -D [ファイルの保存先のパス ※3で作成したディレクトリ] -b 2048 -d [ドメイン名] -s [セレクタ名 ※任意] 

例:$ sudo opendkim-genkey -D /etc/opendkim/keys/example.com -b 2048 -d example.com -s 20220901 
「-b」の数値は設定するDNSにより公開鍵の長さが変わるため要注意。 ※ちなみにお名前ドットコムは「2048」
$ sudo chown opendkim:opendkim -R /etc/opendkim/keys/example.com/
各種テーブルの設定、DKIMの設定
$ sudo vi /etc/opendkim/KeyTable

※「#default._domainkey.example.com example.com:default:/etc/opendkim/keys/default.private」の下に追記

[セレクタ名 ※作成したセレクタ名]._domeinkey.[ドメイン名] [ドメイン名]:[セレクタ名 ※作成したセレクタ名]:[セレクタ名 ※鍵の名前].private

例:20220901._domainkey.example.com example.com:20220901:/etc/opendkim/keys/example.com/20220901.private
$ sudo vi /etc/opendkim/SigningTable

※「#example.com default._domainkey.example.com」の下に追記

*[※アカウントの@以降] [セレクタ名 ※作成したセレクタ名]._domainkey.[ドメイン名] ※全てのメールに適用させるためワイルドカードにて指定

例:*@example.com 20220901._domainkey.example.com
$ sudo vi /etc/opendkim.conf
※変更変更箇所のみ記載しています。
1.モードの変更
Mode sv ← 「Mode v」を変更

2.keyfileをkeytableの利用へ変更
#KeyFile /etc/opendkim/keys/default.private ※コメントアウト
KeyTable /etc/opendkim/KeyTable ※「#」を削除し有効化

SigningTable refile:/etc/opendkim/SigningTable ※「#」を削除し有効化

ExternalIgnoreList refile:/etc/opendkim/TrustedHosts ※「#」を削除し有効化

InternalHosts refile:/etc/opendkim/TrustedHosts ※「#」を削除し有効化
$ sudo vi /etc/opendkim/TrustedHosts

127.0.0.1 ※末尾に追記
$ sudo vi /etc/sysconfig/opendkim

AUTOCREATE_DKIM_KEYS=NO ※末尾に追記
$ sudo systemctl restart opendkim
$ sudo systemctl enable opendkim ※自動起動の設定の設定のため必須では有りませんが、推奨します。

DNSへのDKIM情報の登録

次にDNSへの登録を行います。登録に必要な情報を抜き出します。

公開鍵の情報取得
$ cat /etc/opendkim/keys/[ファイルの保存先のパス ※鍵を作成したディレクトリ]/[鍵の名前].txt

例:$ cat /etc/opendkim/keys/example.com/20220901.txt

◎実行結果例:
20220901._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=******************************************" ) ; ----- DKIM key 20220901 for example.com

※"P="の中身が公開鍵の情報です。
TXTレコードの設定
<セレクタ>._domainkey.<ドメイン名> IN TXT “v=DKIM1; k=rsa; p=xxxxxxxxxxxxxxxxxxx…"

例:20220901._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=xxxxxxxxxxxxxxxxxxx…"
DNSによって記載方法が異なる場合があるので要確認です。
DNSへの設定の反映には数時間~2,3日程度掛かる場合がございます。
そのため、先にDKIMの設定をPostfixへ反映させてしまうと、DNSの反映を待っている間正当なメールの認証が失敗し迷惑メール扱いを受ける場合がございます。
ご注意ください!!

Postfixの設定・反映

$ sudo vi /etc/postfix/main.cf

※末尾に追記
## DKIM
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
$ sudo postfix check ※Postfixのチェック
$ sudo systemctl restart postfix

以上で設定は完了です。

設定の確認

設定がうまくいっているか確認します。確認方法は複数あります。

DNSへの設定を外部サイトにて確認

確認可能なサイト:「MXTOOLBOX」内の「SuperTool」
https://mxtoolbox.com/SuperTool.aspx

  1. 上記サイトへ遷移する。
  2. 検索ボタン(ドメイン入力欄右のオレンジのボタン)を「DKIM Lookup」へ変更する。
  3. 対象のセレクタ名とドメインを入力し検索ボタンを押下する。
  4. 下記のように設定情報が表示される。

メールへの設定を確認

※Gmailを元に紹介します。

  1. Gmailユーザーへ設定した送信サーバーよりメールを送信する。
  2. 受信したGmailユーザーにて受信したメールのメッセージのソースを表示する。
  3. メールのヘッダーを確認しうまくいっていれば下記のようにDKIMの欄が「PASS」という表示になっている。

DKIMについて

以上、うまく完了しましたでしょうか?

今回は設定変更を行うためバックアップを取っての作業をお勧めいたします。

もし本記事にてご自身にてやってみよう!という初学者の方や専門知識をお持ちでない方、通常業務の片手間でシステム管理を行っておりじっくりとサーバーを触る時間がない!といった方にはご自身での作業はあまりお勧めいたしません。

メールサービス自体の設定を変更するので、失敗すると「今まで送れていたメールが送れない…」なんてことも…。

データセンターサービスのオプション有のアウトソーシングサービス

オフィスドクターは東京、福岡を中心に月額1万円と少額からご利用いただける情シスのアウトソーシングサービスです。

今回のようなメールサーバーの対応はもちろん、メールソフトの使い方~システム構築に至るまで幅広くサポートしております。

また、追加オプションとして有人管理のデータセンターサービスがあります。

1Uからのハウジングも可能な他、ホスティングはお手頃価格の共有サーバーと拡張性のある専用サーバーがあり、お客さまの予算やニーズに合わせてプランをお選びいただけます。

プラン内容や費用に関しては別ページに記載しています。

関連記事

追加オプションとは 基本プランに対して、任意のオプションサービスを追加いただけます。 追加オプションのサービス内容 現在は、2つのオプションサービスをご用意しております。 (A) データセンター スクロール […]

「DKIMの設定を自社でやるのが難しい…」という方はぜひオフィスドクターの利用をご検討ください!

オフィスでのトラブルを
弊社の正社員エンジニアが
ご訪問やお電話の対応で
解決する素敵なサービスが
なんと月1万円~。
まずはお気軽にご相談ください。

フリーダイヤルでのお問い合わせ
0120-262-242
メールでのお問い合わせ
お問合わせフォームへ
『オフィスドクター』を運営するメディアファイブ株式会社は1996年創業のシステム開発会社です。
最新情報をチェックしよう!
>月1万円からのIT産業医『オフィスドクター』

月1万円からのIT産業医『オフィスドクター』


ひとり情シスでお困りの会社さま、『オフィスドクター』にアウトソーシング(外部委託)を是非ご検討ください! 「高いんじゃないの?」という声が聞こえてきそうですが、なんと月額1万円から!まずはお気軽にご相談ください!

CTR IMG