Nextcloud — audit avec occ, chiffrement côté serveur et en-têtes
Audit de sécurité d'une instance Nextcloud via occ et setupchecks, configuration du server-side encryption, des en-têtes de sécurité et de l'application audit log.
Audit de configuration d’une instance Nextcloud et activation du chiffrement côté serveur et de la journalisation d’audit.
Contexte
Nextcloud expose via occ un ensemble de contrôles de sécurité (setupchecks) et permet d’activer un chiffrement côté serveur pour les stockages externes, ainsi qu’une application d’audit traçant les accès aux fichiers. Le durcissement passe par la correction systématique des avertissements de setupchecks et la traçabilité des opérations sensibles.
Détection
Exécution de l’ensemble des contrôles de configuration :
sudo -u www-data php occ setupchecks
sudo -u www-data php occ config:list system | jq '.system | {overwrite.cli.url, debug, "twofactor_enforced", "filelocking.enabled"}'
Audit des en-têtes de sécurité renvoyés :
curl -sI https://nextcloud.exemple.fr/ | grep -iE 'strict-transport|x-content-type|x-frame|referrer-policy|x-permitted'
État du chiffrement et du module actif :
sudo -u www-data php occ encryption:status
sudo -u www-data php occ app:list | grep -i encryption
Durcissement
Activation du chiffrement côté serveur, recommandé en priorité pour les stockages externes (le chiffrement du stockage primaire local n’apporte pas de protection au repos si la clé est sur le même serveur) :
sudo -u www-data php occ app:enable encryption
sudo -u www-data php occ encryption:enable
sudo -u www-data php occ encryption:enable-master-key
sudo -u www-data php occ encryption:encrypt-all
Activation de la journalisation d’audit et conservation des logs sur un support distinct :
sudo -u www-data php occ app:enable admin_audit
sudo -u www-data php occ config:app:set admin_audit logfile --value="/var/log/nextcloud/audit.log"
sudo -u www-data php occ config:system:set log_type --value="file"
sudo -u www-data php occ config:system:set loglevel --value="2" --type=integer
Correction des avertissements de setupchecks fréquents (URL CLI, niveau de débogage, en-têtes) :
sudo -u www-data php occ config:system:set overwrite.cli.url --value="https://nextcloud.exemple.fr"
sudo -u www-data php occ config:system:set debug --value=false --type=boolean
sudo -u www-data php occ config:system:set overwriteprotocol --value="https"
En-têtes de sécurité posés au niveau du reverse proxy, exigés par les setupchecks Nextcloud :
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
Vérification
Confirmation que setupchecks ne renvoie plus d’avertissement et que le chiffrement est actif :
sudo -u www-data php occ setupchecks
sudo -u www-data php occ encryption:status
Vérification de la journalisation d’audit après une opération de partage de fichier :
tail -n 20 /var/log/nextcloud/audit.log | jq -r '.message'
Les entrées d’audit doivent refléter les opérations effectuées (partage, suppression, connexion). Aucun avertissement de sécurité ne doit subsister dans setupchecks.
Vous avez un projet sur ces sujets ?
Nous contacter →