Gmail,Yahooにメール送信するならDKIMの設定を
最近気が付きました。spfは設定していて DKIM はいらないかな?と思ってましたが設定しましょう
※24年2月以降GmailとYahooに送信するには SPF DKIM DMARC TLSで送信するが必須に ARCもあるとよい
SPF DNSにTXTレコードを設定
DKIM DNSにTXTレコードを設定のうえ、送信時に署名(opendkim)
DMARC DNSにTXTレコードを設定。受信者がSPFとDKIMとDMARCの設定でメールの受信を判断(opendmarc)
TLSでメール送信。postfixなどで適切にTLSで暗号化してメール送信するように設定
ARC メール受信して転送するときに、送信元の情報(DKIM,SPF)などをそのまま署名して転送(openarc)
ソースはGoogleから
https://support.google.com/mail/answer/81126#authentication
重要: 2022 年 11 月より、個人用 Gmail アカウントにメールを送信する新規の送信者は、SPF または DKIM を設定する必要があります。Google では、新規の送信者から個人用 Gmail アカウント宛てのメールをランダムにチェックして、認証されたメールであることを確認します。認証方法が一つも設定されていないメールは拒否されるか、迷惑メールに分類されます。この要件は、すでに送信者である場合は適用されません。ただし、組織のメールを保護し、今後の認証要件をサポートするために、必ず SPF と DKIM を設定することをおすすめします。
relay=gmail-smtp-in.l.google.com[xxx.xxx.xx.xx]:25, delay=1.5, delays=0/0.02/0.81/0.64, dsn=5.7.26, status=bounced (host gmail-smtp-in.l.google.com[xxx.xxx.xx.xx] said: 550-5.7.26 This message does not pass authentication checks (SPF and DKIM both 550-5.7.26 do not pass). SPF check for [gmail.com] does not pass with ip: 550-5.7.26 [xx.xx.xx.xx].To best protect our users from spam, the message has 550-5.7.26 been blocked. Please visit 550-5.7.26 https://support.google.com/mail/answer/81126#authentication for more 550 5.7.26 information. xxxx.xx - gsmtp (in reply to end of DATA command))
opendkim のインストールと設定
DKIMの仕組み- DNSに公開鍵を登録
- メール送信時に秘密鍵で電子署名
- 受信先でDNSの公開鍵を参照して電子署名が本物かどうか確認
設定するドメイン名は exsample.jp
・CentOS 7 の場合
# yum install opendkim --enablerepo=epel
・Rocky/Alma/Oracle Linux 9 の場合
# yum install opendkim opendkim-tools --enablerepo=epel
・exsample.jp のディレクトリ作成と gen-key を利用して秘密鍵と公開鍵の作成# cd /etc/opendkim/keys
# mkdir exsample.jp
# opendkim-genkey -D ./exsample.jp -d exsample.jp
(省略すると -b 1024 -s default となる。1024bit selector名はdefaultという意味)
# chown -R opendkim:opendkim *
# cat exsample.jp/default.txt
v=DKIM1; k=rsa; p=yyyyyyyyyy
・DNSに公開鍵(default.txt)の内容登録(selectorがdefaultの場合)
いずれもTXTレコードに値を入力
default._domainkey
TXT
v=DKIM1; k=rsa; p=yyyyyyyyyy
・opendkim.conf の編集
# vi /etc/opendkim.conf
Mode sv
# Sign と Verify 両方行うので sv
SoftwareHeader no
# DKIM-Filter: OpenDKIM Filter v2.xx.0 exsample.jp とメールヘッダーに表示されるので no に変更
Domain exsample.jp
# 該当ドメイン名
KeyFile /etc/opendkim/keys/exsample.jp/default.private
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
・KeyTable の編集
# vi /etc/opendkim/KeyTable
default._domainkey.exsample.jp exsample.jp:default:/etc/opendkim/keys/exsample.jp/default.private
書式:
[セレクタ名]._domainkey.[ドメイン名] [ドメイン名]:[セレクタ名]:[秘密鍵へのパス]
・SigingTable の編集
# vi /etc/opendkim/SigningTable
*@exsample.jp default._domainkey.exsample.jp
書式:
*@[ドメイン名] [セレクタ名]._domainkey.[ドメイン名]
・TrustedHosts の編集・確認
# vi /etc/opendkim/TrustedHosts
127.0.0.1
::1
・postfix/main.cf 一番下に追加
# vi /etc/postfix/main.cf
# OpenDKIM
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
・起動、自動起動の登録、postfix restart
# systemctl start opendkim
# systemctl enable opendkim
# postfix check
main.cf の設定間違いなど確認可能
# systemctl restart postfix
・opendkim-testkey による確認
# opendkim-testkey -d exsample.jp -k /etc/opendkim/keys/exsample.jp/default.private -vvv
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: key loaded from /etc/opendkim/keys/exsample.jp/default.private
opendkim-testkey: checking key 'default._domainkey.exsample.jp'
opendkim-testkey: key OK
となっていたら、問題ありません
あとはGmailにメール送信してみて、縦...マークから
メッセージのソースを表示
SPF:
DKIM:
のところを確認してみてください
PR:レンタルサーバでDKIM
GMAILが24/02から拒絶する方針を出してから、各社DKIM DMARC対応を始めた
24/02までに対応できるところが増える
人気のXserverが
23/02/14 sv14450.xserver.jp 以降でDKIM対応しました
default._domainkey.exsample.jp TXT "v=DKIM1; k=rsa; p=" 設定される selector名 default
24/01/09 DMARC設定機能を追加
_dmarc.exsample.jp TXT "v=DMARC1; p=none;" で設定される
coreserverのV2(CORE-X)プランでDKIM対応
参考:
技術解説:DKIM (Domainkeys Identified Mail)
https://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/dkim/
その他:
ドメイン名とセレクタ名で確認
https://dmarcian.com/dkim-inspector/
以下例:
https://help.sakura.ad.jp/domain/2712/
TXTレコードに設定可能な文字数は最大255文字までとなります。https://support.muumuu-domain.com/hc/ja/articles/360046453854-%E3%83%A0%E3%83%BC%E3%83%A0%E3%83%BCDNS%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E8%A8%AD%E5%AE%9A
TXTレコード 255文字が上限です。
DKIM(TXT)レコード 255文字以内に収まるよう1,024ビットドメインキーをご利用ください。https://help.onamae.com/answer/7894
TXTレコードに限りVALUE値の最大文字数は510文字になります。(DKIM設定等で長いVALUE値の設定が求められるため)https://aws.amazon.com/jp/premiumsupport/knowledge-center/route-53-configure-long-spf-txt-records/
TXT レコードの値の最大文字数は 4,000 文字です。
ARC (Authenticated Received Chain)
※Gmailにメール転送するなら
ARCを導入しましょう。(opendkim,openarcの設定)そのまま転送すると弾かれます
転送より、gmailからpopなりimapで取込するのが簡単です
default.private のまま ARC に利用
# yum instll openarc
# mkdir /etc/openarc/
# cp /etc/opendkim/keys/exsample.jp/default.private /etc/openarc/openarc.private
# chown -R openarc:openarc /etc/openarc/
・openarc.conf の編集
# vi /etc/openarc.conf
PidFile /var/run/openarc/openarc.pid
Syslog yes
#Umask 002
UserID openarc:openarc
Socket inet:8894@localhost
Mode sv
AuthservID exsample.jp
Canonicalization relaxed/simple
Domain exsample.jp # change to domain
Selector default
KeyFile /etc/openarc/openarc.private
SignatureAlgorithm rsa-sha256
# systemctl enable openarc
# mkdir /var/run/openarc
# chown openarc:openarc /var/run/openarc/
# systemctl start openarc
・postfix /etc/postfix/main.cf に「inet:127.0.0.1:8894」の追加
# vi /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:8891, inet:127.0.0.1:8894
# systemctl restart postfix
メールを Gmail に転送するおすすめの方法
https://support.google.com/mail/answer/175365?hl=ja
関連する記事:1件
- 自社ドメイン(co.jp)のなりしまし迷惑メールを送られたので即DMARC対応した話 (2022年09月12日)