ホワイトリストを使用してSPFポリシーを上書きできますか?どのように?

ホワイトリストを使用してSPFポリシーを上書きできますか?どのように?

Linodeでpostfixを実行しています。

Linux redacted 5.3.11-x86_64-linode131 #1 SMP PREEMPT Wed Nov 13 18:51:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
amavisd-new-postfix/xenial,xenial,now 1:2.10.1-2ubuntu1 all [installed]
postfix/xenial-updates,now 3.1.0-3ubuntu0.3 amd64 [installed]
postfix-mysql/xenial-updates,now 3.1.0-3ubuntu0.3 amd64 [installed]
postfix-pcre/xenial-updates,now 3.1.0-3ubuntu0.3 amd64 [installed]
postfix-policyd-spf-python/xenial,xenial,now 1.3.2-1 all [installed,automatic]

検疫を妨げる代わりに、RBLとSPFFAILのメールを拒否するようにpostfixインストールを設定しました。残念ながら、SPF記録は間違った会社から電子メールを受け取る必要がありますが、これはしばらく続いています。したがって、電子メールの代わりに次のログが表示されます。

4月1日 10:41:42 修正済み postfix/smtpd[18833]: NOQUEUE: 拒否: us-smtp-delivery-134.mimecast.com[216.205.24.134] の RCPT: 550 5.7.1: 受信者アドレスの拒否: メッセージが拒否されました。 :SPF失敗 - 承認されていません。よりhttp://www.openspf.net/Why?s=mfrom;id=redacted;ip=216.205.24.134;r=r​​edacted; from=<編集済み> to=<編集済み> proto=ESMTP helo=< us-smtp-delivery-134.mimecast.com>

会社には、WebサイトやWHOIS情報からこの問題を解決できる担当者はいません(registrant@dnstinations.com [一部のサードパーティベンダー]は、DNS設定エラーと呼ばれるサードパーティのEメールを無視すると仮定します)。

初めてEメールの代わりにこのログを受け取ったときに*.mimecast.comをホワイトリストに登録しようとしましたが、何の変更もなかったので、今日は私のmain.cfを見ました。 SPF設定が私のホワイトリストとは異なる行にあるのを見て、別のSPF別ホワイトリストを作成できないかと思いました。これが私のmain.cfの前の外観です:

smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks, check_client_access regexp:/etc/postfix/rbl_client_regex, check_client_access hash:/etc/postfix/rbl_client_override, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_policy_service unix:private/policy-spf

smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, check_sender_access hash:/etc/postfix/access, reject_unknown_sender_domain

今は次のようになります。

smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks, check_client_access regexp:/etc/postfix/rbl_client_regex, check_client_access hash:/etc/postfix/rbl_client_override, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, regexp:/etc/postfix/spf_client_regex, check_policy_service unix:private/policy-spf

smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, check_sender_access hash:/etc/postfix/access, reject_unknown_sender_domain

基本的に私がmain.cfにしたことは」正規表現: /etc/postfix/spf_client_regex,「今後」check_policy_service unix:private/policy-spf「内部に」smtpd_recipient制限「部分。

また、このエントリを使用して/etc/postfix/spf_client_regexを作成しました(mimecastがスパム対策プロバイダであるため、十分安全です)。

/.*\.mimecast\.com$/    OK

postmap -qでテストした結果、予想される「OK」結果が得られ、「postmap /etc/postfix/spf_client_regex」を実行してすべてのアップデートを更新し、postfixを再ロードしました。残念ながら、この送信者が送信したメッセージはSPFエラーのためブロックされ続けます。

したがって、上記の手順はデフォルトでsmtpd_client_restrictionsセクションのホワイトリストルールに対して実行されたステップと同じで、拒否_rbl_clientルールは無視されているため正確であると予想していましたが、機能しません。この文書のタイトルは次のとおりです。ホワイトリストを使用してSPFポリシーを上書きできますか?どのように?

ベストアンサー1

わかったのでコメントしてドキュメントを読んだクリフアームストロング、解決策を見つけたと思います。まず、smtpd_client_restrictionsとsmtpd_sender_restrictionsの両方が解析テーブルを受け入れますが、どちらも処理ポリシーを受け入れないことを発見しました。次に探してみるカスタムポリシー作成できますが、この問題を解決するためにプログラミング言語を学ぶ必要はないようです。この投稿特定のSPFポリシー担当者に関するいくつかの正当な苦情と、現在利用可能な2つのSPFポリシー担当者をホワイトリストに追加する方法について説明します。

幸いなことに、すでに「より良い」戦略委任がインストールされているので、変更する必要はありません。

~$ apt list | grep policyd-spf

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

postfix-policyd-spf-perl/xenial,xenial 2.010-2 all
postfix-policyd-spf-python/xenial,xenial,now 1.3.2-1 all [installed,automatic]

次に、コメントファイルを見て(私の場合はgzipで圧縮されていたのでgunzipにコピーし、完了するとコピーを削除しました)、次の関連コメントを見つけました。

#  Whitelist: CIDR Notation list of IP addresses not to check SPF for.
#  Example (default is no whitelist):
#  Whitelist = 192.168.0.0/31,192.168.1.12

#  Domain_Whitelist: List of domains whose sending IPs (defined by passing
#  their SPF check should be whitelisted from SPF.
#  Example (default is no domain whitelist):
#  Domain_Whitelist = pobox.com,trustedforwarder.org

これに基づいて、次のようになります。ドメイン名ホワイトリスト「SPF検査に合格して定義された項目はSPFのホワイトリストに追加する必要があります」という説明があるため、私には機能しません。奇妙に見えますが(送信者がドメインのspfチェックに合格した場合はホワイトリストに追加する必要はありません)、ホワイトリストオプションがありました。mimecast spf ドキュメント次に、nslookupを使用してIPを収集します。

~$ nslookup
> set type=txt
> us._extnetblocks.mimecast.com
;; Truncated, retrying in TCP mode.
Server:         50.116.58.5
Address:        50.116.58.5#53

Non-authoritative answer:
us._extnetblocks.mimecast.com   text = "v=spf1 ip4:207.211.30.40 ip4:207.211.30.41 ip4:207.211.30.42 ip4:207.211.30.43 ip4:207.211.30.44 ip4:207.211.30.45 ip4:207.211.30.46 ip4:207.211.30.47 ip4:207.211.30.48 ip4:207.211.30.49 ip4:205.139.111.40 ip4:205.139.111.41 ip4:205.139.111.42 " "ip4:205.139.111.43 ip4:205.139.111.44 ip4:205.139.111.45 ip4:205.139.111.46 ip4:205.139.111.47 ip4:205.139.111.48 ip4:205.139.111.49 ~all"

Authoritative answers can be found from:
mimecast.com    nameserver = dns02.mimecast.net.
mimecast.com    nameserver = dns03.mimecast.net.
mimecast.com    nameserver = dns04.mimecast.net.
mimecast.com    nameserver = dns01.mimecast.net.

その後、この結果を設定ファイルに保存します。

Whitelist = 207.211.30.40, 207.211.30.41, 207.211.30.42, 207.211.30.43, 207.211.30.44, 207.211.30.45, 207.211.30.46, 207.211.30.47, 207.211.30.48, 207.211.30.49, 205.139.111.40, 205.139.111.41, 205.139.111.42, 205.139.111.43, 205.139.111.44, 205.139.111.45, 205.139.111.46, 205.139.111.47, 205.139.111.48, 205.139.111.49

これは自動的にこれらのIPを他のドメインから送信することを可能にし、IPが変更される可能性があるため理想的ではありませんが、個人的な実装には十分です。だから私は自分の代表者を作る方法を学ぶか、私のために代表者を作る人を雇うことはありません。これらの変更にもかかわらず、他の同様のNOQUEUE結果が表示された場合は、この回答に説明を追加します。

おすすめ記事