如何讓 spamassasin 根據分數拒絕郵件?

如何讓 spamassasin 根據分數拒絕郵件?

我正在運行帶有 Postfix、Dovecot、Postgrey 和 spamassasin/spamd 的 Linux。

這是我的main.cf

smtpd_recipient_restrictions = permit_sasl_authenticated,
                               permit_mynetworks,
                               reject_unauth_destination,
                               reject_invalid_hostname,
                               reject_unauth_pipelining,
                               reject_non_fqdn_sender,
                               reject_unknown_sender_domain,
                               reject_non_fqdn_recipient,
                               reject_unknown_recipient_domain,
                               check_policy_service inet:127.0.0.1:10030

我讓 spamassasin 將垃圾郵件標頭添加到 postfix 未捕獲的其他電子郵件中,但如何使其拒絕?

答案1

您可以設定 postfix 使用 Spamassasin/Amavis 作為代理過濾器。這樣可以防止退回郵件:與 SMTP 遠端的連線將保持開啟狀態,直到垃圾郵件檢查完成,並且 postfix 將使用 OK 或 REJECTED 訊息回應。這樣,遠端就負責反彈。

# master.cf

# mail inbound
smtp      inet  n       -       -       -       -       smtpd
    -o smtpd_proxy_filter=127.0.0.1:10024
    -o smtpd_client_connection_count_limit=10
    -o smtpd_proxy_options=speed_adjust

# spamassasin/amavis is listening to port 10024 and sending it's
# checked mail to port 10025
amavis    unix  -       -       n       -       2       smtp
   -o smtp_data_done_timeout=1200
   -o smtp_send_xforward_command=yes
   -o disable_dns_lookups=yes

# SMTP return (from amavis/spamassasin)
localhost:10025 inet  n -       n       -      -        smtpd
   -o content_filter=
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o smtpd_override_options=no_address_mappings
   -o mynetworks=127.0.0.0/8
   -o receive_override_options=no_unknown_recipient_checks
# main.cf

# for rejecting spam
header_checks = pcre:/etc/postfix/header_checks
# header_checks

/X-Spam-Level: \*{9,}/ REJECT Looks like spam to me.

如果您使用 Amavis 呼叫 spamassasin,您可以讓 Amavis 為您拒絕郵件 - 拒絕閾值可以設定$sa_kill_level_deflt。使用 Amavis 時,新增,no_header_body_checksreceive_override_optionsSMTP 返回條目。

答案2

一般來說,你不想拒絕任何事。大多數垃圾郵件都有偽造的標頭,因此人們可能會收到不屬於他們的退回郵件,而您只會給這些人和他們的管理員帶來麻煩(或者基本上是通過用不正確的退回郵件淹沒郵箱來創建垃圾郵件)。

更好的做法是保留垃圾郵件或將其放入垃圾郵件資料夾,以便用戶仍然可以存取該垃圾郵件,以防它實際上不是垃圾郵件,只需將您的郵件用戶端設定為在該郵件的老化時間夠長時刪除該郵件即可你相當確定你不需要它。

除此之外,配置您的郵件伺服器進行第一線防禦...您可以將其設定為使用 SPF,確保它嚴格遵守 RFC 等...如果您想更進一步,請與 RBL 檢查以拒絕黑洞列表中的郵件。它很強大,但是否要使用這些清單取決於您,因為它可能會定期阻止錯誤添加的伺服器,但另一方面,電子郵件並不是人們認為的可靠通訊媒介。電子郵件可能會成功,也可能不會成功,如果某件事關生死,請透過其他媒介溝通以驗證收據…垃圾郵件發送者會毀掉每個人的利益。

答案3

最好的想法是簡單地根據分數進行過濾。有時會發生這樣的情況:一封重要的電子郵件被 SA 攔截,而您不希望永久丟失該電子郵件(而且最終用戶會認為它永遠不會被送達)。

在我的個人伺服器上,任何得分高於 3.5 的內容都會被傳送到使用者的垃圾郵件資料夾中。這樣它總是能夠被交付,並且使用者可以存取它。然後有一個 cronjob 刪除該資料夾中超過 3 週的所有內容。

答案4

透過 milter 協定使用垃圾郵件過濾器時,您可以在 milter 過濾器之後進行額外的標頭檢查: http://www.postfix.org/header_checks.5.html

milter_header_checks(預設:空)

這些適用於透過 Milter 應用程式新增的標頭。 Postfix 2.7 及更高版本中提供了此功能。

相關內容