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.
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é.
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….
Vous accéderez ensuite à l’interface d’accueil de 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.
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
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 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
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.
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.
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
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.
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.
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
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/
Et normalement le service redis-server démarrera sans souci.
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, ),
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
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
Si la version de Nextcloud apparait, vous pouvez utiliser les commandes OCC.
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
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"
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.
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.
Copier votre URL et cliquer sur Scan.
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.
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.
Lorsque la mise à jour des fichiers se produit. Le mode maintenance est activé, interdisant de nouvelle connexion.
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
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.
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
Bonjour,
Ravi d’avoir pu vous aider.
Cordialement
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
Bonjour,
Essayer de redémarrer votre serveur !
@+
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
Un grand merci pour ces explications qui m’ont permis d’effacer toutes ces vilaines erreurs.