Comment obtenir la note A+ en matière de sécurité pour Nextcloud ?

Votre site Nextcloud peut fonctionner normalement et obtenir malgré tout une mauvaise note lors d'une analyse de sécurité externe. Les causes fréquentes incluent une version de serveur obsolète ou en fin de vie, l'absence d'en-tête HSTS ou un proxy inverse qui masque le protocole HTTPS à Nextcloud. Commencez par mettre à jour Nextcloud, activez le protocole HTTPS au niveau du serveur web public, configurez la confiance du proxy de manière restrictive et supprimez les avertissements affichés par la page d'administration de Nextcloud.

Il n'existe pas de norme « A+ » universelle. L'analyse de sécurité officielle de Nextcloud évalue un serveur Nextcloud accessible publiquement en se basant sur les avis de sécurité connus et les contrôles de renforcement qu'elle peut effectuer de l'extérieur ; SSL Labs évalue la configuration TLS. Toute note doit être considérée comme un résultat ponctuel, et non comme une preuve de la sécurité du serveur ou une garantie contre les vulnérabilités inconnues.

1. Identifiez le scanner et mettez à jour le serveur

Notez quel outil d'analyse a attribué la note avant de modifier les paramètres. L'analyse officielle de Nextcloud signale les vulnérabilités connues, les versions obsolètes et les problèmes de sécurité visibles. Une note concernant uniquement le protocole TLS peut provenir de SSL Labs. Corrigez les avertissements de l'outil d'analyse que vous utilisez, puis relancez la même analyse ; les critères varient selon les services.

Dans les paramètres d'administration de Nextcloud, vérifiez la version du serveur et les éventuels avertissements de sécurité ou de configuration. Mettez à niveau vers une version prise en charge de Nextcloud et installez ses correctifs de sécurité les plus récents avant de modifier les en-têtes. Une ancienne version peut rester vulnérable même si un scanner d'en-têtes lui attribue la note maximale (A+). Si aucune mise à niveau n'est disponible pour votre package d'installation, suivez la procédure de mise à niveau recommandée plutôt que de remplacer les fichiers manuellement.

2. Exiger le protocole HTTPS et ajouter HSTS

Servez l'URL publique de Nextcloud via HTTPS avec un certificat valide et redirigez le trafic HTTP non chiffré vers HTTPS. Le guide de sécurisation de Nextcloud recommande l'utilisation de HTTPS sur les serveurs de production. Ajoutez ensuite le protocole HSTS (HTTP Strict Transport Security) sur le serveur ou le proxy qui envoie la réponse HTTPS publique. L'avertissement d'administration de Nextcloud préconise une Strict-Transport-Securitydurée de vie maximale (max-age) d'au moins 15 552 000 secondes.

Pour Nginx, ajoutez une directive comme celle-ci au bloc du serveur TLS actif, en remplaçant le nom d'hôte et en conservant le reste de votre configuration Nextcloud valide :

add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
Un bloc serveur TLS Nginx affichant un en-tête HSTS avec une durée de vie maximale de 15 552 000 secondes et l’option includeSubDomains.
Configurez HSTS sur le bloc serveur HTTPS qui envoie les réponses aux visiteurs publics.

N'utilisez includeSubDomainscette option que si chaque sous-domaine est également accessible via HTTPS. N'ajoutez pas cette option preloadà la légère : les listes de préchargement des navigateurs peuvent mettre des mois à supprimer un domaine après sa soumission. Si un proxy inverse gère TLS, configurez HSTS sur ce proxy public ; le configurer uniquement sur un serveur Nextcloud interne risque de ne pas modifier l'en-tête détecté par l'analyseur.

Nextcloud envoie déjà des en-têtes de base tels que X-Content-Type-Options` <header>`, X-Frame-Options`<header>`, Referrer-Policy`<header>` et ` X-Robots-Tag<header>` dans un environnement par défaut. Évitez d'ajouter des versions dupliquées ou conflictuelles avant d'avoir vérifié la réponse. L'exemple de configuration Nginx de Nextcloud montre comment servir ces en-têtes depuis Nginx.

3. Configurer un proxy inverse sans faire confiance à tous les clients

Si un proxy inverse est placé devant Nextcloud, indiquez uniquement son adresse IP réelle ou la plage d'adresses de son réseau privé trusted_proxies. Nextcloud utilise les en-têtes IP client transférés uniquement pour les proxys de confiance ; faire confiance à des adresses incorrectes peut permettre aux clients d'usurper leur adresse IP apparente et de contourner les contrôles d'accès ou les journaux.

Par exemple, si le proxy de terminaison TLS se trouve en réalité à 10.0.0.10, fusionnez les entrées correspondantes dans le $CONFIGtableau existant dans config/config.php:

'trusted_proxies' => ['10.0.0.10'],
'overwriteprotocol' => 'https',
Un extrait de code montrant que trusted_proxies est défini sur 10.0.0.10 et overwriteprotocol sur https.
Ces entrées ne sont que des exemples. Utilisez l'adresse IP réelle du proxy et intégrez-la à la configuration Nextcloud existante.

Configurez overwriteprotocolcette option httpslorsque la connexion TLS se termine au niveau du proxy et que Nextcloud détecte la connexion HTTP interne comme une connexion HTTP publique. Si votre proxy utilise un en-tête d'adresse IP transférée non standard, configurez- forwarded_for_headersle pour qu'il corresponde exactement. N'utilisez pas une plage d'adresses IP de confiance trop large 0.0.0.0/0. Après avoir modifié le fichier, vérifiez la configuration fusionnée et testez la connexion, le partage et les liens générés.

4. Supprimez les avertissements Nextcloud restants.

Ouvrez les paramètres d'administration et consultez la section Vue d'ensemble ou Sécurité et les avertissements de configuration. Traitez l'avertissement affiché plutôt que d'appliquer des directives de renforcement de la sécurité non pertinentes dans le seul but d'obtenir une meilleure note.

  • HSTS manquant : vérifiez la réponse du point de terminaison HTTPS public, en particulier lorsqu’un proxy ou un équilibreur de charge termine le protocole TLS.
  • Le serveur semble utiliser HTTP : vérifiez que HTTPS est configuré en périphérie et, si nécessaire, défini overwriteprotocolpour la configuration du proxy de confiance.
  • Mode débogage activé : à debugdésactiver en production ; à activer uniquement pour un dépannage ciblé, puis à désactiver à nouveau.
  • Avertissement concernant le proxy ou l'adresse IP du client : vérifiez l'adresse source réelle du proxy et l'en-tête de transfert avant de modifier les paramètres du proxy de confiance.
  • Version vulnérable ou en fin de vie connue : mettez à jour Nextcloud et les packages serveur concernés via leur procédure de mise à niveau prise en charge.

Ne restreignez les actions d'administration que allowed_admin_rangessi les administrateurs disposent de plages d'adresses IP de gestion stables et connues. Une plage erronée peut masquer les fonctions d'administration aux administrateurs légitimes. Le guide de renforcement de la sécurité de Nextcloud recommande également de désactiver la compression HTTP pour atténuer les risques de violation de données (BREACH). Vérifiez la configuration de votre serveur web ou de votre proxy pour savoir si la compression est activée pour les pages authentifiées.

5. Vérifiez la réaction du public et relancez les analyses.

Vérifiez ce qu'un client externe reçoit réellement, et pas seulement ce que contient le fichier de configuration :

curl -I https://cloud.example.com

Vérifiez que la réponse inclut un en-tête HSTS avec la valeur max-age prévue et que les en-têtes de sécurité de base de Nextcloud sont présents. Les outils de développement de votre navigateur peuvent afficher ces mêmes en-têtes de réponse. Si les valeurs diffèrent de votre configuration, examinez le terminateur TLS, le proxy et les emplacements Nginx mis en cache ou imbriqués.

Un exemple de sortie de la commande curl -I listant les en-têtes de réponse HSTS, X-Content-Type-Options et X-Frame-Options.
Examinez les en-têtes renvoyés par l'URL HTTPS publique ; une ligne de configuration seule ne permet pas de confirmer ce que reçoivent les visiteurs.

Ensuite, exécutez l' analyse de sécurité officielle de Nextcloud sur le nom d'hôte public, puis vérifiez à nouveau les paramètres d'administration. Utilisez Qualys SSL Labs si vous avez besoin d'une évaluation TLS et de détails supplémentaires. L'analyse officielle nécessite un nom d'hôte Nextcloud accessible ; elle ne peut pas évaluer une instance privée depuis Internet.

La page officielle d'analyse de sécurité de Nextcloud, avec un champ nom d'hôte et un bouton Analyser, avant l'affichage des résultats.
Après vos modifications, effectuez une analyse officielle du nom d'hôte public ; son score correspond à un instantané, et non à une garantie de sécurité.

Si la note reste inférieure à A+, utilisez le rapport d'anomalie pour identifier la couche responsable. Corrigez les problèmes un par un, vérifiez que Nextcloud fonctionne toujours via son URL publique, puis effectuez une nouvelle analyse. Une note A+ indique une configuration correcte, mais les correctifs, les sauvegardes, les contrôles d'accès et la surveillance continue restent indispensables après une analyse réussie.

Documentation officielle

Laisser un commentaire

Comment obtenir la note A+ en matière de sécurité pour Nextcloud ?

Comment obtenir la note A+ en matière de sécurité pour Nextcloud ?

Corrigez les problèmes courants d'analyse de Nextcloud grâce aux mises à jour actuelles, HTTPS et HSTS, à une confiance précise du proxy inverse et à des vérifications auprès du serveur public.

Activez le chiffrement côté serveur Nextcloud avec Measured Impact

Configurez Nextcloud SSE pour le stockage qui en a besoin, protégez les clés de chiffrement et mesurez l'impact sur les transferts et le processeur avant de chiffrer les fichiers existants.

Ajouter la recherche plein texte Elasticsearch à Nextcloud

Connectez la recherche de fichiers de Nextcloud à Elasticsearch, indexez le contenu des documents et choisissez une configuration adaptée à votre serveur et à vos besoins de sécurité.

Définir une politique d'expiration fiable pour les fichiers supprimés de Nextcloud

Définir une politique d'expiration fiable pour les fichiers supprimés de Nextcloud

Configurez Nextcloud pour supprimer les fichiers supprimés après une période de rétention définie, planifiez les tâches en arrière-plan de manière fiable et évitez les commandes qui vident la corbeille de tous les utilisateurs.

Effacer l'avertissement concernant les index de base de données manquants de Nextcloud

Effacer l'avertissement concernant les index de base de données manquants de Nextcloud

Exécutez la réparation OCC de Nextcloud en toute sécurité, prévisualisez les modifications de la base de données et vérifiez pourquoi l'avertissement peut persister.

Augmenter la limite de chargement web de Nextcloud au-delà de 2 Go

Augmenter la limite de chargement web de Nextcloud au-delà de 2 Go

Autorisez les chargements de fichiers plus volumineux via le navigateur Nextcloud en alignant les paramètres PHP, Nginx ou Apache, le stockage temporaire et les délais d'expiration, et vérifiez quelle limite bloque le fichier.

Effacer l'avertissement de mémoire PHP de Nextcloud sur le serveur web

Définissez la limite de mémoire PHP réellement utilisée par Nextcloud, redémarrez le service concerné et confirmez le paramètre de 512 Mo dans la vue d'ensemble de l'administration.

Connectez un compartiment compatible S3 au stockage externe Nextcloud

Montez un compartiment de stockage d'objets compatible dans Nextcloud en utilisant son backend S3, avec le point de terminaison, les informations d'identification, le périmètre d'accès et les étapes de vérification appropriés.

Transférez vos données Nextcloud vers un disque externe sans interruption de stockage.

Transférez vos données Nextcloud vers un disque externe sans interruption de stockage.

Déplacez en toute sécurité un répertoire de données Nextcloud Linux vers un disque externe en utilisant un montage UUID persistant, le mode maintenance, une copie vérifiée et le lien symbolique du chemin d'origine.

Erreur de base de données Nextcloud après une mise à jour : que vérifier en premier ?

Rétablissez l'accès à Nextcloud après une mise à jour en diagnostiquant les erreurs SQL, en vérifiant la connectivité de la base de données et en terminant en toute sécurité les migrations interrompues.