Configurer et Sécuriser Nextcloud.

Dans ce deuxième tutoriel consacré à Nextcloud, nous allons voir comment configurer et sécuriser Nextcloud grâce à quelques options intéressantes de ce logiciel. Vous aurez ainsi un dropbox like maison fiable et performant.Si vous ne connaissez pas Nextcloud, vous pouvez consulter ce tutoriel: Nextcloud le dropbox on promise.

Terminer l’installation de Nextcloud

Ouvrez ensuite votre navigateur et naviguez jusqu’au nom de domaine/adresse IP de votre serveur. Vous devriez voir l’assistant de configuration NextCloud apparaitre.

Terminer l'installation de Nextcloud

Créez en premier un compte administrateur local pour NextCloud. Une indication en bas du champ mot de passe vous indique la force de votre mot de passe. Il faut que cette barre soit verte pour un maximum de sécurité.

Configurer la base de données utilisateurs de Nextcloud

Puis cliquer sur Configurer la base de données et saisissez les informations ci-dessus (utilisateur, mot de passe et nom de la base de données), puis terminez l’installation….

Attention !!! Si vous vous souvenez, lors du premier tutoriel nous avions déjà créer une base de données (elle sert pour le fonctionnement de Nextcloud). Celle-ci c’est votre base de données perso ou seront stockée vos données et elle est totalement différente.

Ecran d'accueil de Nextcloud

Vous accéderez ensuite à l’interface d’accueil de Nextcloud.

Téléchargement des applications mobiles pour Nextcloud

Lors d’une nouvelle installation de Nextcloud, si vous allez dans Paramètres -> Administration -> Vue d’ensemble vous verrez toute une série d’avertissement de sécurité apparaitre.

Avertissements de sécurité et de configuration pour Nextcloud

Pour ma part j’ai 9 avertissements plus ou moins graves. Voyons comment nous pouvons les traiter.

Activation du fichier .htaccess

Le premier problème concerne le fichier .htaccess. Pour que le fichier .htaccess soit pris en compte il faut faire une modification du fichier apache2.conf.

Je vous conseille avant de faire une sauvegarde du fichier (ce conseille vaut pour toutes les modifications de fichier dans ce tutoriel).

# cp apache2.conf apache2.bak

Faire une sauvegarde du fichier apache2.conf

Ouvrez le fichier /etc/apache2/apache2.conf et modifier la section /var/www/ du fichier de configuration en remplaçant l’existant par ceci :

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

Activation du fichier .htaccess dans Apache

Attention !!! Pour que la modification soit prise en compte n’oubliez pas de redémarrer le service Apache avec la commande service apache2.

Activation du caching

En installant un système de cache vous allez rendre votre application plus rapide. Pour cela il faut installer un logiciel supplémentaire redis-server ainsi que quelques dépendances PHP.

# apt-get install php-apcu redis-server php-redis -y

Activer le cache redis-server pour votre instance Nextcloud

A la fin de l’installation, éditer le fichier redis.conf qui se trouve dans /etc/redis/

# vim /etc/redis/redis.conf

Puis repérer la directive port et remplacer port 6379 par port 0. En changeant le port, Redis ne sera pas à l’écoute sur un port TCP.

Activer le cache redis-server pour votre instance Nextcloud

Puis, décommenter les paramètres suivants :

unixsocket /var/run/redis/redis.sock
unixsocketperm 700

Enfin, il faut remplacer les permissions de unixsocketperm par 770.

Activer le cache redis-server pour votre instance Nextcloud

Sauvegardez le fichier puis quittez.

Maintenant vous devez rajouter l’utilisateur redis au groupe d’Apache avec la commande :

# usermod -a -G redis www-data

Rajouter l’utilisateur redis au groupe d’Apache

Redémarrez le service Apache de votre serveur, puis démarrer le service Redis.

# service apache2 restart
# service redis-server start

Que faire si le service Redis ne démarre pas

Voici 3 solutions pour faire démarrer un service Redis récalcitrant. Voici une erreur classique lors du démarrage du service Redis, après une installation d’une instance Nextcloud.

Que faire si le service Redis votre instance Nextcloud ne démarre pas.

1 ère solution.

Si vous avez le message ci-dessus ou un autre je vous conseille de repasser les commandes suivantes, pour s’assurer que tous les droits sont bien positionnés.

# adduser --system --group --no-create-home redis
# sudo chown redis:redis /var/lib/redis
# sudo chmod 770 /var/lib/redis

2ème solution.

Tout d’abord je vous conseille de consulter le fichier de log de Redis à cet emplacement : /var/log/redis/redis-server.log. C’est lui qui vous indiquera les problèmes rencontrés par le service Redis.

Lire le fichier de log de redis-server peut servir pour comprendre une erreur

Ici on peut voir que nous avons 2 problèmes :

  • Le paramétrage dans un fichier de config permet d’ouvrir plus de fichiers que notre système supporte.
  • Nous avons un problème de droit sur un répertoire car le fichier de socket ne peut pas se créer

Pour résoudre le premier problème vous devez éditer le fichier /lib/systemd/system/redis-server.service et rajouter ceci dans la section Service :

LimitNOFILE=64000

Pour améliorer les performances de Nextcloud, modifier la valeur LimitNOFILE

Puis effectuer un redémarrage des services

# systemctl daemon-reload
# service redis-server restart

Enfin pour résoudre le deuxième problème, il suffit d’affecter les bons droits en utilisant ces commandes :

# chown redis:redis /var/run/redis/
# chmod g+w /var/run/redis/

Affecter les bons droits aux fichiers de Redis-server

Et normalement le service redis-server démarrera sans souci.

redémarrer le service Redis-Server

La dernière étape pour activer le caching sur nextcloud, il faut modifier le fichier de configuration /var/www/html/nextcloud/config/config.php et ajouter à la fin du fichier ceci :

'memcache.local' => '\OC\Memcache\APCu',
'skeletondirectory' => '',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'filelocking.enabled' => 'true',
'redis' =>
array (
'host' => '/var/run/redis/redis.sock',
'port' => 0,
'timeout' => 0.0,
),
Attention !!! Assurez-vous que le paramètre skeletondirectory soit bien présent dans votre fichier config.php. Ce fichier vous permettra de définir un chemin vers les dossiers et fichiers qui seront copiés dans les répertoires de tous les nouveaux utilisateurs. Son absence peut créer des problèmes de login.

Activer le caching sur Nextcloud

Maintenant vous devez redémarrer votre serveur pour prendre en compte les modifications. Assurez-vous que le serveur Redis démarre avec votre système grâce à la commande :

# systemctl enable redis-server

Configuration de PHP OPCache

Opcache est une extensions PHP qu’il faut impérativement installer et activer sur une instance NextCloud. Elle se place entre le serveur Web et le processeur, et optimise le workflow. Ainsi l’extension Opcache met en cache le binaire généré afin de le fournir dès le second appel sans avoir à reparcourir le code source ou générer à nouveau un binaire en C, enlevant ainsi tout le temps de compilation du workflow. C’est presque magique !

Editer le fichier php.ini et rajouter les lignes ci-dessous à la fin du fichier :

; Nextcloud Opcache settings
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
# vim /etc/php/7.0/apache2/php.ini

Configuration de l'extension PHP OPCache pour accélérer Nextcloud

Astuce !!! Pour aller à la fin d’un fichier avec Vim, taper MAJUSCULE + G

Puis ensuite redémarrer le service Apache pour prendre en compte les modifications.

# service apache2 restart

Utiliser les commandes d’administration OCC

Héritage de Owncloud, vous pouvez utiliser des commandes pour gérer votre instance Nextcloud.

Les commandes OCC se trouvent dans le répertoire d’installation de Nextcloud, /var/www/nextcloud sur Ubuntu. Les commandes OCC sont des scripts PHP.

Pour exécuter ces commandes, il faut utiliser l’utilisateur www-data, qui permet d’exécuter des scripts PHP. Voici la commande à faire pour s’assurer que tout fonctionne correctement

# sudo -u www-data php /var/www/html/nextcloud/occ -V

Utiliser les commandes d’administration OCC pour gérer votre instance Nextcloud en ligne de commande

Si la version de Nextcloud apparait, vous pouvez utiliser les commandes OCC.

Info!!! Vous trouverez une documentation complète sur l’utilisation et les commandes OCC en cliquant sur ce lien : Commandes OCC pour Nextcloud

Lors de mon installation certaines colonnes de la base de données (filecache.mtime et filecache.storage_mtime) n’ont pas été converties en big int. Nous allons devoir utiliser cette commande pour effectuer cette conversion :

# sudo -u www-data php /var/www/html/nextcloud/occ db:convert-filecache-bigint

Convertir des colonnes de la base de données Nextcloud en big int

Autoriser la découverte de services

Certains clients, en particulier sur iOS / macOS, ont des difficultés à trouver l’URL de synchronisation appropriée, même s’ils sont explicitement configurés pour l’utiliser.

Si vous souhaitez utiliser des clients CalDAV (synchronisation d’agenda) ou CardDAV (synchronisation de carnet d’adresses) ou d’autres clients nécessitant la découverte de services avec Nextcloud. Il est important de disposer d’une configuration de travail correcte avec les URL suivantes:

https://example.com/.well-known/carddav
https://example.com/.well-known/caldav
https://example.com/.well-known/webfinger

Si votre instance Nextcloud est installée dans un sous-dossier appelé nextcloud (par exemple) et que vous exécutez Apache, créez ou modifiez le fichier .htaccess présent à la racine du répertoire d’installation de votre serveur web Apache ( /var/www/html) et ajoutez les lignes suivantes :

Redirect 301 /.well-known/carddav "/nextcloud/remote.php/dav"
Redirect 301 /.well-known/caldav "/nextcloud/remote.php/dav"
Redirect 301 /.well-known/webfinger "/nextcloud/public.php?service=webfinger"
Attention !!! Assurez-vous de changer le sous-dossier /nextcloud par celui de votre instance Nextcloud est en cours d’exécution.

Maintenant il ne devrait que vous restez l’alarme concernant la mise en place du HTTPS, celui-ci fera l’objet d’un autre tutoriel.

Autoriser la découverte de services pour le cardDav et le calDav

Vérifier la sécurité de votre Nextcloud

Avant de clôturer ce tutoriel, il est maintenant nécessaire de faire un audit de sécurité de votre installation Nextcloud.

Si vous allez dans Paramètres -> Administration -> Vue d’ensemble, cliquer sur Notre Scan de sécurité. Vous allez être redirigé vers le site web Nextcloud Security Scan.

Vérifier la sécurité de votre Nextcloud

Copier votre URL et cliquer sur Scan.

Vérifier la sécurité de votre Nextcloud

Vous verrez un listing vous énumérer les différents problèmes (s’il y en a). Si vous avez suivi ce tutoriel votre note devrait être au moins à A.

Mettre à jour Nextcloud

Les développeurs de NextCloud sont assez réactifs et publient régulièrement des mises à jour afin de corriger des bugs, d’ajouter des fonctionnalités ou bien encore corriger des problèmes de sécurité.

Nextcloud peut se mettre à jour de deux manières :

  • Via la ligne de commande
  • Via son interface graphique (c’est cette dernière que nous allons voir dans ce tutoriel)

Connectez-vous en tant qu’admin sur votre Nextcloud et allez dans Administration -> Vu d’ensemble -> Version -> Ouvrir le système de mise à jour.

Mettre à jour Nextcloud.

Mettre à jour Nextcloud.

Toutes les étapes de mise à jour de votre instance Nextcloud sont indiquées. Il ne reste plus qu’à cliquer sur Start et à laisser dérouler la mise à jour.

Attention!!! La partie Create Backup peut-être plus ou moins longue en fonction de la taille de votre base de données ?

Lors de la mise à jour de Nextcloud le mode maintenance est activé

Lorsque la mise à jour des fichiers se produit. Le mode maintenance est activé, interdisant de nouvelle connexion.

activation du mode maintenance de Nextcloud

Une fois la mise à jour terminée, on vous demande de désactiver le mode maintenance (en cliquant su No) ou alors de continuer à afficher le mode maintenance (en cliquant sur Yes). Vous pourrez alors réactiver l’accès en ligne de commande grâce aux commandes occ de Nextcloud.

Résoudre les erreurs Nextcloud

Dans ce paragraphe je vais indiquer les erreurs que je rencontre fréquemment sur des installations Nextcloud.

La dernière tâche de fond a fonctionné il y a xx jours

erreur Nextcloud La dernière tâche de fond a fonctionné il y a xx jours

Si vous avez toujours cette erreur, sur votre serveur, voici une solution :

  • créez un fichier CRONTAB pour l’utilisateur www-data depuis le terminal avec la commande
crontab -u www-data -e
  • ajouter une tâche qui va se lancer toutes les 5 minutes (attention à adapter le chemin pour localiser le fichier cron.php en fonction de votre installation)
*/5 * * * * php -f /home/www/html/nextcloud/cron.php
  • redémarrez le service cron pour appliquer les changements
service cron restart
  • visualiser les tâches CRON pour l’utilisateur www-data
crontab -u www-data -l

Si votre serveur Nextcloud est beaucoup sollicité, il est important de mettre en place un cron qui va permettre de lancer les tâches de maintenance à intervalles réguliers. Dans Paramètres > Administration > Paramètres de base, sélectionnez l’option Cron pour les tâches de fond.

Utiliser les tâches CRON pour lancer les tâches de maintenance sur votre Nextcloud

signature manuelle Guillaume

6 Potins

  1. Bonjour,

    Je recherche une information avant d’installer Nextcloud.
    Est-il possible de générer un email à destination de tous les membres utilisant un cercle Nextcloud lorsque j’ajoute un fichier?

    D’avance merci

    Rémi

  2. Bonjour,

    Ravi d’avoir pu vous aider.

    Cordialement

  3. Bonjour,

    J’ai eu un soucis lors de l’optimisation de nextcloud avec redis, une erreur interne du serveur s’affichait mais en regardant avec attention votre tuto je me suis rendu compte que l’hôte mis dans le config.php de nextcloud n’existait pas sur mon raspberry donc en changeant ‘host’ => ‘/var/run/redis/redis.sock’ par ‘host’ => ‘/var/run/redis/redis-server.sock’ , un fichier déjà présent.
    Tout fonctionne maintenant à merveille

    Merci

  4. Bonjour,

    Essayer de redémarrer votre serveur !

    @+

  5. Bonjour,

    Après avoir lancé la mise à jour de Nextcloud (hébergé chez OVH) avec le bouton »Ouvrir le système de mise à jour » , j’obtiens ce message : « Step 3 is currently in process. Please reload this page later. ».
    Si je recharge la page comme demandé il ne se passe rien de plus.

    Comment se sortir de cette impasse ?

    Cordialement

    Philippe

  6. Un grand merci pour ces explications qui m’ont permis d’effacer toutes ces vilaines erreurs.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *