跳到主要內容
節省工具箱Jason Tools
經驗分享

Wazuh 上傳 CDB list 的檔案大小限制

Jason Cheng 發布
Wazuh 上傳 CDB list 的檔案大小限制
本文目錄
  1. 上傳經過哪些地方
  2. Wazuh Dashboard
  3. Wazuh Server API
  4. 反向代理
  5. 調整順序
  6. 清單很大時的建議
  7. 結論
  8. 參考資料

Wazuh 的 CDB list 很適合拿來放黑名單、白名單,例如惡意 IP、已知的惡意網域,規則比對時查表非常快。但清單一長,從網頁介面上傳就會失敗:

Payload content length greater than maximum allowed: 1048576

1048576 bytes 就是 1 MB。清單稍微大一點就超過了。這篇整理上傳路徑上會擋檔案大小的三個地方,以及要怎麼調整。

上傳經過哪些地方

從瀏覽器上傳 CDB list 時,檔案會依序經過:

順序元件設定預設上限
1反向代理(有的話,例如 Nginx)client_max_body_size1 MB
2Wazuh Dashboard(OpenSearch Dashboards)server.maxPayloadBytes1 MB(1048576)
3Wazuh Server APImax_upload_size10 MB(10485760)

錯誤訊息裡的 1048576 是 Dashboard 的預設值,所以通常是第 2 關先擋下來。調高之後如果檔案超過 10 MB,就換成 Wazuh API 擋。有反向代理的話,它的預設也是 1 MB,三個地方要一起看。

Wazuh Dashboard

編輯 /etc/wazuh-dashboard/opensearch_dashboards.yml,加入或修改:

server.maxPayloadBytes: 104857600

這裡以 100 MB 為例,依實際的清單大小調整,不用設得太大。

systemctl restart wazuh-dashboard

Wazuh Server API

檔案超過 10 MB 才需要調整。編輯 /var/ossec/api/configuration/api.yaml:

max_upload_size: 104857600

官方文件說明這個值是 API 能接受的最大請求內容(bytes),設成 0 代表不限制,不建議設成 0。Wazuh API 是跟著 manager 一起執行的,改完重新啟動 manager:

systemctl restart wazuh-manager

叢集環境的話,Dashboard 連的是 master 節點的 API,改 master 上的設定即可;為了一致,建議每個節點都改。

反向代理

前面有 Nginx 做 HTTPS 反向代理的話,在對應的 server 區塊加入:

client_max_body_size 100M;
nginx -t && systemctl reload nginx

被 Nginx 擋下時,錯誤通常是 413 Request Entity Too Large,跟 Dashboard 的訊息不一樣,可以從錯誤訊息判斷是哪一關。

調整順序

  1. 先調 Dashboard 的 server.maxPayloadBytes,重新上傳
  2. 檔案超過 10 MB 還是失敗,再調 Wazuh API 的 max_upload_size
  3. 有反向代理且看到 413,調 Nginx 的 client_max_body_size

上傳成功後,CDB list 要重新啟動 manager 才會重新編譯並生效,網頁介面上傳後通常會提示重新啟動。

清單很大時的建議

  • 拆成多個清單:依類別或來源拆開(例如惡意 IP、惡意網域分開),規則裡分別引用,更新時也只要換其中一份
  • 不要從網頁編輯巨大的清單:上傳沒問題了,打開來看或編輯時還是可能逾時,處理方式見〈Wazuh Dashboard 讀取 CDB list 逾時的調整〉
  • 大清單可以直接放檔案:清單檔放在 manager 的 /var/ossec/etc/lists/,在 ossec.conf 的 <ruleset> 裡用 <list> 引用,用腳本定期更新,不經過網頁介面
<ruleset>
  <list>etc/lists/malicious-ip</list>
</ruleset>

結論

Payload content length greater than maximum allowed: 1048576 是 Dashboard 的 1 MB 上限,調 server.maxPayloadBytes 就能解決;超過 10 MB 再調 Wazuh API 的 max_upload_size,有反向代理的話別忘了它也有自己的限制。

參考資料

Jason Cheng

Jason Cheng

企業開源技術顧問,專注架構規劃與實務導入

關於作者 →

延伸閱讀