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

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

Jason Cheng 發布 瀏覽 3 次
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

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

關於作者 →

延伸閱讀