← Retour aux tutoriels

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 →