2023年1月21日

Gmailにメール送信するならDKIMの設定を

最近気が付きました。spfは設定していて DKIM はいらないかな?と思ってましたが設定しましょう

ソースは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

    ・DNSにADSPレコードの登録

    _adsp._domainkey
    TXT
    dkim=unknown

    意味は
    all このドメインから送信されるメールは、すべてメール作成者署名が与えられる
    unknown このドメインから送信されるメールのいくつか、またはすべてに、メール作成者署名が得られる
    discardable このドメインから送信されるメールは、すべてメール作成者署名が与えられる。そして、もしメール作成者署名が得られない場合は、受信者はそのメールを破棄することが望まれる

    この3つの中から選んで無難な選択が unknown に

    ・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:
    のところを確認してみてください


    レンタルサーバでDKIM

    難易度が高い。料金の高いプランなら設定できるところがある程度



    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 文字です。

    関連する記事:1件


    • follow us in feedly

    スポンサーリンク