web-dev-qa-db-ja.com

接尾辞-送信者ではなく差出人によるブロック

自分が送信したように見せかけた大量の受信スパムがありますが、任意のスパマードメインに送信者がいます。例えば.

Return-Path: <[email protected]>
... (stuff elided, etc.)
Received: from [static-93.0.72.177-ttvi.com.br] (unknown [177.72.0.158])
    (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
    (No client certificate requested)
    (Authenticated sender: [email protected])
    by Server22.lejj.com (Postfix) with ESMTPSA id B527943151
...
To: [email protected]
From: <[email protected]>

Postfixの送信者は[email protected]ですが、Cyrus-IMAPに渡されるまでに、私から送信されたように見えます。つまり、認識された送信者の受信トレイに保管されます。

ドメインからのすべての受信メールをブロックしたいのですが(送信はTLS + SMTP AUTHを使用し、チェックをバイパスするので、自分自身をブロックする心配はありません)、送信者アドレスが私のドメインからのものではないので、できます。送信者拒否ルールまたはSPFを使用してこれを行います。これらはexample.comではなくaiuw.comに作用します。

Postfixにエンベロープ情報の一部としてFrom行を処理させる方法はないと思います。それは正しいですか、それとも私は何かが足りないのですか?

そうでない場合は、PostfixとCyrus-IMAPの間のフィルターで、送信者アドレスと差出人アドレスの両方をキャプチャし、不一致を拒否することができますか?または、最後に、Sieveスクリプトで送信者アドレスを確認する方法ですが、すぐに醜くなると思います。

これが重複している場合はお詫び申し上げます。いくつかのヒットが見つかりましたが、表示されたものはすべて、Fromではなくエンベロープ送信者に基づいていました。

4
Iain Brown

私はこれについて自分で調査を行ってきましたが、「受信トレイ前」の角度からこれを攻撃する方法をいくつか見つけました。

受信SMTPサーバーが、ユーザーが送信メールを送信するサーバーと同じである場合、最初に、header_checkspostfix構成があります。 pcre:/etc/postfix/header_checksに設定すると、各ヘッダー行がそのファイルの正規表現と照合されます。そのファイルの内容は次のとおりです。

/^(From|Sender|Reply-To)\: .*\@domain1\.com/ REJECT stop impersonating me
/^(From|Sender|Reply-To)\: .*\@domain2\.com/ REJECT stop impersonating me

SMTPサーバーはdomain1.comおよびdomain2.comのメールを受信するため、これらのドメインでのすべての受信メールを拒否します。これはSMTPポートに対してのみ実行する必要がありますが、(25)送信ポート(587)に対しては実行しないでください。そうしないと、ドメインの正当な使用が妨げられます。これを行うには、master.cfを編集し、smtpで始まる行の下に-o header_checks=regexp:/etc/postfix/header_checksを追加します。 submissionポート設定で別のheader_checksファイルを指定して、認証されたユーザーに異なるヘッダールールを適用することもできます。

header_checksの主な問題は、一度に1つのヘッダーしかチェックしないことです。別の解決策は、メッセージ全体を見るcontent_filterを使用することです。 all受信メールのFrom:ヘッダー詐欺を軽減しようとしたときに最初にこれを発見しました。これにより、 このきちんとしたbashスクリプト 。これを開始点として使用して、任意のフィルターを作成できますが、配信前に電子メール全体をインテリジェントに検査できること(内容が暗号化されていない場合)は非常に強力です。

私の情報がお役に立てば幸いです。おそらく一緒になって、完璧な詐欺拒否ツールを作成できます:)

2
ARitz Cracker

やっと自分の質問に答えられると思います。エンベロープ送信者とメッセージ送信者の両方をキャプチャしてSMTPトランザクションでメッセージを拒否できればと思います。誰かがより良い修正を提案できれば、それをいただければ幸いです。

ただし、エンベロープ送信者とメッセージ送信者の両方をふるいにかけることができるため、受信スパムをドロップする方法があります。

require ["envelope", "fileinto"];

if address :domain "From" "example.org" {
   if not envelope :domain "From" "example.org" {
      fileinto "Trash";
      stop;
   }
}

したがって、電子メールが私のドメインからのものであると主張しているが、封筒のアドレスが私のドメインではない場合、それは削除されます。

私が使用した封筒のドキュメント: https://support.tigertech.net/sieve

1
Iain Brown