OpenDKIM メール送信時のに「END-OF-MESSAGE」となり送信できない。

Linux

OpenDKIMを設定したらメールが送信できない障害が発生した。
対応した内容を記載する。

まずDKIMとは

DKIM(Domain Keys Identified Mail)とは、メールの送信元が正当であることを証明する送信元を認証する技術の一つです。
DKIMは、公開鍵と秘密鍵の仕組みを利用して、送信サーバがメールに電子署名を付与し、受信サーバが公開鍵を用いてメールに添付された署名を検証することで検証が成立します。これにより、配送経路上でのヘッダやメール内容の改ざんを検知することができる仕組みです。

エラー発生

メールログを確認するとエラーが確認できた。

# tail /var/log/maillog
   :
postfix/cleanup[141193]: 496164154D: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 4.7.1 Service unavailable - try again later; from=test@hoge.hogehoge.jp to=test@gmail.com proto=ESMTP helo=<hoge.hogehoge.jp>

OpenDKIMの状態を確認する

OpenDKIMの起動時にはエラーメッセージが表示されなかったが、状態を確認するとエラー(unknown key)があった。

# systemctl status opendkim
● opendkim.service - DomainKeys Identified Mail (DKIM) Milter   Loaded: loaded (/usr/lib/systemd/system/opendkim.service; enabled; preset: disabled)   Active: active (running) since Sat 2024-03-16 08:40:30 JST; 23min ago    Docs: man:opendkim(8)       man:opendkim.conf(5)       man:opendkim-genkey(8)       man:opendkim-genzone(8)       man:opendkim-testadsp(8)       man:opendkim-testkey       http://www.opendkim.org/docs.html Main PID: 140770 (opendkim)   Tasks: 3 (limit: 23846)    CPU: 59ms   CGroup: /system.slice/opendkim.service       mq140770 /usr/sbin/opendkim -f -x /etc/opendkim.conf 3月 16 08:40:30 raspberrypi systemd[1]: Started DomainKeys Identified Mail (DKIM) Milter. 3月 16 08:40:30 raspberrypi opendkim[140770]: OpenDKIM Filter v2.11.0 starting (args: -f -x /etc/opendkim.conf) 3月 16 08:45:23 raspberrypi opendkim[140770]: 496164154D: signing table references unknown key '20240315._domainkey.hoge.hogehoge.jp'
#

設定ファイルを確認する

/etc/opendkim/KeyTableファイルの設定。

# cat /etc/opendkim/KeyTable
# OPENDKIM KEY TABLE
# To use this file, uncomment the #KeyTable option in /etc/opendkim.conf,
# then uncomment the following line and replace example.com with your domain
# name, then restart OpenDKIM. Additional keys may be added on separate lines

20240315._domainkey.hogehogehoge.jp hoge.hogehoge.jp:20240315:/etc/opendkim/keys/hoge.hogehoge.jp/20240315.private
#

Dynamic DNSの設定。

20240315._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBi+*******

※「20240315._domainkey.hogehogehoge.jp」のドメイン名が間違っていた。
DNSサーバのOpenDKIMの設定は正しいが(認証情報指定のみでドメイン名は指定していたない)、Linuxサーバの設定が違っていたため発生した障害である。
なんでドメイン名を間違えるかな~的な間違えでした。

OpenDKIMを再起動する。

# systemctl restart opendkim
# systemctl status opendkim

正しいドメイン名に修正して、opendkimを再起動したらエラーは解消された。

メールの送信テスト

受信したメールのヘッダーを確認する。
問題ないようである。

X-Z-SenderAuth: yahooip=false; suspicious=false; domainkeys-result=pass(ok); dkim-result=pass(ok); spf-result=pass; reversed-hostname=omggw7001-vm0.mail.djm.yahoo.co.jp; dkauth-stat=ok;
Received-SPF: pass (omggw7001-vm0.mail.djm.yahoo.co.jp: domain of tkusama@ymail.ne.jp designates 183.79.54.54 as permitted sender) receiver=omggw7001-vm0.mail.djm.yahoo.co.jp; client-ip=183.79.54.54; envelope-from=tkusama@ymail.ne.jp;
Authentication-Results: zmta7003.mail.djm.ynwp.yahoo.co.jp from=ymail.ne.jp; domainkeys=pass (ok); dkim=pass (ok); header.i=@ymail.ne.jp; dmarc=pass (p=QUARANTINE,sp=QUARANTINE,pct=100,domain=ymail.ne.jp); header.from=ymail.ne.jp
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730678775;
s=ymail20211126; d=ymail.ne.jp;
h=References:Content-Transfer-Encoding:Content-Type:Subject:From:To:MIME-Version:Date:Message-ID;
bh=Mj/8x+cW0xdMQe5pVdGCNthZSBmscMkDo4mp4pEvt7M=;
b=feQj50NuCY0fB1unvXEr6vL5xW4d20UGelAWYrHnbDClPbtTp0kiO5q4wX8BlQqR
CYsi88/dR8gGBHqXKdduq33rA1NKYUyT1PZ2cZ2scgISth4bo8Ylkrkyl9XJn4UjDrg
h/oyIauT2SBYQnm0Lo+xus5A6JmiBhrOIIklImOo=

DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=ymail20211126; d=ymail.ne.jp;
h=Message-ID:Date:MIME-Version:From:Content-Type:Content-Transfer-Encoding:References;
b=CEHLguu95spMYflCpUNCtsRsnmIxaVtHcZpCZ0VULItbBgKlrpx6yNDDdjJS2ijw
YyX3AP4qEblvrh0xClp508RX56kWA7qsGvc0dqYZ2vcQQ6vHz4sdxkorMFIQRHCFdU6
JVVP4Hu+wGD7DziV4i3cqGM5lhtyguatHUn3BvaQ=;