False positive: Nextcloud auto uploading and synchronizing from mobile clients (nextcloud behind nginx proxy)
brknkfr opened this issue · 0 comments
Describe the bug
Mobile nextcloud clients, authenticated with an app token (password token and enabled storeCryptedPassword on nextcloud server), get banned for checking existing files via HEAD
.
To Reproduce
Install nextcloud behind nginx proxy. Connect nextcloud client via app token. Enable auto uploading of files (images for example) on nextcloud client on mobile device (Android, iPhone). The term auto uploading actually means synchronizing, checking for existing files and so on. The client gets banned after several tries with lots of following notices (404
on GET
, 403
or 404
on HEAD
and HEAD
without status code):
HEAD
with 403
:
╭─────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Key │ Value │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ datasource_path │ /var/log/nginx/access.log │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ datasource_type │ file │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_args_len │ 0 │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_path │ /remote.php/dav/files/**REDACTED** │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_status │ 403 │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_user_agent │ Mozilla/5.0 (Android) Nextcloud-android/3.29.2 │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_verb │ HEAD │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ log_type │ http_access-log │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ service │ http │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ source_ip │ **.***.***.** │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ timestamp │ 2024-08-27T13:19:43+02:00 │
╰─────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
GET
with 404
(File already disappeared on server.):
╭─────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Key │ Value │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ datasource_path │ /var/log/nginx/access.log │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ datasource_type │ file │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_args_len │ 0 │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_path │ /remote.php/dav/files/**REDACTED** │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_status │ 404 │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_user_agent │ Mozilla/5.0 (Android) Nextcloud-android/3.29.2 │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_verb │ GET │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ log_type │ http_access-log │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ service │ http │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ source_ip │ **.***.***.** │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ timestamp │ 2024-08-27T14:21:43+02:00 │
╰─────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
HEAD
without status code (IPv6?):
╭─────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Key │ Value │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ datasource_path │ /var/log/nginx/error.log │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ datasource_type │ file │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_args_len │ 0 │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_path │ /remote.php/dav/files/**REDACTED** │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ http_verb │ HEAD │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ log_type │ http_error-log │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ service │ http │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ source_ip │ 2a02:***:****:*:****:****:***:**** │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ target_fqdn │ cloud.***************** │
├─────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ timestamp │ 2024-08-28T04:54:38Z │
╰─────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Expected behavior
Synchronizing and uploading files should work without getting banned.