如何在 Zimbra 中安全地設定 SpamAssassin 自訂規則

應該編輯 Zimbra SpamAssassin 的哪個檔案?

對於 Zimbra Collaboration Suite 8.5 及更高版本,Zimbra 文件將本機 SpamAssassin 自訂設定放置在 `<path>` 目錄下/opt/zimbra/data/spamassassin/localrules。副檔名為 `.spamAssassin.rule` 的規則檔案.cf可以放在這裡;Zimbra 範例使用單獨的檔案來存放自訂規則。較早的 Zimbra 版本使用不同的位置,因此在編輯之前,請先驗證伺服器上的版本和目錄。目前軟體包佈局也可能因版本或部署而異。

本指南新增了一條小型的、可逆的全站規則,檢查了其語法,重新載入了郵件掃描服務,並驗證了郵件是否已送達。本指南假設您管理 Zimbra MTA。如果您執行多個 MTA 伺服器,請在每台掃描入站郵件的伺服器上套用此檔案並重新載入 SpamAssassin。

Zimbra 的自訂 SpamAssassin 規則指南記錄了 localrules 路徑和zmamavisdctl restart命令。其反垃圾郵件指南區分了較早的 ZCS 8 配置與 ZCS 8.5 及更高版本。

自訂規則會改變什麼?

SpamAssassin 規則會偵測郵件特徵,指派一個符號規則名稱,並計算一個分數。 SpamAssassin 會將該分數與其他測試結果結合。然後,Zimbra 會套用其配置的垃圾郵件處理閾值。規則本身並不能保證郵件一定會被放入垃圾郵件箱或被拒絕:郵件的其他評分以及伺服器的設定都至關重要。

在選擇評分標準時,這種差異至關重要。先從一個適中的值開始,檢查誤報情況,只有在測試顯示訊號可靠時才提高評分。切勿在未檢查自身所需的垃圾郵件評分和丟棄閾值的情況下,直接照搬範例中的高分值。

在修改任何內容之前,您應該確認哪些資訊?

  • 版本和路徑:請檢查您的 Zimbra 版本以及該路徑是否/opt/zimbra/data/spamassassin/localrules存在。根據 Zimbra 的文檔,本指南中的路徑適用於 ZCS 8.5 及更高版本。請勿假定其適用於更早的版本。
  • 哪些主機負責掃描郵件:識別所有執行 Amavis/SpamAssassin 的郵件傳輸代理程式 (MTA)。安裝在一台伺服器上的規則不會自動出現在另一台獨立的 MTA 上。
  • 規則意圖:選擇具體、可重複的訊息訊號。避免使用符合「免費」或「優惠」等寬泛詞語而缺乏額外證據的規則。
  • 回滾:在修改任何現有文件之前,請先對其進行記錄。新規則請使用新的、描述性的檔案名,切勿.cf意外覆蓋現有文件。

這些是伺服器層級的自訂設置,而非郵箱過濾器。所有郵件經過已設定掃描器的使用者都可能受到影響。

如何寫一條簡單的規則?

SpamAssassin 支援多種規則類型,例如`<header> header`、 `<body>` body、 `<body> uri` 和 ` meta<body>`。當郵件主題或郵件頭值是特定訊號時,`<header>` 規則非常有用。 `<body>` 規則搜尋文本郵件內容;SpamAssassin 的文檔指出,普通的 `<body>` 規則作用於解碼後的文本,預設會將主題視為郵件正文的一部分。當條件明確與連結相關時,請使用 `<URI>` 規則。

這裡提供一個刻意縮小範圍的範例:當測試郵件的主題包含特定短語時,系統會略微加分。請將該短語替換為您在自己的郵件中驗證過的信號;此範例並非通用的垃圾郵件特徵。

header LOCAL_SUBJECT_REVIEW Subject =~ /\bExample Vendor Alert\b/i
score LOCAL_SUBJECT_REVIEW 2.0
describe LOCAL_SUBJECT_REVIEW Subject contains the review phrase

符號名稱應唯一,並包含字母、數字和底線。該header行用於定義匹配項,score控制匹配成功時添加的分數,並describe在 SpamAssassin 的報告中提供解釋。描述應簡潔明了,並讓其他管理員清楚地了解此測試存在的意義。

SpamAssassin 的配置參考文件詳細介紹了郵件頭和郵件正文的規則語法、評分機制以及正規表示式。已安裝的 Zimbra SpamAssassin 版本可能與最新的 Apache 文件有所不同,因此在確認本機支援之前,請勿依賴較新的規則功能。

如何在 Zimbra 8.5 及更高版本上安裝規則?

  1. 使用管理員帳戶連線到 MTA,該帳戶可以切換到 Zimbra 服務帳戶。
  2. 檢查安裝目錄和本機規則目錄。例如:
    su - zimbra
    ls -ld /opt/zimbra/data/spamassassin/localrules
  3. 選擇一個尚不存在的檔案名,例如local_subject_review.cf。先檢查:
    ls -l /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf
    如果該檔案已存在,請檢查並選擇另一個名稱,而不是覆蓋它。
  4. 以您擁有編輯器的使用者身分建立新文件zimbra,並新增以上三行規則:
    vi /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf
  5. 儲存文件,然後確認所有者和內容:
    ls -l /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf
    cat /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf

如果目錄缺失,請停止操作並確認 Zimbra 版本及其文件中記錄的配置佈局。請勿在猜測的位置建立名稱相似的目錄;SpamAssassin 不一定會載入它。

應該如何驗證並重新加載?

重新載入前執行 SpamAssassin 的語法檢查。 Apache 命令列文件將其描述--lint為規則集和設定語法檢查。以 Zimbra 使用者身分執行該可執行檔(spamassassin --lint如果該可執行檔在 Zimbra 環境中可用)。如果找不到該命令或該命令無法載入 Zimbra 的配置,請找到捆綁的可執行文件,並使用與版本對應的配置路徑,而不是在不相關的系統安裝上進行測試。乾淨的 lint 結果只檢查語法,並不能證明您的模式能夠匹配您預期的訊息。

SpamAssassin 的命令參考文件解釋了 lint 選項。驗證成功後,以該zimbra使用者重新啟動 Amavis,以便掃描器載入變更後的規則:

zmamavisdctl restart

Zimbra 的自訂規則範例使用了此服務命令。在多 MTA 安裝中,請對每個適用的掃描器重複執行檔案部署和服務重新啟動操作。如果您的版本使用不同的服務指令,請參閱該版本的 Zimbra 文件。

如何判斷規則是否有效?

透過使用者使用的相同入站路由發送一條受控測試訊息。一則訊息使用規則中的完整主題短語,另一則訊息則不使用。檢查已送達訊息的原始標頭,特別X-Spam-Status是其中的 ` <head> LOCAL_SUBJECT_REVIEW` 和 `<score>` 屬性。比較這兩個訊息,並查看 Zimbra 將每個訊息分別發送到了何處。

如果規則僅出現在預期的測試中,且總分符合預期處理結果,則此結果有用。如果測試名稱缺失,請驗證郵件是否經過此郵件傳輸代理程式 (MTA),檔案名稱是否以 `.` 結尾.cf,檔案是否位於正確的本機規則目錄中,掃描器是否已成功重啟,以及樣本是否確實與正規表示式相符。請注意,郵件用戶端可能會在其常規視圖中隱藏診斷標頭;請開啟郵件原始碼或查看完整標頭。

如果規則產生誤報或不符怎麼辦?

  • 符合的合法郵件過多:降低分數或縮小正規表示式的範圍。在提高分數之前,請使用包含預期郵件和垃圾郵件的範例進行測試。
  • 沒有符合的訊息:請檢查確切的標頭名稱、不區分大小寫的正規表示式、轉義字元、檔案副檔名、路徑以及服務重新啟動情況。對於 URL,評估規則uri而非假設正文規則是最佳測試方法。
  • Lint 報告錯誤:請修正指定行,並在重新啟動前重新執行 lint。格式錯誤的自訂規則可能會導致配置問題或阻止預期測試載入。
  • 規則已顯示,但郵件仍留在收件匣中:如果該規則的加分未使總分超過您設定的垃圾郵件閾值,則此情況屬於正常現象。請查看完整X-Spam-Status分數和本地處理閾值。

要回滾,請僅刪除您新增的自訂文件,然後重新啟動 Amavis。如果您更改了現有文件,請恢復其已儲存的副本,並在重新載入之前驗證配置。請保留一份簡短的更改日誌,記錄規則的用途、評分、測試訊息和回滾檔案名,以便未來的管理員可以重新評估。

版本和行為限制

Zimbra 發布的路徑指南明確涵蓋了 ZCS 8.5 及更高版本,並針對早期版本提供了不同的佈局說明。捆綁的 SpamAssassin 版本和閾值取決於特定的安裝情況。有效的規則在不同的郵件格式、中繼和郵件流路徑下也可能表現不同。請查閱已安裝版本的文檔,在受控路由上進行測試,並根據郵件頭和真實的誤報樣本來判斷結果,而不僅僅是根據規則文字。

留下評論

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。

用於追蹤效能的 6 款最佳網路管理工具

用於追蹤效能的 6 款最佳網路管理工具

比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。

Ping 監控:7 款免費開源的網路可用性工具

Ping 監控:7 款免費開源的網路可用性工具

比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。

網路中的服務品質 (QoS):服務品質的角色和工作原理

網路中的服務品質 (QoS):服務品質的角色和工作原理

了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。

最佳SFTP伺服器軟體,實現安全檔案傳輸

最佳SFTP伺服器軟體,實現安全檔案傳輸

比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。

適用於網路團隊的 7 款最佳 IP 位址管理工具

適用於網路團隊的 7 款最佳 IP 位址管理工具

比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。

網路監控最佳實務:監控哪些內容以及使用哪些工具

網路監控最佳實務:監控哪些內容以及使用哪些工具

建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。

如何使用 Nmap 進行路由追蹤並讀取網路路徑

如何使用 Nmap 進行路由追蹤並讀取網路路徑

使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。