web-dev-qa-db-ja.com

OSXサーバーでバウンスを送信せずにamavisでキュー前のスパム拒否をPostfixします

これは、送信者に追加の配信不能通知を送信せずに受け入れる前に、「554 5.7.0拒否」でスパムメッセージを拒否するように変更しようとしている、ストックOS X5.2サーバーのメール構成です。 「2502.7.0Ok」でスパムを受け入れ、後で箱から出して破棄または隔離するように構成されています。それは通常で行われます

$final_spam_destiny       = D_REJECT;
$warnspamsender = 0; (probably not necessary)

を使用して微調整することができます

$sa_dsn_cutoff_level = X;
$sa_crediblefrom_dsn_cutoff_level = X;

私が抱えている問題は、これらのカットオフレベルが特定のメッセージの実際のスパムスコアよりもはるかに低いにもかかわらず、DSN /バウンスが通過することです。次のようになります。

Oct 25 11:52:18 mailbox postfix/smtpd[52962]: 1CD504D13C96: client=mail.informark.co.ua[85.25.13.92]
Oct 25 11:52:18 mailbox postfix/cleanup[53010]: 1CD504D13C96: message-id=<11a201d22e97$126f7740$2adb3d4f@ynmyfnj>
Oct 25 11:52:19 mailbox postfix/qmgr[52740]: 1CD504D13C96: from=<[email protected]>, size=145530, nrcpt=1 (queue active)
Oct 25 11:52:20 mailbox postfix/smtp[53011]: 1CD504D13C96: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=2.2, delays=1.1/0/0.02/1, dsn=5.7.0, status=bounced (Host 127.0.0.1[127.0.0.1] said: 554 5.7.0 Reject, id=52765-01 - spam (in reply to end of DATA command))
Oct 25 11:52:20 mailbox postfix/bounce[53022]: 1CD504D13C96: sender non-delivery notification: 4B9804D13CB0
Oct 25 11:52:20 mailbox postfix/qmgr[52740]: 1CD504D13C96: removed

Oct 25 11:52:20 mailbox postfix/cleanup[53010]: 4B9804D13CB0: message-id=<[email protected]>
Oct 25 11:52:20 mailbox postfix/qmgr[52740]: 4B9804D13CB0: from=<>, size=3019, nrcpt=1 (queue active)
Oct 25 11:52:20 mailbox postfix/bounce[53022]: 1CD504D13C96: sender non-delivery notification: 4B9804D13CB0
Oct 25 11:52:20 mailbox postfix/smtp[53015]: 4B9804D13CB0: to=<[email protected]>, relay=mail.informark.co.ua[85.25.13.92]:25, delay=0.58, delays=0/0/0.26/0.32, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 9145D8C8CCC)
Oct 25 11:52:20 mailbox postfix/qmgr[52740]: 4B9804D13CB0: removed

amavis.log(デバッグレベル5)の関連部分は次のようになります。

lookup [forward_method] => true,  "[email protected]" matches, result="smtp:[127.0.0.1]:10025", matching_key="(opaque:smtp:[127.0.0.1]:10025)"
delivery method is 1, recips: [email protected]
get_deadline quar+notif - deadline in 479.0 s, set to 288.000 s
prolong_timer quar+notif: timer 288, was 288, deadline in 479.0 s
DSN: sender NOT credible, SA: 15.417, <[email protected]>
lookup: (scalar) matches, result="-100"
lookup [spam_dsn_cutoff_level_bysender] => true,  "[email protected]" matches, result="-100", matching_key="(constant:-100)"
dsn: . 554 Spam <[email protected]> -> <[email protected]>: on_succ=0, on_dly=1, on_fail=1, never=0, warn_sender=, DSN_passed_on=, destiny=-3, mta_resp: "554 5.7.0 Reject, id=52765-01 - spam"
DSN: FAIL . 554 Spam, status propagated back: <[email protected]> -> <[email protected]>
delivery_status_notification: notif 0 bytes, suppressed: no
one_response_for_all, per_recip_capable: N, suppressed: N
one_response_for_all <[email protected]>: REJECTs, '554 5.7.0 Reject, id=52765-01 - spam'
notif=N, suppressed=0, ndn_needed=, exit=69, 554 5.7.0 Reject, id=52765-01 - spam
get_deadline delivery-notification - deadline in 479.0 s, set to 288.000 s
prolong_timer delivery-notification: timer 288, was 288, deadline in 479.0 s
status counters: InMsgsStatus{Rejected,RejectedInbound}
get_deadline snmp-counters - deadline in 479.0 s, set to 288.000 s
prolong_timer snmp-counters: timer 288, was 288, deadline in 479.0 s
orcpt_encode rfc822, [email protected], smtputf8
oldest_public_ip_addr_from_received: 178.17.170.60
Blocked SPAM {RejectedInbound}, [85.25.13.92]:44462 [178.17.170.60] <[email protected]> -> <[email protected]>, Queue-ID: 1CD504D13C96, Message-ID: <11a201d22e97$126f7740$2adb3d4f@ynmyfnj>, mail_id: N0710n9hpdxw, Hits: 15.417, size: 145530, 1021 ms
get_deadline main_log_entry - deadline in 479.0 s, set to 288.000 s
prolong_timer main_log_entry: timer 288, was 288, deadline in 479.0 s
TIMING-SA total 817 ms - parse: 8 (1.0%), extract_message_metadata: 55 (6.7%), get_uri_detail_list: 1.42 (0.2%), tests_pri_-1000: 32 (3.9%), tests_pri_-950: 1.05 (0.1%), tests_pri_-900: 1.13 (0.1%), tests_pri_-400: 26 (3.1%), check_bayes: 24 (2.9%), b_tokenize: 11 (1.3%), b_tok_get_all: 3.5 (0.4%), b_comp_prob: 4.4 (0.5%), b_tok_touch_all: 0.80 (0.1%), b_finish: 1.12 (0.1%), tests_pri_0: 665 (81.4%), check_dkim_adsp: 479 (58.6%), check_spf: 43 (5.3%), poll_dns_idle: 0.28 (0.0%), check_pyzor: 0.25 (0.0%), tests_pri_500: 5 (0.7%), get_report: 0.77 (0.1%)
updating snmp variables in BDB
get_deadline check done - deadline in 479.0 s, set to 288.000 s
prolong_timer check done: timer 288, was 288, deadline in 479.0 s
sending SMTP response: "554 5.7.0 Reject, id=52765-01 - spam"
ESMTP> 554 5.7.0 Reject, id=52765-01 - spam
...
ESMTP< QUIT\r\n
...
ESMTP> 221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel

その結果、偽の電子メールアドレスにバウンスを送信しないようにamavis/postfixに明示的に指示し、amavisでさえ私の希望を認めたにもかかわらず、バウンスは送信されます。ログのキーは、インターネット上の他のamavisログで見たように、「yes」と「1」ではなく「no」と「0」である「suppressed」という単語だと思います。

したがって、問題は、私が間違っていることと、セットアップを妨げる何か他のものがある可能性があるかどうかです。また、これをデバッグするための最良の方法を知りたいです。明らかに、amavisログのステートメントは矛盾しています。

2
Захар Joe

ここでの問題は、メッセージを拒否しているのは後置ではなくamavisであるということです。受信メッセージの標準フローは次のとおりです。

  1. postfixは送信MTA(またはスパムボット)からメッセージを受信します
  2. postfixは、メッセージをamavizに転送(または転送を試み)します(ポート10024)。
  3. amavizはメッセージを接尾辞に転送します
  4. postfixはメッセージをcyrus(OS Xサーバー上のメールボックスを処理する)に配信します

あなたの場合、postfixはメッセージを受信して​​いますが(ステップ1)、amavizはそれを拒否しているため(ステップ2)、postfixはバウンスメッセージを生成します。 「to = <[email protected]>、relay = 127.0.0.1 [127.0.0.1]:10024、delay = 2.2、delays = 1.1/0/0.02/1」などのログエントリを参照してください。 dsn = 5.7.0、status = bouncedホスト127.0.0.1 [127.0.0.1]の発言:554 5.7.0拒否、id = 52765-01-スパム( DATAコマンドの終わりに返信してください))」。 localhost:10024(amaviz)に送信するポストフィックスであり、ポストフィックスは554リジェクトを取得するMTAであることに注意してください。

Postfixがメッセージを受信すると、それを拒否するには遅すぎます。あなたは本当にそれを落とすか、それを渡すことしかできません。これが、ブラックリストとグレーリストが役立つ理由です。これらはコンテンツスキャナーほど正確ではありませんが、接尾辞によって適用されますbeforeメッセージを受信したため、真の拒否が許可されます。

2
Gordon Davisson

OS X 10.11でamavisd-newを使用してキュー前フィルタリングを有効にするソリューションは、ほとんどの作業がすでにAppleによって行われているため、非常に簡単です。したがって、誰かが自分のOSXサーバーに実装したい場合に備えてここにあります。 This ページは私がそれを乗り越えるのを助けました。

3つのことを行う必要がありますが、最初に、構成ファイルをバックアップしてください。あなたはそれをすることができます

cp -Rp /Library/Server/Mail/config /Library/Server/Mail/config_backup

  1. /Library/Server/Mail/config/postfix/master.cfを編集する必要があります。を含む行を検索します

smtpd pass - - n - - smtpd

その行のすぐ下に追加する必要があります。

-o smtpd_proxy_filter=127.0.0.1:10024

  1. /Library/Server/Mail/config/amavisd/amavisd.confを編集する必要があります。

行を見つける

$final_spam_destiny = D_DISCARD;

と置き換えます

$final_spam_destiny = D_REJECT;

$ final_virus_destinyにD_REJECTを設定することもできます。

  1. OS Xのserveradminが次回のメールサーバーの再起動時にファイルを書き換えるため、master.cfにuser-immutableフラグを設定します。

chflags uchg /Library/Server/Mail/config/postfix/master.cf

その後、メールサーバーを再起動します

serveradmin stop mail; serveradmin start mailそして、メールログをしばらく見て、すべてが正しく行われたことを確認します。

tail -f /var/log/mail.log

および構成を変更/調整する場合のみ

chflags nouchg /Library/Server/Mail/config/postfix/master.cf

これがOSXでpostfixメールサーバーを実行している誰かに役立つことを願っています。

1
Захар Joe