最近のアップグレード後、メール受信者がホスト名解決にIPを失い、スパム対策が機能しなくなりました

最新の Self-hosted mail-receiver update following Let's Encrypt root certificate change の mail-receiver アップデートでは、IP アドレスがホスト名に解決されなくなったようです。これにより、以前は正常に動作していた Postfix のクライアントアクセス制限に問題が発生しています。この制限は、mail-receiver.yml に以下の行を追加することで有効化されています。

  POSTCONF_smtpd_client_restrictions: 'regexp:/etc/postfix/shared/client_access_regex'

以下は、受信接続を示す mail-receiver ログのスニペットです。

Oct 01 17:38:11 discourse-mail-receiver postfix/master[1]: reload -- version 3.5.6, configuration /etc/postfix
Oct 01 17:41:58 discourse-mail-receiver postfix/smtpd[151]: connect from unknown[167.71.160.115]
Oct 01 17:41:59 discourse-mail-receiver postfix/smtpd[151]: disconnect from unknown[167.71.160.115] ehlo=2 starttls=1 mail=1 quit=1 commands=5

以前は送信元クライアントのホスト名 www11-do.checktls.com[167.71.160.115] に解決されていたものが、現在は解決されず unknown[167.71.160.115] としてマークされています。

これにより、client_access_regex ファイル内の正規表現エントリと競合が発生しています。このファイルは、有効な PTR レコードを持たないすべてのホスト(これらは基本的にすべてのスパムリレーです)と、動的 IP 範囲からのすべてのホスト(主に仮想ホストであり、これも基本的にすべてのスパムリレーです)を拒否するように設計されています。

IP アドレスがホスト名に解決されないため、どのルールも機能しなくなりました。さらに深刻なことに、/unknown/ REJECT 行がすべての受信メールをブロックしてしまいます。受信接続を可能にするために一時的にこのルールを無効にせざるを得ませんでした。また、解決の問題により他のすべてのルールも無効化されているため、サーバーが再びスパムに晒される状態になっています(これらのルールを実装する前に私のフォーラムはスパムで溢れていましたが、実装後はスパムを受け取った記憶がありません)。

Let’s Encrypt の問題があるため、回避策として古いバージョンに戻すことはできません。一方、新しいバージョンではスパムの洪水が再び発生してしまいます。そのため、修正をお願いできれば非常に助かります(Docker イメージ内で DNS 解決を手動で有効化する方法を検討しましたが、うまくいきませんでした)。

同じようなスパム問題に直面し、試してみたい方のために、参考となる client_access_regex ファイルを以下に示します(/etc/postfix/sharedmail-receiver.yml の設定については Customize direct-delivery Postfix configuration を参照してください)。

#  regex dns: ([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}
#  regex ip: ((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
#
#  dyn-ip-dns:
/((\\.|-|x)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){2}((\\.|-)[a-zA-Z0-9]+)+\\.[a-zA-Z]{2,}/        REJECT
/unknown/                               REJECT
/sample-spam\\.domain\\.com/              REJECT
「いいね!」 1

別のコンテナではその問題を解決しました。悪い証明書をコメントアウトすれば問題なく動作しますが、古いコンテナをどうやって起動すればよいかは明確ではありません。

解決策は、新しいコンテナに入って問題自体を解決することです。

「いいね!」 1

https://github.com/discourse/mail-receiver/pull/12

@david これは、Self-hosted mail-receiver update following Let's Encrypt root certificate change - #6 by md-misko で言及されている両方の問題に対処するはずです。

Postfix を chroot jail から削除することによって、セキュリティ上の問題が発生するかどうか評価してください(私の意見では、Postfix はすでに専用の Docker イメージ内に分離されているため、問題はないはずです)。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.