ユーザ用ツール

サイト用ツール


linux:spf-setting

DDNSのサーバーでRelayHost使ってるときのSPF設定

DDNSで運用している自宅のPCでメールサーバーを運用しているが、
ある時から gmail.com 宛てのメールが届かなくなった。

“SPF” か “DKIM” の設定が必要らしい。

エラーの応答メッセージは以下の通り。

This is the mail system at host smtp.gmobb.jp.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

<XXX宛先XXX@gmail.com>: host gmail-smtp-in.l.google.com[64.233.188.27] said:
    550-5.7.26 This mail is unauthenticated, which poses a security risk to the
    550-5.7.26 sender and Gmail users, and has been blocked. The sender must
    550-5.7.26 authenticate with at least one of SPF or DKIM. For this message,
    550-5.7.26 DKIM checks did not pass and SPF check for [XXX自分のドメインXXX.net] did not
    pass 550-5.7.26 with ip: [157.7.156.159]. The sender should visit
    550-5.7.26  https://support.google.com/mail/answer/81126#authentication for
    550 5.7.26 instructions on setting up authentication.
    n1-20020a170903404100b001bbc7b6492fsi4175505pla.8 - gsmtp (in reply to end
    of DATA command)

Google翻訳すると以下。

これはホスト smtp.gmobb.jp のメール システムです。

申し訳ありませんが、あなたのメッセージを 1 人以上の受信者に
配信できなかったことをお知らせします。 これは、以下に添付ます。

さらにサポートが必要な場合は、郵便局長にメールを送信してください。

その場合は、この問題レポートを含めてください。
添付された返信メッセージから独自のテキストを削除できます。

                    メールシステム

<XXX宛先XXX@gmail.com>: 
ホスト gmail-smtp-in.l.google.com[64.233.188.27] は次のように言いました:
このメールは認証されていないため、送信者と Gmail ユーザーにセキュリティ上の
リスクが生じるため、ブロックされました。 送信者は次のことを行う必要があります。
SPF または DKIM の少なくとも 1 つで認証します。
このメッセージについては、DKIM チェックはパスせず、
IP: [157.7.156.159] で [XXX自分のドメインXXX.net] の 
SPF チェックもパスしませんでした。
送信者は、https://support.google.com/mail/answer/81126#authentication に
アクセスして、認証の設定手順を確認する必要があります。

n1-20020a170903404100b001bbc7b6492fsi4175505pla.8 - gsmtp
 (DATA コマンドの終わりへの応答)

どおやら、宛先の Google のサーバーが、メールスパム対策を強化した影響らしい。

解決するには、SPF もしくは DKIM というものを使って、
こちら(送り側)がスパムではないことを示す必要がある。という感じ。

SPF について少々調べたところ、送信元メールサーバーのドメインの
DNSの設定にSPF レコードを追加すればよい模様。

ドメインは Value Domain を使っているので、
早速 設定してみた。

もともと設定してある以下に、(aaa.bbb.ccc.ddd は 自宅のインターネット回線のIPアドレス)

mx @ 10
a @ aaa.bbb.ccc.ddd
a www aaa.bbb.ccc.ddd

以下を追加。(MyDomain.net は 自分のサーバーのドメイン)

txt @ v=spf1 a:MyDomain.net ~all

結果は、相変わらず、ダメ。

途方に暮れて、改めて、エラーの文面をみてみると、
“[157.7.156.159]” なんて IPアドレスがある。

この IPアドレスは何?と調べてみたら、

smtpbb012.gmobb.jp

ということで、うちのインターネット回線を契約している
“GMOとくとくBB” が所有しているIPアドレスだ。
(↑ 自宅のインターネット回線の IPアドレスではない)

さて、なぜ “GMOとくとくBB” のIPアドレス が出てくるのかと
思いを巡らせたところ、そうか。
うちのメールは、GMO の SMTP にリレーしていた。

念のため、Postfix の 設定を改めて 久しぶりに確認。

relayhost = [smtp.gmobb.jp]:587

確かにリレーしてる。

ということは、つまり、SPF で 信頼してもらうドメインは、
“XXX自分のドメインXXX.net”
ではなくて、
“smtp.gmobb.jp”
にする必要があるということか。

自分のドメインではないのに、どおやってSPFで設定するのか?

少し調べたら、include なんていう記載で、他のドメインを
指定することができるよう。

最終的に設定(追加)したのは以下の通り。

txt @ v=spf1 include:gmobb.jp ~all

これで gmail.com 宛てのメールが送れるようになった。
よかった。

自分のドメインの SPF (TXTレコード) を確認する方法。

# dig -t TXT XXX自分のドメインXXX
;; ANSWER SECTION:
XXX自分のドメインXXX.  120  IN  TXT  "v=spf1 include:gmobb.jp ~all"

ちゃんと設定されている。

ちなみに、include で指定した gmobb.jp の SPF (TXTレコード) は以下だった。

# dig -t TXT gmobb.jp
;; ANSWER SECTION:
gmobb.jp. 86400 IN TXT "spf2.0/pra ip4:210.157.5.0/24 include:_spf.gmo.jp include:rnmk.com ~all"
gmobb.jp. 86400 IN TXT "v=spf1 ip4:157.7.156.144/28 ip4:203.141.249.128/25 ip4:210.175.7.1 ip4:210.197.108.203 include:_spf.gmo.jp include:_spf.maildeliver.jp include:u2.gmoes.jp ~all"

もうひとつ、ちなみに。

relayhost で指定している smtp.gmobb.jp の SPF (TXTレコード) は以下だった。

# dig -t TXT smtp.gmobb.jp

無い。

include に smtp.gmobb.jp を指定してもうまくいかなかったのは、
これが原因だったのか。

linux/spf-setting.txt · 最終更新: 2023/09/23 18:22 by hohog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki