Postfix と OpenDKIM で DKIM を実装します。
DKIM とは、メールのなりすましや改ざんを検知するためのメール認証の仕組みです。
似たような仕組みに SPF というものもあります。どちらもメールの到達率を上げるために有効な手段ということで、両方実装した方が良いとされています。
SPF の場合は、DNS にレコードを一行追加するだけなので、とても簡単ですが、DKIM の場合は、送信サーバに少し設定が必要になってきます。といっても、本当に少しの設定なので、こちらも是非実装しましょう。
Contents
バージョン
- CentOS 7.5.1804
- Postfix 2.10.1-6.el7.x86_64
- OpenDKIM 2.11.0-0.1.el7.x86_64
インストール
Postfix
$ rpm -qa | grep postfix postfix-2.10.1-6.el7.x86_64
Postfix のインストールです。と言っても私の環境では、デフォルトでインストール済みでしたので、何もしていません。
OpenDKIM
$ sudo yum install -y epel-release $ sudo yum install -y opendkim
DKIM を実装するために、EPEL リポジトリに用意されている OpenDKIM パッケージを使います。
実装
それでは、実装に入っていきたいと思いますが、Postfix は基本的な設定が済んでいるものとします。
実装の段階としては、大きく3つです。まず OpenDKIM の設定ファイル、次に Postfix の設定ファイル、そして最後は、DNS です。
OpenDKIM
鍵の生成
$ sudo opendkim-genkey -d leben.mobi -s 20180903 -D /etc/opendkim/keys/ $ sudo chown opendkim:opendkim /etc/opendkim/keys/*
opendkim-genkey コマンドを使用して、秘密鍵と公開鍵を生成します。秘密鍵は、OpenDKIM で使用し、公開鍵は DNS の TXT レコードで使用します。
opendkim.conf
Mode sv Domain leben.mobi #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
OpenDKIM のメインの設定ファイルです。差分がある箇所だけを記載しています。
KeyTable
20180903._domainkey.leben.mobi leben.mobi:20180903:/etc/opendkim/keys/20180903.private
上記の内容を KeyTable ファイルの一番下に追記します。このファイルで、OpenDKIM の秘密鍵を指定します。
SigningTable
*@leben.mobi 20180903._domainkey.leben.mobi
こちらも一番下に追記します。
TrustedHosts
10.10.0.0/21
こちらも一番下に追記します。10.10.0.0/21 は、私の環境での TrustedHost ですので、適切なものに修正してください。
Postfix
smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters milter_default_action = accept
Postfix の設定です。
外部からメール受け取った時(smtpd_milters)と内部のメール(non_smtpd_milters)、そして、milter が使えなかった時のアクション(milter_default_action)を設定します。
DNS
最後に DNS です。
公開鍵
$ cat /etc/opendkim/keys/20180903.txt
先ほど作成した 公開鍵を DNS の TXT レコードとして登録します。”v=DKIM1; …” の部分を登録します。
ADSP
ADSP という DKIM 認証結果の振る舞いについても TXT レコードとして登録します。
_adsp._domainkey.leben.mobi. “dkim=unknown” のような形で登録します。
動作確認
事前に Postfix と OpenDKIM は再起動をして、設定を読み込ませておきましょう。
Gmail
動作確認は、Gmail にメールを送信し、ソースを表示する方法が一番簡単でしょう。
上記画像のように、DKIM ‘PASS’ となれば OK です。(Google Group のメールのキャプチャーです。)
maillog
maillog でも動作確認することができます。Gmail で見るよりも先にこちらを確認した方がいいですね。正常に動作している場合、以下のようなログが確認できると思います。
... opendkim ... DKIM-Signature field added (s=20180903, d=leben.mobi)
まとめ
Postfix と OpenDKIM で DKIM を実装しました。
DKIM について、もっと詳しく知りたい人は、こちら (DKIM:迷惑メール対策委員会) が参考になると思います。
メールサーバを運用していると、なりすまし、乗っ取り、到達率、スパム対策に、IP のレピュテーション、そしてブラックリストと、覚えることや対策することがたくさんあって大変です。
もっと楽に運用したい・・・