Un risultato A+ da uno scanner di intestazioni di sicurezza è un obiettivo di configurazione utile, ma non costituisce una certificazione di sicurezza completa per un server Nextcloud. La valutazione riflette le intestazioni di risposta HTTP che uno specifico scanner controlla all'URL testato. Non analizza il database, il sistema operativo, i backup, gli account utente, le app installate o il processo di applicazione delle patch. Un piano di hardening sicuro inizia quindi con i controlli di integrità di Nextcloud, per poi proteggere il server e il suo livello web pubblico, e infine ripetere il test dell'URL pubblico in questione.
Questa guida si basa sul Manuale di amministrazione di Nextcloud 35, disponibile a ottobre 2026. Gli esempi di configurazione possono variare a seconda che si utilizzino Apache, NGINX, container o reverse proxy. Prima di applicare ogni modifica, verificare la documentazione relativa alla versione del server e alla configurazione di implementazione in uso.
Lista di controllo rapida
- Eseguire il backup del database, della directory dei dati e della configurazione prima di apportare modifiche o aggiornamenti.
- Installa gli aggiornamenti supportati per Nextcloud, PHP, database, sistema operativo e applicazioni.
- Utilizza HTTPS per ogni connessione pubblica e reindirizza HTTP a HTTPS.
- Abilita HSTS solo dopo che HTTPS funziona correttamente su tutto il dominio e su tutti i sottodomini interessati.
- Se possibile, mantieni la directory dei dati e le configurazioni sensibili al di fuori della directory principale del sito web.
- Utilizza l'autenticazione a più fattori (MFA) per gli amministratori e, ove opportuno, per tutti gli utenti.
- Configura i proxy attendibili in modo restrittivo; non fidarti mai di intestazioni IP client inoltrate arbitrariamente.
- Risolvere gli avvisi della Panoramica di amministrazione di Nextcloud e testare le intestazioni sull'endpoint pubblico.
1. Stabilire una linea di base sicura
Prima di modificare le intestazioni o le impostazioni PHP, identifica come la richiesta raggiunge Nextcloud: direttamente tramite Apache o NGINX, tramite un proxy container o tramite un bilanciatore di carico gestito. Annota la versione di Nextcloud, la versione di PHP, il tipo di database, le applicazioni abilitate e il punto di terminazione TLS. Conserva una copia della configurazione attiva dell'host virtuale o del proxy in modo da poter ripristinare una modifica non funzionante.
Esegui un backup ripristinabile del database, dell'intera directory dei dati e della configurazione di Nextcloud, inclusi i file di configurazione config.php. Una semplice copia dei file non costituisce un backup completo: assicurati di sapere come ripristinare tutti e tre i componenti insieme. La documentazione di aggiornamento di Nextcloud avverte specificamente che il suo strumento di aggiornamento non esegue il backup del database o della directory dei dati. Consulta la guida di Nextcloud per l'aggiornamento e il backup .
Accedi come amministratore e apri le impostazioni di amministrazione, quindi Panoramica. Esamina gli avvisi di sicurezza e di configurazione, nonché gli avvisi relativi ai processi in background e al database. Una panoramica pulita è un utile controllo a livello di applicazione, ma non sostituisce l'applicazione di patch al sistema operativo o un test con intestazioni esterne. Evita di ignorare un avviso finché non ne comprendi la causa.
2. Applicare la patch a Nextcloud e al suo host
Utilizza una versione di Nextcloud supportata con una combinazione di PHP e database anch'essa supportata. Applica tempestivamente gli aggiornamenti di manutenzione e verifica la compatibilità delle app prima di passare a una nuova versione principale. Aggiorna il sistema operativo, il server web, il runtime PHP, il server di database e le app Nextcloud installate tramite i canali di aggiornamento supportati. Rimuovi le app inutilizzate o non più supportate, poiché ogni componente abilitato aggiunge codice e lavoro di manutenzione.
Prima di un aggiornamento, verifica il backup e leggi le note di rilascio per la versione di destinazione. Utilizza l'aggiornamento supportato per il tuo tipo di installazione, quindi completa l'eventuale migrazione del database necessaria e controlla la panoramica amministrativa e i log. Non eseguire il downgrade copiando i file dell'applicazione precedente su un'istanza migrata; Nextcloud documenta il downgrade come non supportato e raccomanda il ripristino da un backup compatibile quando è necessario un rollback.
3. Proteggere le credenziali e gli account
Utilizza l'autenticazione a più fattori (MFA) e riduci i rischi per gli amministratori.
Abilita un provider di autenticazione a due fattori (2FA) e richiedi l'autenticazione a più fattori (MFA) per gli account amministratore. Il supporto per la 2FA di Nextcloud è fornito tramite app, quindi verifica che il provider selezionato sia compatibile con la tua versione e che gli utenti dispongano di un percorso di ripristino prima di renderlo obbligatorio. Conserva i codici di ripristino di emergenza offline e in un luogo sicuro. Non disabilitare la protezione contro gli attacchi brute-force per risolvere i ritardi di accesso; analizza invece gli indirizzi IP di origine e la configurazione del proxy.
Utilizza account amministratore individuali per le attività di routine e concedi i diritti di amministratore solo quando necessario. Scegli password univoche e lunghe e utilizza un gestore di password. Revoca tempestivamente le sessioni di smarrimento del dispositivo e le password delle app. Rivedi periodicamente account, gruppi, condivisioni pubbliche e spazio di archiviazione esterno, rimuovendo gli accessi non più necessari per l'attività lavorativa.
Mantenere efficace la protezione dalla forza bruta
La protezione contro gli attacchi brute-force di Nextcloud è abilitata per impostazione predefinita. La sua efficacia dipende dal fatto che il server veda l'indirizzo IP reale del client. Se Nextcloud si trova dietro un proxy, configura solo l'indirizzo o la rete proxy effettivi trusted_proxiese imposta forwarded_for_headerssolo l'intestazione controllata dal proxy. Affidarsi a un'intestazione che un client può falsificare può compromettere le protezioni basate su IP. Evita di inserire voci di whitelist troppo generiche: gli indirizzi esclusi possono tentare l'autenticazione senza essere limitati. Consulta la documentazione sulla protezione contro gli attacchi brute-force e la guida alla configurazione del reverse proxy .
4. Ridurre l'esposizione derivante da file e configurazione del server
Posiziona la directory dei dati di Nextcloud al di fuori della directory principale del server web, in modo che un errore del server web abbia meno probabilità di esporre i file memorizzati. Limita la proprietà e le autorizzazioni del filesystem all'account di servizio e agli amministratori che necessitano di accedervi; non rendere la directory leggibile o scrivibile da tutti. Proteggi la directory config.phpche contiene le credenziali del database e i segreti dell'istanza. La guida di hardening di Nextcloud 35 documenta anche lo spostamento della directory di configurazione al di fuori della directory principale del server web NEXTCLOUD_CONFIG_DIR; impostala in modo coerente per i processi web e i job da riga di comando, quindi verifica che l'istanza carichi ancora la configurazione prevista.
Mantieni disabilitata la modalità di debug di produzione. Abilita la protezione del sistema operativo, ad esempio SELinux, laddove supportato e compreso dal tuo team. Se esegui l'applicazione in un container, proteggi l'host, i volumi persistenti, le credenziali del registro del container e l'interfaccia di gestione, oltre all'applicazione Nextcloud. Limita l'accesso alla rete in entrata ai servizi che devono essere pubblici; non esporre porte di database o shell amministrative a Internet.
Nextcloud supporta funzionalità che consentono connessioni in uscita verso altri sistemi, pertanto la segmentazione della rete e le policy del firewall sono importanti. Posiziona l'istanza in una zona di rete opportunamente vincolata e consenti solo le destinazioni in uscita necessarie per le funzionalità abilitate. L'elenco esatto delle destinazioni consentite dipende dalle applicazioni e dalle scelte di implementazione.
5. Configurare attentamente HTTPS e HSTS
Assicurati che il sito sia servito da un certificato TLS valido e reindirizza tutte le richieste HTTP non crittografate a HTTPS. Testa la catena di certificati, il processo di rinnovo e ogni nome host a cui gli utenti accedono effettivamente. La guida di hardening di Nextcloud raccomanda HTTPS e documenta HSTS. HSTS indica ai browser di continuare a utilizzare HTTPS per un certo periodo di tempo dopo aver ricevuto la policy, quindi abilitalo solo dopo aver verificato che HTTPS funzioni in modo affidabile.
Inizia con una policy HSTS appropriata al tuo ambiente, ad esempio Strict-Transport-Security: max-age=15552000, quindi aumenta la durata dopo il monitoraggio. Aggiungi includeSubDomainssolo se ogni sottodominio interessato supporta HTTPS. Consideralo preloadcome una decisione separata e ad alto impatto: i browser potrebbero mantenere un dominio precaricato per molto tempo e la rimozione potrebbe richiedere mesi prima di raggiungere gli utenti. Non copiare un esempio di precaricamento senza aver prima verificato tutti i sottodomini e i requisiti attuali. Le opzioni TLS variano in base alle esigenze del server e del client; utilizza la guida TLS di Nextcloud (collegata) e testa l'endpoint risultante.
6. Impostare le intestazioni di risposta al livello corretto
Nextcloud fornisce già diverse intestazioni di sicurezza, tra cui X-Content-Type-Options, X-Frame-Options, X-Robots-Tag, e Referrer-Policy. La sua documentazione raccomanda di assicurarsi che anche il server web fornisca intestazioni relative alla sicurezza, in modo che rimangano efficaci per le risposte statiche. Le implementazioni Apache devono verificare che i moduli pertinenti e .htaccessle regole di Nextcloud siano attivi. Le implementazioni NGINX devono utilizzare la configurazione NGINX corrente di Nextcloud anziché presumere che si applichino le regole di Apache. Consultare la guida alla protezione di Nextcloud e la relativa configurazione NGINX .
Una causa comune di risultati fuorvianti è l'impostazione della stessa intestazione in Nextcloud, nel server web e in una CDN o proxy inverso. La risposta può quindi contenere valori duplicati o in conflitto. Scegli il livello responsabile di ciascuna intestazione, verifica la risposta finale visualizzata dal browser ed evita di sostituire la Content Security Policy di Nextcloud con una policy generica copiata da un altro sito. Una CSP troppo restrittiva potrebbe compromettere script o funzionalità necessarie a Nextcloud e alle sue app. Testa le modifiche alla policy su un host di staging e controlla gli errori del browser prima del rilascio in produzione.
Affinché uno scanner riporti il risultato previsto, testa l'URL HTTPS finale visitato dagli utenti, inclusi i reindirizzamenti e qualsiasi passaggio attraverso CDN o proxy. Verifica sia la landing page che una risorsa statica, poiché livelli diversi possono restituire intestazioni diverse. Conferma che i reindirizzamenti HTTP avvengano correttamente in HTTPS e che la risposta finale contenga un valore coerente per ciascuna intestazione. Utilizza questo strumento curl -I https://your-cloud.examplecome controllo rapido, quindi utilizza gli strumenti per sviluppatori del browser o uno scanner esterno per verificare la risposta pubblica effettiva. Sostituisci il nome host di esempio con il tuo; non pubblicare nomi host o credenziali private nei report di scansione.
7. Verificare il risultato senza confondere un voto con la sicurezza
Esegui il test di SecurityHeaders.com sull'URL HTTPS pubblico e leggi attentamente ogni risultato, non solo la lettera. Le FAQ descrivono il punteggio come una valutazione delle intestazioni di risposta relative alla sicurezza che il servizio controlla. Un punteggio A+ significa quindi che la risposta testata ha soddisfatto i criteri di valutazione attuali del servizio; non significa che Nextcloud sia privo di vulnerabilità o che l'intero server abbia superato un penetration test. Scanner diversi possono valutare la stessa configurazione in modo diverso e i criteri di valutazione possono cambiare.
Se il risultato è inferiore ad A+, identifica l'intestazione mancante o in conflitto, determina quale livello dovrebbe impostarla e modifica un elemento alla volta. Esegui nuovamente il test dopo ogni modifica e verifica l'accesso, il caricamento e il download di file, la sincronizzazione tra desktop e dispositivi mobili, WebDAV, la condivisione e qualsiasi applicazione critica. Se il comportamento non è corretto, ripristina l'ultima modifica dell'intestazione e controlla i log del server e del browser. Non aggiungere mai una Content Security Policy generica solo per soddisfare un punteggio senza aver prima verificato i requisiti documentati dell'applicazione.
Revisione finale dell'indurimento
- È possibile ripristinare il database, la directory dei dati e la configurazione da un backup recente?
- Nextcloud, l'hosting, PHP, il database, il server web e le app abilitate sono inclusi nei canali di aggiornamento supportati?
- Tutti gli hostname pubblici utilizzano HTTPS, con HSTS limitato ai soli domini predisposti?
- I file di dati e di configurazione sono protetti da permessi restrittivi e non accessibili al pubblico?
- Gli account amministratore utilizzano l'autenticazione a più fattori (MFA) e gli account, le sessioni e le password delle app obsolete vengono rimossi?
- Nextcloud riesce a visualizzare gli indirizzi IP reali dei client tramite una configurazione proxy con attendibilità limitata?
- Gli avvisi della Panoramica amministrativa sono stati compresi e, ove applicabile, risolti?
- Il test dell'intestazione esterna mostra un risultato coerente per la risposta pubblica finale e i normali flussi di lavoro di Nextcloud continuano a funzionare?
Per le procedure specifiche per la versione, consultare le linee guida di sicurezza e protezione di Nextcloud 35 , la guida all'aggiornamento e la documentazione del server web o della piattaforma di hosting. Il risultato più utile è un server che rimane aggiornato, è ripristinabile, limita l'esposizione ai rischi e continua a funzionare dopo ogni modifica di sicurezza, non un voto numerico fine a se stesso.