Postfix

Zimbra 8.8.x 上的設置策略以速率限制每個帳戶可以使用 smtp-auth 發送的消息數量

  • July 10, 2019

我正在執行 Zimbra 8.8.9,並且正在嘗試限制單個使用者在使用 smtp-auth 進行身份驗證後可以通過 smtp 發送的消息數量。目的是在我的使用者密碼之一被垃圾郵件發送者猜到/獲得的情況下限制損害。

Zimbra 將 CBPolicyD (www.policyd.org) 作為 zimbra-mta 包的一部分提供,但預設情況下它是禁用的。

我遵循了https://wiki.zimbra.com/wiki/How-to_for_cbpolicyd上的操作指南並啟用了策略:

zmprov ms zimbra.mydomain.tld +zimbraServiceInstalled cbpolicyd
zmprov ms zimbra.mydomain.tld +zimbraServiceEnabled cbpolicyd

我還啟動了網路界面:

sudo -s
cd /opt/zimbra/data/httpd/htdocs
ln -s ../../../common/share/webui

並設置 Zimbra 的 Apache 來服務這個新目錄:

  • 編輯/opt/zimbra/conf/httpd.conf
  • 添加Alias /webui /opt/zimbra/common/share/webui/到文件末尾
  • 重啟 Zimbra

我編輯了配置文件/opt/zimbra/common/share/webui/includes/config.php以指向正確的 sqlite db:

$DB_DSN="sqlite:/opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb";

最後在 zimbra 的 crontab 末尾添加了一個 cronjob 來定期清理跟踪數據庫:

# ZIMBRAEND -- DO NOT EDIT ANYTHING BETWEEN THIS LINE AND ZIMBRASTART
0 * * * * cat /opt/zimbra/log/clean_cbpolicyd_daily.sql  | sqlite3 /opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb

我找不到有關如何使用策略 webui 設置速率限制的分步範例,而且界面使用起來遠非直覺。

我如何對每個帳戶發送的電子郵件進行策略計數並對其進行速率限制?

首先請注意,除非您採取其他措施,否則 policyd webui 不受密碼保護,即添加一個.htaccess到該目錄並添加一個AllowOverride AuthConfighttpd.conf

<Directory /opt/zimbra/common/share/webui>
AllowOverride AuthConfig
</Directory>

另請注意,預設情況下,policyd 僅在 Zimbra 的明文 Web 界面上可用,即http://zimbra.domain.tld:7780/webui/index.php

採取適當的措施來保護 Web 界面。

轉到http://zimbra.domain.tld:7780/webui/policy-main.php並選擇“添加”。輸入以下內容:

  • 名稱:s​​mtp-auth-limit
  • 優先級:1
  • 說明:隨便

返回http://zimbra.domain.tld:7780/webui/policy-main.php並選擇新的“smtp-auth-limit”策略,然後選擇“更改”操作。將“禁用”設置為“否”並送出。

現在再次返回http://zimbra.domain.tld:7780/webui/policy-main.php,再次選擇 ‘smtp-auth-limit’ 並選擇操作“Members”。

選擇“添加”並輸入以下內容:

  • 來源:$*
  • 目的地:任何
  • 評語:隨便

現在要小心點擊“返回成員”而不是“返回政策”,否則您會迷路。

如果您小心,請選擇帶有 Source “$*” 的行並選擇 Action “Change”。

如果一不小心,回到http://zimbra.domain.tld:7780/webui/policy-main.php選擇“smtp-auth-limit”策略,Action“Members”,選擇Source“$ *”並選擇操作“更改”。

將“禁用”設置為“否”並送出。

最後轉到http://zimbra.domain.ltd:7780/webui/quotas-main.php並選擇操作“添加”。輸入以下內容:

  • 名稱:速率限制 smtp auth
  • 跟踪:SASL使用者名:使用者名
  • 期間:86400
  • 政策連結:從下拉菜單中選擇“smtp-auth-limit”
  • 判決:推遲(延遲)
  • 數據:你說得太快了(這條資訊會顯示給發件人)
  • 在這裡停止處理:是

返回http://zimbra.domain.ltd:7780/webui/quotas-main.php並選擇“smtp-auth-limit”策略,選擇“更改”操作。將禁用設置為“否”並送出。

再次返回http://zimbra.domain.ltd:7780/webui/quotas-main.php並選擇“smtp-auth-limit”策略,選擇“限制”操作。

選擇“添加”操作並輸入以下內容,假設您希望每個帳戶每 86400 秒最多發送 200 條消息:

  • 類型:消息計數
  • 計數器限制:200
  • 評語:隨便

現在要小心,你知道演習,點擊“回到配額限制”,否則你會迷路。選擇 Counter Limit = 200 的行,然後選擇“更改”操作。將禁用設置為“否”並送出。

引用自:https://serverfault.com/questions/934570