From 0229406ad6632f479341cf4a9480746f21f9b95a Mon Sep 17 00:00:00 2001 From: il Date: Sat, 2 May 2026 19:49:24 +0900 Subject: [PATCH] fix(crowdsec): update whitelist.yaml to prevent false positive from nextcloud chunk --- .../crowdsec/bouncers/whitelists.yaml.j2 | 2 ++ docs/issues/crowdsec/260502_nextcloud.md | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 docs/issues/crowdsec/260502_nextcloud.md diff --git a/config/services/systemd/common/crowdsec/bouncers/whitelists.yaml.j2 b/config/services/systemd/common/crowdsec/bouncers/whitelists.yaml.j2 index fed75d1..8b78823 100644 --- a/config/services/systemd/common/crowdsec/bouncers/whitelists.yaml.j2 +++ b/config/services/systemd/common/crowdsec/bouncers/whitelists.yaml.j2 @@ -18,4 +18,6 @@ whitelist: - "evt.Meta.target_fqdn == '{{ services['immich']['domain']['public'] }}.{{ domain['public'] }}' && evt.Meta.http_path contains '/api/assets/' && evt.Meta.http_path contains '/thumbnail'" # opencloud chunk request false positive - "evt.Meta.target_fqdn == '{{ services['opencloud']['domain']['public'] }}.{{ domain['public'] }}' && evt.Meta.http_path contains '/js/chunks/'" + # nextcloud chunk request false positive + - evt.Meta.target_fqdn == '{{ services['opencloud']['domain']['public'] }}.{{ domain['public'] }}' && evt.Meta.http_path contains '/apps/viewer/js/' {% endif %} diff --git a/docs/issues/crowdsec/260502_nextcloud.md b/docs/issues/crowdsec/260502_nextcloud.md new file mode 100644 index 0000000..87e8357 --- /dev/null +++ b/docs/issues/crowdsec/260502_nextcloud.md @@ -0,0 +1,33 @@ +# Nextcloud crowdsec false positive issue + +## Status +- Finished + +## Date +- 2026-05-02 + +## Version +- Nextcloud: 33.0.3 + +## Problem +- When users download or modify some files, all connections to homelab services are refused. + - fw ban users' IP address. + +## Reason +- Nextcloud uses chunks when clients uploads or download files to it. +- LAPI decides a ban when a lot of chunks file is uploaded or downloaded from external devices. + - `crowdsecurity/http-crawl-non_statics` + +## Timeline +- 2026-05-02: Release OpenCloud +- 2026-05-02: Find the false positive case, and add whitelist + +## Solution +- Access to fw + - Check the ban list with `sudo cscli alerts list` + - Read the ban case with `sudo cscli alerts inspect $NUMBER` +- Add regex on whitelist + - evt.Meta.target_fcqdn == '{{ services['opencloud']['domain']['public'] }}.{{ domain['public'] }}' && evt.Meta.http_path contains '/apps/viewer/js/' +- Delete false positive decision + - Check false positive decision with `sudo cscli decision list` + - Delete false positive decision with `sudo cscli decision delete --id $ID`