自分が送信したように見せかけた大量の受信スパムがありますが、任意のスパマードメインに送信者がいます。例えば.
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ではなくエンベロープ送信者に基づいていました。
私はこれについて自分で調査を行ってきましたが、「受信トレイ前」の角度からこれを攻撃する方法をいくつか見つけました。
受信SMTPサーバーが、ユーザーが送信メールを送信するサーバーと同じである場合、最初に、header_checks
postfix構成があります。 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スクリプト 。これを開始点として使用して、任意のフィルターを作成できますが、配信前に電子メール全体をインテリジェントに検査できること(内容が暗号化されていない場合)は非常に強力です。
私の情報がお役に立てば幸いです。おそらく一緒になって、完璧な詐欺拒否ツールを作成できます:)
やっと自分の質問に答えられると思います。エンベロープ送信者とメッセージ送信者の両方をキャプチャして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