LoginSignup
3
2

More than 1 year has passed since last update.

Ubuntu 20.04とCloudflareでDKIMを設定する

Last updated at Posted at 2022-08-17

前提:CloudflareでDNSを管理しているサーバがUbuntu 20.04で、デフォルト設定のpostfixにより送信しています。

OpenDKIMの設定

OpenDKIMの設定は https://www.lonnie.co.jp/linux/jessie-dkim-dmarc/ を参考にさせていただきましたが、こちらは1つのサーバで複数のドメインを扱っていないのでもっと簡単でした。

まずopendkimをインストールします。

sudo apt update
sudo apt install -y opendkim opendkim-tools

ここからはsudoでやるとめんどいので「sudo su -」でrootになって作業します。
ドメイン名は架空の foobar.net にします。

mkdir -p /etc/mail/keys
cd /etc/mail/keys
opendkim-genkey -b 2048 -s 20220517fb -d foobar.net
chown -R opendkim:opendkim ../keys
chmod 700 ../keys
chmod 600 *

これで /etc/mail/keys に 20220517fb.private と 20220517fb.txt ができます。
次に /etc/opendkim.conf を編集しますが、変更するのは以下の3行だけです。

Domain                  foobar.net
KeyFile                 /etc/mail/keys/20220517fb.private
Selector                20220517fb

/etc/default/opendkim は以下のようにRUNDIRを変更し、SOCKET=行はすべてコメントアウトしておきます。参考にしたところでは opendkim.sock を使っているのですが、それではエラーになってしまったので。

RUNDIR=/var/spool/postfix/run/opendkim
#RUNDIR=/run/opendkim

postfixの設定

/etc/postfix/main.cf の最後に以下を加えます。

 Milter configuration
# OpenDKIM
milter_default_action           = accept
milter_protocol                 = 6
smtpd_milters                   = inet:127.0.0.1:8892
non_smtpd_milters               = inet:127.0.0.1:8892

postfixとopendkimをリスタートしておきます(reloadでいいかも)。

sudo systemctl restart postfix opendkim

CloudflareのDNSでDKIMを設定する

ここが他で調べても一番わからなかったところ。/etc/mail/keys/20220517fb.txt の内容は以下のようになっています。もちろん数字はこんなに連続してません。適当な値を入れてます。

20220517fb._domainkey  IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "p=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
          "222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223" )  ; ----- DKIM key 20220517fb for foobar.net

これをCloudflareのDNSのTXTレコードに入れるわけですが、「Add record」して、以下のように20220517fb.txtの内容からダブルクォートを取り除いた文字列を入れます。
Screenshot_20220517_072253.png
最初はよくわからないので 「( "v=DKIM1;」から括弧もダブルクォートも全部含めて入れてたので失敗してました。

DNSのDKIM設定を確かめる

https://dmarcly.com/tools/dkim-record-checker# に行って、以下のようのドメイン名とセレクターを入れて「Check DKIM Record」をクリックします。

Screenshot_20220517_073233.png

「Success! Everything appears fine with your DKIM record.」と出ればうまく設定されています。

メールを送ってみる

いつものように

echo hello|mail -s "DKIM test" foo.bar@gmail.com

などとしてテストメッセージを送ってみます。
送られたほうでそのメッセージのソースを見て

Authentication-Results: mx.google.com;
       dkim=pass header.i=@foobar.net header.s=20220517fb ...

などとなっていれば成功です。

以上

3
2
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
3
2