0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

opendkim with postfix on Amazon Linux 2

Last updated at Posted at 2023-01-22

(訂正) DNS のエントリはサブドメイン単位で必要でした。

切っ掛け

iCloud だと 130円で DKIM できるよ?
って読んだので、一瞬乗り換えようかと思ったが、
いやいや、うちのサーバーにも DKIM を付けられるだろう?
と、思ったので試してみた。

実は SPF は随分前に対応したのに、
DKIM って、DNSSEC が必須だろう、
なんていう訳の分からない思い込みがあったため、やっていなかった。
※ 勿論 DNSSEC 無しでできる。

うちの環境は、記事タグの通り。

参考

導入手順

opendkim インストール

# yum install -y opendkim

DNS 設定

key pair 生成

# cd /etc/opendkim/keys/
# opendkim-genkey -b 2048 -d example.com -s 202301220
# chown opendkim:opendkim 202301220.*

202301220 は作業日付。

zone ファイルへの追加

202301220._domainkey    IN      TXT     ( "v=DKIM1; k=rsa; p=..." )
; ----- DKIM key 202301220 for example.com                                
_adsp._domainkey      IN TXT  "dkim=unknown"

1, 2 行目は、先程生成した 202301220.txt の内容をそのまま使用。
3行目はこのように記載。
これを使用しているドメイン/サブドメイン全てに追加。

動作確認

# rndc reload
# dig TXT 202301220._domainkey.example.com
# dig TXT _adsp._domainkey.example.com
# dig TXT 202301220._domainkey.sub1.example.com
...

zone ファイルに追記した内容がサブドメイン分を含めて、全てきちんと引けることを確認。

/etc/opendkim.conf の修正箇所

Mode                sv
SyslogFacility      mail
#                                                                               
KeyTable            /etc/opendkim/KeyTable
SigningTable        /etc/opendkim/SigningTable
ExternalIgnoreList  /etc/opendkim/TrustedHosts
InternalHosts       /etc/opendkim/TrustedHosts
ExemptDomains       /etc/opendkim/ExemptDomains

refile を使わない

検索で引っかかる殆どの事例が refile(正規表現使用) の dataset を指定しているが、見る限り余り意味が無いので、止めることにした。

/etc/opendkim/ 下のファイル

KeyTable

202301220._domainkey.example.com   %:202301220:/etc/opendkim/keys/202301220.private

opendkim.conf(5) より

 KeyTable (dataset)
--- snip ---
If the first value consists solely of a percent sign ("%") character, it will be replaced by the apparent domain of the sender when generating a signature.

% は送信者のドメインに置換される。

SigningTable

.example.com               202301220._domainkey.example.com

example.com の全てのサブドメインに一致。

TrustedHosts

127.0.0.1
::1
192.168.1.0/24

192.168.1.0/24 には内部の smtp relay が置いてある。

ExemptDomains

.example.com

example.com の全てのサブドメインに一致。
MUAから submission port 宛に投入したメールの DKIM 署名に必要。

opendkim 起動

# systemctl start opendkim
# systemctl enable opendkim

systemctl status opendkim で起動状況を確認し、
/var/log/maillog や /var/log/messages に異常が無いことを確認する。

postfix への追記

/etc/postfix/main.cf

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

postfix reload

systemctl reload postfix

systemctl status postfix で起動状況を確認し、
/var/log/maillog や /var/log/messages に異常が無いことを確認する。

動作確認

動作確認については、参考記事を参照のこと。

以上

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?