Come appare il messaggio
The reverse proxy header configuration is incorrect. This is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud.Cause frequenti
- Nextcloud gira dietro nginx, Apache, Traefik, HAProxy o un proxy Docker, ma
trusted_proxiesmanca inconfig.php. - Il proxy non invia
X-Forwarded-For,X-Forwarded-ProtoeHost. overwriteprotocolooverwrite.cli.urlnon corrispondono all'indirizzo pubblico (http contro https).- Più di un passaggio, ad esempio Cloudflare, poi nginx, poi il container Nextcloud, e solo uno è considerato fidato.
- Il caso opposto: non c'è alcun proxy, ma
trusted_proxieselenca ancora un vecchio indirizzo.
Verifica
- Di quali proxy si fida Nextcloud?
- Il protocollo è forzato correttamente?
sudo -u www-data php occ config:system:get overwriteprotocol - Quali header imposta il proxy?
grep -rnE 'proxy_set_header|X-Forwarded' /etc/nginx/ - Controlla la risposta dell'istanza (l'avviso è in Impostazioni → Amministrazione → Panoramica)
curl -sI https://cloud.example.com/status.php
Soluzione
- Aggiungi l'indirizzo del proxy:
sudo -u www-data php occ config:system:set trusted_proxies 0 --value=192.0.2.10. Un indice per ogni proxy. - Forza il protocollo pubblico:
sudo -u www-data php occ config:system:set overwriteprotocol --value=https. - Fai inviare gli header al proxy:
proxy_set_header Host $host;,proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;eproxy_set_header X-Forwarded-Proto $scheme;. - Dietro Cloudflare aggiungi i suoi intervalli di indirizzi a
trusted_proxiese impostaforwarded_for_headerssuHTTP_CF_CONNECTING_IP. - Se non c'è alcun proxy, rimuovi
trusted_proxieseforwarded_for_headers.
Domande frequenti
Perché si parla di problema di sicurezza?
Nextcloud crede all'IP inoltrato solo se arriva da proxy fidati. Altrimenti chiunque potrebbe inviare un header falso e nascondersi dietro un indirizzo diverso, aggirando anche la protezione brute force.
Perché tutti gli utenti mostrano lo stesso IP?
Perché Nextcloud vede l'indirizzo del proxy. Allora la protezione brute force può rallentare tutti gli utenti insieme, vedi too many requests.