2023年1月21日

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の仕組み
    1. 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対応

    CORESERVER (V2) のひみつ

    参考:

    技術解説:DKIM (Domainkeys Identified Mail)
    https://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/dkim/

    その他:
    ドメイン名とセレクタ名で確認
    https://dmarcian.com/dkim-inspector/

    TXTレコードの最大入力数255文字は1024bitのみ登録可能
    以下例:
    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件


    • follow us in feedly

    スポンサーリンク