web-dev-qa-db-ja.com

スパムがPostfixによって転送されるのを防ぎます(ローカルでジャンクフォルダに配信されている間)

DovecotLDAを使用してローカルにメールを配信するかなり標準的なPostfix/Amavisセットアップがあります。 Amavisはスパムメールを渡し、Sieveを使用してユーザーの迷惑メールフォルダーにドロップします。

問題は、Amavisによってスパムとしてタグ付けされたメールが外部アドレスに転送されるべきではないということです。これを達成する方法がわかりません。

Postfix header_checksへの参照をいくつか見つけましたが、これらはAmavisがチェックを開始する前のクリーンアッププロセスによって処理されます。次のような転送は次のようになります。

Dec 13 23:13:32 mail postfix/smtpd[14405]: connect from ...
Dec 13 23:13:32 mail postfix/smtpd[14405]: Anonymous TLS connection established from ... SSLv3 with cipher AES128-SHA (128/128 bits)
Dec 13 23:13:32 mail postfix/smtpd[14405]: 5659141F35: client=..., sasl_method=PLAIN, sasl_username=test.piet@...
Dec 13 23:13:32 mail postfix/cleanup[14251]: 5659141F35: message-id=<[email protected]>
Dec 13 23:13:32 mail postfix/qmgr[13623]: 5659141F35: from=<test.piet@...>, size=1701, nrcpt=1 (queue active)
Dec 13 23:13:32 mail postfix/smtpd[14405]: disconnect from ...
Dec 13 23:13:37 mail postfix/smtpd[14358]: connect from localhost[127.0.0.1]
Dec 13 23:13:37 mail postfix/smtpd[14358]: ACF4F42260: client=localhost[127.0.0.1]
Dec 13 23:13:37 mail postfix/cleanup[14251]: ACF4F42260: message-id=<[email protected]>
Dec 13 23:13:37 mail postfix/smtpd[14358]: disconnect from localhost[127.0.0.1]
Dec 13 23:13:37 mail postfix/qmgr[13623]: ACF4F42260: from=<test.piet@...>, size=2408, nrcpt=1 (queue active)
Dec 13 23:13:37 mail amavis[11530]: (11530-14) Passed SPAM, [188.142.56.16] [188.142.56.16] <test.piet@...> -> <mark.ruys@...>, Message-ID: <[email protected]>, mail_id: iTVFrnGF7RaS, Hits: 999.001, size: 1701, queued_as: ACF4F42260, 5305 ms
Dec 13 23:13:37 mail postfix/smtp[14253]: 5659141F35: to=<mark.ruys@...>, orig_to=<mark@...>, relay=127.0.0.1[127.0.0.1]:10024, delay=5.4, delays=0.11/0/0/5.3, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as ACF4F42260)
Dec 13 23:13:37 mail postfix/qmgr[13623]: 5659141F35: removed
Dec 13 23:13:37 mail postfix/smtp[14414]: Trusted TLS connection established to gmail-smtp-in.l.google.com[173.194.65.26]:25: TLSv1.1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)
Dec 13 23:13:38 mail postfix/smtp[14414]: ACF4F42260: to=<mark.ruys@...>, relay=gmail-smtp-in.l.google.com[173.194.65.26]:25, delay=0.84, delays=0/0.02/0.08/0.73, dsn=2.0.0, status=sent (250 2.0.0 OK 1386972818 f8si3542819eep.162 - gsmtp)
Dec 13 23:13:38 mail postfix/qmgr[13623]: ACF4F42260: removed
3
MarkR

一般的な解決策

別のサーバーがある場合、解決策は簡単でした。おそらく、別のボックスはsecond.example.comと呼ばれます。元のボックスで、main.cfにリレーホストをsecond.example.comに設定します

relayhost = [second.example.com]:25

Second.example.comで、header_checksを設定して、[〜#〜] spam [〜#〜]をチェックすることにより、電子メールがスパムである可能性が高いかどうかをチェックします。あなたの主題の単語またはヘッダーのスパムスコアをチェックすることによって。この例では、サブジェクトチェック方法を使用します。 header_checks構文は次のとおりです。

/^Subject: \[SPAM\]/ DISCARD

完了。これで、エイリアスの電子メールはsecond.example.comを通過し、スパムの場合は削除されます。


別のサーバーがない場合は、master.cfまたは Postfix Multiple Instances に追加のsmtpdデーモンをセットアップすることをお勧めします。

追加のsmtpdデーモン

ステータス:機能しません

アイデアは、新しいsmtpdを追加して別のポートをリッスンし、header_checksとrelayhostの構成をオーバーライドすることです。 main.cfで、relayhost構成を別のsmtpdデーモンに追加します。

relayhost = [127.0.0.1]:12225

master.cfで定義し、header_checksをオーバーライドして、スパムタグ付きの電子メールをチェックし、relayhostを空にして、それ自体にループしないようにします。

[127.0.0.1]:12225    inet  n       -       n       -       -       smtpd
   -o header_checks=pcre:/etc/postfix/killspam
   -o relayhost=

残念ながら、これは機能していません。 man 8 smtpd によると、smtpdは、このmanページにリストされている以外のパラメーターを黙って拒否します。そのため、main.cfの古い構成を引き続き使用します。

Postfixの複数のインスタンス

ステータス:動作します

アイデアは、上記の設定のように、受信メールを処理するための1つのデフォルトインスタンスと、送信メールを処理するための別のインスタンスをセットアップすることです。詳細は説明しませんが、2番目のインスタンスを実行するには、いくつかのパラメーターを調整する必要があります。次に、空のrelayhostheader_checksなどの構成を追加します。

0
masegaloeh