Personne n'aime manquer d'espace de stockage gratuit dans le cloud. Voir cette notification de Google Photos ou d'iCloud vous avertir que vous n'avez plus d'espace peut gâcher votre voyage exotique d'observation des paresseux en Amérique du Sud. Cependant, pour nous, les bricoleurs et les amateurs, il existe une solution si vous êtes prêt à vous salir les mains.
Présentation de Nextcloud
Nextcloud est une plateforme de stockage cloud gratuite et open source qui met à votre disposition la puissance et la flexibilité du cloud. Elle prend en charge plusieurs distributions Linux populaires, telles que Red Hat Enterprise Linux 9 et Ubuntu 24.04 LTS. Dans cet article, nous utiliserons Ubuntu Server 24.04.1 et Nextcloud Hub 9 (30.0.0) pour créer un serveur de stockage cloud hautes performances et entièrement personnalisable. Certaines des étapes présentées ici peuvent nécessiter des connaissances de base en administration de serveur Linux et en interface de ligne de commande, alors réfléchissez bien et préparez-vous à devenir technique !
Configuration du serveur
Pour commencer à configurer un serveur Nextcloud, vous aurez besoin d'une nouvelle installation d'Ubuntu Server sur un système de votre choix. Une machine virtuelle sur votre ordinateur principal ou tout autre matériel de rechange dont vous disposez fera probablement l'affaire ! Nous recommandons un ordinateur avec au moins 2 à 4 cœurs de processeur, 8 gigaoctets de RAM et 500 Go de stockage. Lorsque votre système est prêt, obtenez Ubuntu Server en visitant ce lien : https://ubuntu.com/download/server .
Si vous n'avez jamais installé Ubuntu Server auparavant, consultez leur guide avant de commencer : https://ubuntu.com/tutorials/install-ubuntu-server Veillez à ne pas sélectionner l'option de pré-installation de Nextcloud sur la page des logiciels recommandés, car nous nous en occuperons nous-mêmes.
Une fois que vous avez placé votre serveur sur le réseau, lui avez attribué un nom d'hôte et vous êtes connecté avec le nom d'utilisateur et le mot de passe que vous avez créés lors de la configuration initiale, obtenez les dernières mises à jour logicielles pour Ubuntu Server en tapant « sudo apt update && sudo apt upgrade -y » dans la console et appuyez sur Entrée. Redémarrez le serveur une fois les mises à jour terminées en utilisant « redémarrage sudo ».
Remarque : vous devrez peut-être saisir à nouveau votre mot de passe pour exécuter les commandes sudo.
Installation du logiciel
Ensuite, nous devons récupérer certains des logiciels prérequis dont dépend notre instance Nextcloud. Tapez (ou de préférence copiez et collez) les commandes suivantes dans votre interface de ligne de commande pour télécharger et installer le serveur Web Apache et quelques packages dont vous aurez besoin plus tard pour des configurations Nextcloud plus avancées :
sudo apt install apache2 mariadb-server php libapache2-mod-php redis-server libmagickcore-6.q16-7-extra
php-apcu php-bcmath php-bz2 php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-ldap php-mbstring php-memcached php-mysql php-redis php-smbclient php-zip php-xml
Si l'invite vous demande de saisir O ou N pour continuer ou arrêter l'installation, saisissez O et appuyez sur Entrée. Enfin, saisissez « wget https://download.nextcloud.com/server/releases/latest.zip" pour obtenir la dernière version de Nextcloud et utiliser « sudo apt install unzip » pour installer l'outil de décompression, nous devrons extraire ces fichiers.
Maintenant que nous disposons de tous les logiciels nécessaires pour configurer notre instance Nextcloud, examinons le serveur Web que nous avons installé.
Configuration du serveur Web Apache – Partie 1
Avant de commencer à jouer avec Apache, nous devons d'abord nous assurer que nous pouvons nous connecter correctement au serveur. Pour autoriser les connexions du navigateur Web (HTTP et HTTPS) à l'instance Nextcloud, utilisez les commandes suivantes :
sudo ufw autorise dans « Apache Full »
sudo ufw activer
Vous devriez maintenant avoir un serveur Web opérationnel et accessible sur votre serveur Ubuntu ! Sur un autre ordinateur connecté au même réseau que votre machine Nextcloud, saisissez l'adresse IP de votre serveur dans une fenêtre de navigateur et appuyez sur Entrée. Si vous ne vous souvenez pas de l'adresse IP du serveur, utilisez la commande « nom d'hôte -I » sur votre serveur pour l'afficher. Si votre installation a réussi, vous devriez voir la page par défaut d'Apache2 affichée dans toute sa splendeur !
Bien que certains puissent dire que cette page de serveur Web par défaut est plutôt sympa, nous la remplacerons par quelque chose d'encore mieux dans la deuxième partie. Faisons un petit détour et configurons MariaDB maintenant !
Configuration de MariaDB
Notre serveur Nextcloud aura besoin d'une base de données toujours en ligne pour stocker la configuration du serveur et les informations de profil utilisateur. Pour configurer MariaDB pour qu'elle s'exécute après le redémarrage du système, saisissez « sudo systemctl enable mariadb » et appuyez sur Entrée. Nous sommes maintenant prêts à préparer la base de données pour notre installation Nextcloud !
Heureusement, MariaDB est livré avec un utilitaire de configuration sécurisé, nous n'avons donc pas à faire beaucoup de travail. « sudo mysql_secure_installation » pour le démarrer, et répondre aux questions posées par l'assistant.
- Entrez le mot de passe actuel pour root (entrez pour none): Cliquez sur Entrer
- Passer à l'authentification unix_socket [Y/n] n
- Changer le mot de passe root ? n
- Supprimer les utilisateurs anonymes? [O / n] y
- Interdire la connexion root à distance? [O / n] y
- Supprimer la base de données de test et y accéder? [O / n] y
MariaDB est désormais sécurisée et nous pouvons commencer à créer une base de données pour servir notre instance Nextcloud.
Type « sudo mysql -u root » et entrez ces commandes lorsque l'interface de ligne de commande MySQL apparaît (et assurez-vous d'utiliser « ; » à la fin de chaque ligne !) :
CRÉER L'UTILISATEUR 'nextcloud'@'localhost' IDENTIFIÉ PAR 'P@$$w0rd';
Remarque : remplacez « nextcloud » et « P@$$w0rd » par un nom d’utilisateur et un mot de passe de votre choix.
CRÉER UNE BASE DE DONNÉES SI ELLE N'EXISTE PAS nextcloud JEU DE CARACTÈRES utf8mb4 COLLATE utf8mb4_general_ci ;
ACCORDER TOUS LES PRIVILÈGES SUR nextcloud.* À 'nextcloud'@'localhost';
Remarque : remplacez à nouveau le « nextcloud » avant le symbole @ par le nom d’utilisateur que vous avez utilisé précédemment.
FLUSH PRIVILEGES;
quitter;
Nous nous rapprochons ! Nous disposons désormais d'un serveur Web et d'une base de données fonctionnels (mais pas terminés).
Activation des extensions PHP et amélioration des performances PHP
Vous vous souvenez de toutes ces extensions PHP que nous avons installées ? Nous devons les activer pour garantir que Nextcloud puisse les utiliser correctement. Utilisez cette commande pour activer les extensions PHP requises :
sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml
Maintenant que les extensions correctes ont été activées, nous devons ajuster certains paramètres PHP pour mieux répondre à nos besoins. Le fichier de configuration PHP que nous allons éditer se trouve à l'adresse « /etc/php/8.3/apache2/php.ini » et peut être modifié en plaçant « sudo nano » devant le chemin et appuyez sur Entrée. Si vous avez installé une version différente de PHP, modifiez le "8.3" au numéro de version majeur de votre version installée, qui peut être obtenu en entrant « php -v » dans la console.
Une fois que vous avez ouvert le « php.ini » à l'aide de nano, l'éditeur de texte intégré d'Ubuntu, maintenez la touche Ctrl enfoncée et appuyez sur la touche « W » de votre clavier. Lorsque la barre de recherche apparaît, saisissez « durée_d'exécution_max », et appuyez sur Entrée. Nano passera alors à la première correspondance trouvée avec la valeur que vous avez saisie. À l'aide des touches fléchées pour naviguer et de la touche de retour arrière pour supprimer des caractères, remplacez « 30 » par « 360 ». Répétez cette astuce pour modifier les valeurs des paramètres PHP suivants :
memory_limit = 512M
- Peut être éventuellement augmenté pour donner plus de mémoire à PHP si nécessaire (1024M, 2048M, etc.)
taille_max_post = 100G
upload_max_filesize = 100 Go
- Cette valeur et la valeur précédente représentent la taille maximale du fichier que vous pouvez télécharger sur votre serveur Nextcloud. Modifiez-les en fonction de la taille maximale du fichier souhaitée. (1 Go = 1 gigaoctet, 10 Go = 10 gigaoctets, 100 Go = 100 gigaoctets, etc.) Veillez à ne mettre que des tailles en K (kilo-octets), M (mégaoctets) et G (gigaoctets).
date.timezone = Amérique/New_York
- Supprimez « ; » avant la ligne et utilisez ce guide pour vous aider à déterminer votre fuseau horaire correct : https://www.php.net/manual/en/timezones.php
opcache.enable=1
- Supprimer « ; » avant la ligne.
opcache.memory_consumption = 128
- Supprimez le « ; » avant la ligne. Cette valeur, en mégaoctets, peut être personnalisée en fonction de la quantité de mémoire dont vous disposez sur votre serveur Nextcloud (128 = 128 mégaoctets, 1024 1024 = 1 2048 mégaoctets/2048 gigaoctet, 2 XNUMX = XNUMX XNUMX mégaoctets/XNUMX gigaoctets).
opcache.interned_stringers_buffer=16
- Supprimez « ; » avant la ligne. Représente la quantité de mémoire allouée aux chaînes internes en mégaoctets, la valeur recommandée est 16.
opcache.max_accelerated_files = 10000
- Supprimez « ; » avant la ligne. Cette valeur peut être ajustée à n'importe quel nombre entre 200 et 1000000 XNUMX XNUMX pour s'adapter aux capacités de mise en cache et de mémoire de votre système.
opcache.revalidate_freq=1
- Supprimez « ; » avant la ligne et remplacez-la par 1.
opcache.save_comments=1
- Supprimez « ; » avant la ligne et vérifiez que la valeur est définie sur 1.
Une fois que vous avez effectué toutes les modifications nécessaires dans le fichier php.ini, enregistrez le fichier en maintenant la touche Ctrl enfoncée et en appuyant sur la touche « O ». Appuyez sur Entrée pour confirmer, puis maintenez à nouveau la touche Ctrl enfoncée et appuyez sur la touche « X » pour quitter nano.
Ensuite, activez les modules Apache supplémentaires requis en entrant « sudo a2enmod dir env headers mime réécriture ssl » dans la console. Vous n'avez pas besoin de redémarrer Apache à l'aide de la commande suggérée par le message de la console à ce stade.
Configuration du serveur Web Apache – Partie 2
Bien que nous ayons téléchargé Nextcloud et configuré de nombreux prérequis logiciels, nous devons encore remplacer la page Web Apache par défaut par Nextcloud. « cd ~ » dans la console et appuyez sur Entrée, ce qui nous ramène au répertoire personnel de notre utilisateur. C'est là que le fichier ZIP Nextcloud a été téléchargé. Maintenant, tapez « décompresser le dernier fichier.zip » Appuyez sur Entrée et regardez l’utilitaire de décompression rugir !
Le « dernier.zip » Le fichier ZIP est maintenant extrait dans un dossier appelé « Nextcloud » dans le même répertoire à partir duquel il a été téléchargé. Ce nouveau dossier contient tous les éléments nécessaires au site Nextcloud. Nous allons maintenant commencer à déplacer ce dossier vers son emplacement approprié, « /var/www/html ».
Avant que le dossier puisse être transporté, nous devons nous assurer que le système intégré « www-données » l'utilisateur est le propriétaire du nouveau répertoire. Ceci est extrêmement important car « www-données » l'utilisateur gère toutes les opérations du serveur Web effectuées par le serveur Web Apache et Nextcloud lui-même. « sudo chown -R www-data:www-data ./nextcloud » dans la console et appuyez sur Entrée.
Maintenant que la « www-données » l'utilisateur est propriétaire du dossier, nous pouvons le déplacer sans délai. Utiliser « sudo mv ./nextcloud /var/www/html » pour déplacer le dossier dans le bon répertoire.
Nous pouvons maintenant désactiver la page par défaut du serveur Web Apache en entrant « sudo a2dissite 000-default.conf » dans la console. Ignorez l'avertissement pour recharger à nouveau le serveur Apache et créez un fichier d'hôte virtuel pour le nouveau site en tapant « sudo nano /etc/apache2/sites-available/nextcloud.conf » et appuyez sur Entrée. Le contenu du fichier hôte virtuel doit être saisi exactement comme suit :
DocumentRoot /var/www/html/nextcloud/ NomServeur nextcloud-demo.moose.local Exiger toutes les autorisations AllowOverride Toutes les options FollowSymLinks MultiViews Dav part
remplacer « nextcloud-demo.moose.local » avec le nom de domaine complet (FQDN) du serveur sur lequel vous avez installé Nextcloud. La première partie du FQDN est le nom d'hôte du serveur que vous avez créé précédemment, qui peut être affiché à l'aide de « nom d'hôte » dans la console. Les deuxième et troisième parties du nom sont respectivement le domaine et le domaine de premier niveau. Par exemple, si votre domaine était « storagereview.com » et le nom d'hôte de votre serveur était « Nextcloud », alors le FQDN de votre serveur serait « nextcloud.storagereview.com ».
Si vous ne possédez pas de domaine, vous pouvez en acheter un auprès d'un registraire tel que Cloudflare en utilisant https://www.cloudflare.com/products/registrar/ ou utilisez un nom d'hôte gratuit et accessible au public à partir de sites Web tels que https://www.noip.com/ Si vous ne souhaitez pas acheter de domaine ou utiliser un nom d'hôte gratuit, vous pouvez placer un FQDN fictif dans ce champ, à condition que vous ne puissiez utiliser que l'adresse IP du serveur (publique et privée) pour vous connecter à l'instance Nextcloud.
Remarque : pour utiliser le nom de domaine complet du serveur afin d'accéder localement à votre instance Nextcloud, vous devez disposer d'un serveur DNS correctement configuré et exécuté sur votre réseau domestique. Sinon, vous devez utiliser l'adresse IP locale du serveur lorsque vous y accédez depuis votre réseau domestique.
Lorsque vous avez terminé d'écrire le fichier d'hôte virtuel et remplacé l'exemple de FQDN par le FQDN de votre serveur (légitime ou non), vous pouvez enfin activer le site Nextcloud en utilisant « sudo a2ensite nextcloud.conf » et « sudo systemctl restart apache2 » pour redémarrer le serveur Web avec le nouveau site. Accédez à votre instance Nextcloud à l'aide d'un navigateur Web sur un autre ordinateur résidant sur le même réseau via le nom de domaine complet du serveur ou son adresse IP locale.
Configuration initiale de Nextcloud
Si vous avez suivi correctement les étapes précédentes, une page s'affichera vous demandant de créer un utilisateur administrateur pour le site et de renseigner quelques informations sur votre serveur Nextcloud. Donnez à l'utilisateur administrateur le nom souhaité, tel qu'Administrateur ou Superadministrateur, ainsi qu'un mot de passe fort.
Dans la section « Stockage et base de données » de la page de configuration, saisissez "/var/www/html/nextcloud/data" dans le champ « Dossier de données », ainsi que le nom d’utilisateur du compte, le mot de passe et le nom de la base de données que vous avez utilisés lors de la création de la base de données MariaDB. Pour le champ « Hôte de la base de données », saisissez "hôte local" et cliquez sur le bouton Installer lorsque vous avez terminé.
Le site se chargera pendant un court instant, puis vous proposera la possibilité d'installer plusieurs applications recommandées pour votre serveur Nextcloud. Sachez que l'ajout d'applications supplémentaires à votre instance Nextcloud augmentera la charge de traitement du serveur, l'utilisation de la mémoire et l'utilisation totale du disque. Choisissez d'installer les applications recommandées ou ignorez éventuellement cette étape.
Une fois l'installation des applications terminée ou la page suivante affichée, vous pouvez parcourir le menu d'introduction si vous le souhaitez.
Il semble que le serveur Nextcloud soit terminé, mais il nous reste une étape à franchir pour faire fonctionner le serveur : configurer une tâche cron pour exécuter des tâches planifiées régulièrement sur le serveur.
Créer une tâche Cron
Une tâche cron est une commande exécutée régulièrement sans intervention de l'utilisateur. Notre serveur Nextcloud a besoin d'une tâche cron pour appeler le serveur « cron.php » script toutes les 5 minutes pour des performances et des fonctionnalités optimales.
Pour configurer cette tâche cron, entrez la commande "Sudo crontab -u www-data -e" dans la console du serveur.
When the « www-données » le crontab de l'utilisateur est ouvert, ajoutez la ligne suivante au bas du fichier :
*/5 * * * * php -f /var/www/nextcloud/cron.php
Une fois terminé, maintenez la touche Ctrl enfoncée et appuyez sur la touche « O » pour enregistrer le fichier, puis maintenez la touche Ctrl enfoncée et appuyez sur la touche « X » pour quitter. Félicitations ! Vous disposez désormais d’un serveur Nextcloud fonctionnel disponible sur votre réseau local ! Vous pouvez commencer à télécharger et à charger des fichiers vers et depuis votre serveur Nextcloud sur votre réseau domestique dès maintenant, mais pour le faire briller, nous devons améliorer sa sécurité, ajouter quelques applications préférées de Homelab, configurer un système de mise en cache de mémoire ultra rapide et le rendre accessible depuis l’Internet public.
Améliorer la sécurité de votre serveur Nextcloud
L'une des meilleures façons d'améliorer la sécurité de votre serveur Web est de passer au protocole HTTPS plutôt qu'au protocole HTTP non chiffré et non sécurisé. Lorsque cette option est activée, les requêtes sont traitées via TLS 1.3, la norme de chiffrement la plus récente et la plus sécurisée pour les connexions Web. Il s'agit d'une étape nécessaire chaque fois que vous envisagez d'exposer un site Web à l'Internet public et constitue une excellente première étape pour protéger les informations sensibles.
Une fois que vous avez décidé de crypter votre trafic Nextcloud, vous avez le choix entre deux options pour configurer HTTPS : utiliser un certificat auto-signé ou utiliser un certificat provenant d'une autorité de certification valide. Si vous ne possédez pas actuellement de domaine ou n'avez pas l'intention d'en configurer un pour une instance Nextcloud temporaire, nous vous recommandons d'utiliser un certificat auto-signé ou un certificat provenant d'un fournisseur de nom d'hôte. Si vous envisagez de mettre en place une configuration Nextcloud plus permanente, nous vous recommandons vivement d'obtenir un certificat de confiance publique auprès d'une autorité de certification comme Let's Encrypt.
HTTPS avec un certificat auto-signé
Pour activer et créer un certificat auto-signé, vous devez exécuter quelques commandes simples :
Sudo A2enmod SSL
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt
Maintenant que nous avons activé le module Apache SSL (également connu sous le nom de TLS) et créé le certificat auto-signé, nous devons demander au site d'activer TLS et d'utiliser le certificat. Tapez « sudo nano /etc/apache2/sites-available/nextcloud.conf » et appuyez sur Entrée pour commencer à modifier à nouveau le fichier hôte virtuel.
Ajoutez les lignes suivantes au bas de votre fichier d’hôte virtuel exactement comme suit, mais remplacez le champ « ServerName » par le nom de domaine complet de votre serveur :
DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud-demo.moose.local SSLEngine sur SSLCertificateFile /etc/ssl/certs/nextcloud-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/nextcloud-selfsigned.key Exiger toutes les autorisations AllowOverride Toutes les options FollowSymLinks MultiViews Dav est parti
Maintenez la touche Ctrl enfoncée et appuyez sur la touche « O » pour enregistrer le fichier, puis maintenez la touche Ctrl enfoncée et appuyez sur la touche « X » pour quitter nano. Pour appliquer ces modifications au serveur Web Apache, utilisez la commande « sudo systemctl restart apache2 » commande. Vous devriez maintenant avoir activé HTTPS à l'aide d'un certificat auto-signé !
La prochaine fois que vous visiterez votre site en saisissant le nom de domaine complet ou l'adresse IP du serveur, vous devriez voir un avertissement vous informant que l'autorité de certification du site n'est pas valide. Continuez après cette erreur (la méthode varie en fonction de votre navigateur Web) et consultez le site. Le navigateur Web s'est automatiquement connecté via HTTPS et enverra les données à l'aide du cryptage TLS.
HTTPS avec un certificat de confiance
Pour utiliser un certificat de confiance pour Nextcloud, vous devez d'abord posséder un domaine ou disposer d'un certificat signé par un fournisseur de nom d'hôte. Si vous utilisiez auparavant un certificat auto-signé et suiviez les étapes de la section précédente pour activer HTTPS, supprimez la partie de texte ajoutée au bas du fichier et exécutez les commandes « sudo a2dismod ssl » et « sudo systemctl restart apache2 »N'oubliez pas d'utiliser Ctrl + « O » et Ctrl + « X » pour enregistrer et quitter nano lorsque vous avez terminé.
Configuration HTTPS pour les propriétaires de domaine (via Certbot)
Maintenant que le fichier d'hôte virtuel est revenu à une configuration HTTP standard, nous pouvons commencer les préparatifs pour utiliser un certificat approuvé par une autorité de certification. Si vous possédez un domaine, suivez ces étapes pour acquérir et implémenter un certificat. Sinon, passez à la section suivante, qui détaillera l'utilisation d'un certificat acquis auprès d'un fournisseur de nom d'hôte. Pour acquérir un certificat utilisé avec votre propre domaine, nous utiliserons Certbot de Let's Encrypt, une organisation à but non lucratif qui fournit des certificats gratuits à utiliser sur des serveurs Web.
Pour télécharger Certbot, installez et mettez d'abord à jour Snap en utilisant « sudo snap install core && sudo snap refresh core ». Ensuite, tapez « sudo snap install –certbot classique » (deux tirets d’affilée avant « classique ») pour installer le paquet.
Exécuter la commande « sudo certbot –apache » (encore une fois, deux tirets avant « apache ») pour lancer certbot et suivez toutes les instructions pour créer et télécharger votre certificat Web.
Le processus de création de certificat nécessitera des informations telles qu'une adresse e-mail utilisée pour contacter le propriétaire du domaine et vous demandera d'accepter les conditions générales requises par Let's Encrypt. Saisissez ou sélectionnez le nom de domaine pour lequel vous achetez un certificat lorsque vous y êtes invité et terminez le processus interactif. Si vous rencontrez des erreurs lors de l'utilisation de Certbot, vous devrez peut-être activer la redirection de port sur votre routeur pour les ports 80 et 443 vers l'adresse IP privée de votre serveur Nextcloud ou configurer les enregistrements DNS de votre domaine pour qu'ils pointent vers l'adresse IP publique de votre routeur. Le processus de redirection de port et de configuration d'enregistrement DNS dépend fortement de votre routeur, de votre registraire de domaine et de votre fournisseur d'accès Internet et n'est donc pas couvert par ce guide.
Une fois Certbot terminé, rouvrez le fichier hôte virtuel en tapant « sudo nano /etc/apache2/sites-available/nextcloud.conf » et appuyez sur Entrée. Ajoutez les lignes suivantes juste au-dessus du en-tête pour permettre la réécriture des URL HTTP en HTTPS et remplacer « nextcloud-demo.moose.local » avec le nom de domaine complet de votre serveur :
RewriteEngine sur RewriteCond %{SERVER_NAME} = nextcloud-demo.moose.local RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Le fichier hôte virtuel complété devrait ressembler à ceci une fois terminé :
Vous devriez maintenant être configuré avec un certificat de confiance provenant d’une autorité de certification valide et un cryptage HTTPS prêt pour le Web !
Configuration HTTPS à l'aide d'un certificat d'un fournisseur de nom d'hôte
Les étapes à suivre pour utiliser un certificat d'un fournisseur de nom d'hôte pour activer HTTPS sur votre serveur Nextcloud sont identiques à celles décrites dans la section « HTTPS avec un certificat auto-signé » de cet article, à la seule exception que vous devez remplacer le chemin d'accès aux clés auto-signées par un chemin d'accès aux clés de votre fournisseur de nom d'hôte. Des commandes telles que « wget » et « mv » peut être utilisé pour télécharger et déplacer les fichiers de certificat vers les répertoires appropriés (/etc/ssl/certs pour le fichier de certificat et /etc/ssl/private pour le fichier de clé). Assurez-vous d'activer le module Apache SSL avec l' « sudo a2enmod ssl » commande et utilisation « sudo systemctl restart apache2 » une fois terminé, appliquez vos modifications. Le fichier d'hôte virtuel complété pour l'utilisation des fichiers de certificat doit ressembler à ceci (avec les champs SSLCertificateFile et SSLCertificateKeyFile remplacés par des chemins d'accès à vos fichiers de certificat et de clé personnalisés) :
Installation de l'application Antivirus pour fichiers
Même si Nextcloud peut transmettre des données en toute sécurité via HTTPS, cela ne signifie pas que tout ce que vous ou vos utilisateurs téléchargez est sécurisé. Qu'elles soient intentionnelles ou non, les infections par des logiciels malveillants sur les serveurs Web peuvent causer des dommages considérables et se propager comme une traînée de poudre à d'autres systèmes si elles ne sont pas traitées rapidement. Pour une couche de protection supplémentaire contre les acteurs malveillants sur Internet, un programme antivirus est indispensable pour les serveurs accessibles depuis Internet.
ClamAV est une suite antivirus gratuite et open source qui peut être intégrée à Nextcloud pour analyser les fichiers téléchargés par les utilisateurs à la recherche de logiciels malveillants. La boutique d'applications Nextcloud propose une application appelée « Antivirus pour fichiers » qui utilise ClamAV comme backend pour analyser les fichiers des utilisateurs et protéger votre serveur. Cette application peut être téléchargée en accédant à l'onglet « Applications » en cliquant sur la photo de profil de votre compte administrateur et en sélectionnant la catégorie « Sécurité ».
Cliquez sur le bouton « Télécharger et activer » dans la section « Antivirus pour fichiers » pour l’installer sur votre instance Nextcloud. Ensuite, nous devons installer ClamAV et activer le système de mise à jour du scanner et des signatures de logiciels malveillants. « sudo apt install clamav clamav-daemon » pour obtenir tous les packages ClamAV nécessaires.
Une fois les packages installés, exécutez « sudo dpkg-reconfigure clamav-daemon » dans la console pour faire apparaître un menu de configuration interactif. Nous l'utiliserons pour personnaliser le comportement d'analyse de notre configuration ClamAV.Saisissez les réponses suivantes aux questions ci-dessous :
- Gérer le fichier de configuration automatiquement ? Oui
- Type de prise: UNIX
- Le socket local (UNIX) clamd écoutera sur : /var/run/clamav/clamd.ctl
- Propriétaire du groupe du socket local clamd (UNIX) : clamav
- Mode de création pour le socket local clamd (UNIX) : 666
- Gérer avec élégance les fichiers de socket UNIX restants ? Oui
- Voulez-vous activer l’analyse du courrier ? Non
- Souhaitez-vous activer l’analyse des archives ? Non
- Vous pouvez sélectionner « Oui » pour cette invite, mais une configuration supplémentaire est requise si vous choisissez de le faire. Consultez la documentation ClamAV pour plus d'informations : https://docs.clamav.net/manual/Installing/Packages.html#the-packages
- Profondeur maximale du répertoire qui sera autorisée : 15
- Voulez-vous que le démon suive les liens symboliques de fichiers réguliers ? Oui
- Délai d'attente pour l'arrêt du scanner de threads (secondes) : 180
- Nombre de threads pour le démon : 2
- Soustrayez 2 du nombre de cœurs/vCPU de votre serveur Nextcloud et saisissez ce nombre dans ce champ.
- Nombre de connexions en attente autorisées : 15
- Voulez-vous utiliser l'enregistreur système ? Non
- Fichier journal pour clamav-daemon (entrez aucun pour désactiver) : /var/log/clamav.log
- Voulez-vous enregistrer des informations temporelles avec chaque message ? Non
- Si un volume élevé d’écritures sur le lecteur n’est pas préjudiciable à votre système, choisissez plutôt « Oui ».
- Voulez-vous activer la rotation des journaux ? Oui
- Délai en secondes entre les auto-vérifications du démon : 3600
- Utilisateur pour exécuter clamav-daemon en tant que : clamav
- Groupes pour clamav-daemon (séparés par des espaces) : www-data
- Voulez-vous charger le bytecode de la base de données ? Oui
- Niveau de sécurité à appliquer au bytecode : ConfianceSigné
- Délai d'expiration de l'exécution du bytecode en millisecondes : 60000
Ouf ! C'était beaucoup de configuration ! Heureusement pour nous, nous n'avons à le faire qu'une seule fois. Utilisez « systemctl active clamav-freshclam » et « systemctl active clamav-daemon » pour permettre à ClamAV de démarrer après le démarrage du système, et nous pouvons commencer à configurer l'application Nextcloud « Antivirus pour fichiers ».
À l'aide d'un navigateur Web sur un autre ordinateur connecté au même réseau et au même sous-réseau que votre serveur Nextcloud, connectez-vous à Nextcloud et cliquez sur la photo de profil de votre utilisateur administrateur. Cliquez sur l'option « Paramètres d'administration » dans le menu déroulant, puis sélectionnez la section « Sécurité » une fois le chargement de la page terminé.
Faites défiler la page jusqu'à la section « Antivirus pour fichiers » et modifiez le champ « Mode » en « ClamAV Daemon (Socket) ». Modifiez le champ « Lorsque des fichiers infectés sont détectés lors d'une analyse en arrière-plan » en « Supprimer le fichier » et appuyez sur le bouton « Enregistrer ». ClamAV analysera périodiquement les fichiers téléchargés sur Nextcloud à la recherche de logiciels malveillants et supprimera les fichiers qui correspondent aux signatures de logiciels malveillants connus.
Intégrations et améliorations générales de Nextcloud
Maintenant que nous avons créé un serveur cloud fonctionnel et sécurisé pour le stockage des données, nous pouvons étendre ses capacités et ajouter de nouvelles fonctionnalités. Commençons par nous occuper de quelques tâches faciles à réaliser : connecter Nextcloud à un serveur de messagerie et définir la région téléphonique par défaut.
Connexion d'un serveur de messagerie
Pour envoyer des notifications par e-mail, des alertes d'activité et des liens de réinitialisation de mot de passe (pour les utilisateurs non LDAP), Nextcloud doit être connecté à un serveur de messagerie opérationnel. Si vous hébergez vous-même votre serveur de messagerie, la configuration est aussi simple que de saisir l'adressage du serveur et les informations d'authentification correctes. Vous pouvez également utiliser un serveur de messagerie tiers avec une adresse e-mail que vous possédez déjà, comme le serveur SMTP de Gmail.
Accédez au nom de domaine complet ou à l'adresse IP de votre serveur Nextcloud à l'aide d'un navigateur Web sur un ordinateur connecté au même réseau et sous-réseau que votre serveur. Cliquez sur l'image de profil de votre utilisateur administrateur et sélectionnez « Paramètres d'administration » dans le menu déroulant.
Sur la page « Paramètres d’administration », sélectionnez la section « Paramètres de base » sur le côté gauche et faites défiler jusqu’au module « Serveur de messagerie ».
À partir de cette page, vous pouvez configurer les paramètres de chiffrement, d'adressage et d'authentification de votre serveur de messagerie. Vous pouvez choisir quelques méthodes de chiffrement et d'authentification en fonction de vos besoins de sécurité ou de compatibilité.
Pour utiliser le serveur SMTP de Gmail avec un compte Google que vous possédez déjà, accédez d'abord à https://myaccount.google.com/apppasswords et créez un mot de passe d'application en suivant les instructions du site. Donnez à votre mot de passe d'application un nom associé à votre serveur Nextcloud et stockez votre mot de passe dans un endroit sûr. Notez que le mot de passe est affiché avec des espaces tous les quatre caractères, mais ne contient pas réellement ces espaces. Les mots de passe d'application sont des chaînes de seize lettres continues.
Remplissez les champs suivants du serveur de messagerie comme indiqué ci-dessous :
- Mode d'envoi : SMTP
- Cryptage: Aucun/STARTTLS
- De l'adresse : johndoe @ stockagerevue.com
- Saisissez ici l'adresse de votre compte Gmail.
- Adresse du serveur : smtp.gmail.com : 587
- Authentification: Oui (case à cocher)
- De vérification des pouvoirs: [email protected] mot de passe de l'application ici
- Saisissez l’adresse de votre compte Gmail et le mot de passe de l’application que vous avez créé ici.
Une fois terminé, cliquez sur le bouton « Enregistrer » et utilisez le bouton « Envoyer un e-mail » pour vérifier que votre configuration est valide.
Si vous n'avez pas encore défini d'adresse e-mail pour le compte d'administrateur que vous utilisez, vous recevrez un avertissement vous demandant de le faire. Vous pouvez facilement résoudre ce problème en cliquant sur la photo de profil de votre utilisateur administrateur, en sélectionnant « Paramètres personnels » dans le menu déroulant et en saisissant votre adresse e-mail dans le champ « E-mail ». Une fois que vous avez terminé, revenez au module « Serveur de messagerie » sous « Paramètres de base » dans la page « Paramètres d'administration » et ressaisissez la configuration si nécessaire.
Définition de la région par défaut du téléphone
Un changement très rapide mais plutôt utile que nous pouvons apporter pour que Nextcloud gère mieux les numéros de téléphone consiste à définir une région téléphonique par défaut pour l'instance. Lorsque les utilisateurs remplissent leur profil dans les paramètres « Informations personnelles » qui se trouvent sous « Paramètres personnels », il leur est demandé d'inclure éventuellement un numéro de téléphone à des fins de contact. Sans région téléphonique par défaut, Nextcloud oblige les utilisateurs à saisir un indicatif de pays avec ce numéro. La définition de la région téléphonique par défaut permet aux utilisateurs d'exclure ce préfixe.
Dans la console du serveur Nextcloud, utilisez « sudo nano /var/www/html/nextcloud/config/config.php » pour modifier le fichier de configuration PHP du site Nextcloud.
Ajoutez la ligne suivante à votre fichier de configuration PHP, en respectant le modèle d'espacement créé par les lignes précédentes et en l'insérant avant le crochet de fin « ); » :
'default_phone_region' => 'États-Unis',
-
- Le code ISO 3166-1 unique de votre pays utilisé pour ce champ peut être trouvé sur la page Wikipédia suivante : https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
Pour des raisons de sécurité, vous ne devez montrer à personne le contenu de votre instance Nextcloud. « config.php » fichier. Il contient des informations sensibles telles que des mots de passe et des secrets système que seuls vous ou vos administrateurs système doivent connaître. Une fois que vous avez terminé d'ajouter la ligne de région téléphonique par défaut à votre fichier de configuration, enregistrez le nouveau contenu en maintenant la touche Ctrl enfoncée et en appuyant sur « O », puis en maintenant la touche Ctrl enfoncée et en appuyant sur « X » pour quitter. Pour appliquer les modifications, saisissez « sudo systemctl restart apache2 » dans la console et appuyez sur Entrée.
Configuration d'une fenêtre de maintenance
Une autre petite amélioration que nous pouvons apporter au fichier de configuration PHP du site Nextcloud consiste à définir une fenêtre de maintenance pour que le serveur effectue des tâches plus intensives et potentiellement impactantes pour l'utilisateur. La fenêtre est définie à l'aide de l'heure UTC, vous devrez donc convertir l'heure de début de la fenêtre de maintenance souhaitée en une heure UTC équivalente (exprimée sous la forme d'un entier compris entre 1 et 24). La fenêtre de maintenance dure quatre heures, donc une fenêtre de maintenance qui commence à 3h00 UTC se terminera à 7h00 UTC.
Utilisez « sudo nano /var/www/html/nextcloud/config/config.php » pour commencer à éditer à nouveau le fichier de configuration PHP, et ajoutez cette ligne avant le crochet de fin « ); », en suivant les conventions d'espacement utilisées par les lignes déjà présentes dans le fichier :
'maintenance_window_start' => 1,
-
- N'oubliez pas de remplacer « 1 » par l'heure de début de votre fenêtre de maintenance souhaitée traduite en heure UTC.
Après avoir enregistré le fichier en utilisant Ctrl + « O » et Ctrl + « X », appliquez la fenêtre de maintenance en utilisant « sudo systemctl restart apache2 ».
Intégration du serveur LDAP/Active Directory
Si vous envisagez de donner accès à plusieurs utilisateurs à votre instance Nextcloud, l'une des fonctionnalités les plus puissantes que vous pouvez ajouter à Nextcloud est la possibilité de se connecter à un serveur LDAP ou Active Directory et de s'authentifier. De nombreuses organisations et particuliers utilisent Active Directory ou LDAP pour organiser et contrôler l'accès des utilisateurs aux ressources réseau de manière centralisée, et Nextcloud ne fait pas exception. Avec l'application « LDAP user and group backend », les utilisateurs de votre domaine Active Directory ou de votre serveur LDAP peuvent être importés dans votre serveur Nextcloud et se connecter à l'aide de leur nom d'utilisateur ou de leur adresse e-mail et de leur mot de passe. Cette fonctionnalité devient encore plus puissante lorsqu'elle est combinée à un stockage externe (comme un partage SMB sur un NAS) fournissant des dossiers « personnels » individuels pour les utilisateurs avec des autorisations spécifiques à cet utilisateur.
Pour installer l'application « LDAP user and group backend », cliquez d'abord sur l'image de profil lorsque vous êtes connecté à la page Web Nextcloud avec votre compte d'utilisateur administrateur. Sélectionnez « Applications » dans le menu déroulant qui apparaît, puis cliquez sur le module « Applications en vedette ». Faites défiler la page jusqu'à ce que vous trouviez l'application « LDAP user and group backend », puis cliquez sur le bouton « Activer ».
Maintenant que l'application a été activée, nous devons connecter Nextcloud à un serveur LDAP. Assurez-vous d'avoir un compte prêt à autoriser cette connexion. En règle générale, un compte de service créé spécifiquement pour cette connexion est recommandé, mais n'importe quel compte Active Directory ou LDAP avec la possibilité de rechercher dans l'annuaire peut être utilisé. Sachez que même si cet exemple utilisera un compte de domaine « Administrateur » intégré sur un domaine Active Directory, cette pratique n'est pas sûre. Si le serveur Nextcloud est compromis et que les informations d’identification du compte « Administrateur » sont volées, un attaquant disposera de toutes les autorisations pour lire, modifier et même supprimer n’importe quel objet du domaine.
Accédez à nouveau à la page « Paramètres d'administration » en cliquant sur la photo de profil de votre utilisateur administrateur et en la sélectionnant dans le menu déroulant. Cliquez sur le module « Intégration LDAP/AD » pour commencer.
Sur cette page, commencez à remplir les informations requises pour votre serveur LDAP/Active Directory :
- Hôte : 192.168.1.102
- Remplacez-le par l’adresse IP/le nom d’hôte de votre serveur LDAP ou de votre contrôleur de domaine Active Directory.
- Port: 389
- Si vous utilisez Active Directory, utilisez le port 389. Si vous utilisez un autre type de serveur LDAP ou si vous avez personnalisé le port sur lequel votre serveur AD écoute les requêtes LDAP, entrez le numéro spécifique ici.
- Utilisateur DN: CN=Administrateur,CN=Utilisateurs,DC=moose,DC=local
- Saisissez le nom distinctif du compte utilisé pour connecter Nextcloud à votre serveur LDAP/AD. Si vous utilisez Active Directory, vous pouvez facilement le trouver en exécutant cette commande à l'aide d'une fenêtre CMD, en remplaçant « Administrateur » par le nom d'utilisateur du compte que vous utilisez pour la connexion :
- utilisateur dsquery -nom « Administrateur »
- Cliquez sur le bouton « Enregistrer les informations d’identification » après avoir rempli ce champ.
- Saisissez le nom distinctif du compte utilisé pour connecter Nextcloud à votre serveur LDAP/AD. Si vous utilisez Active Directory, vous pouvez facilement le trouver en exécutant cette commande à l'aide d'une fenêtre CMD, en remplaçant « Administrateur » par le nom d'utilisateur du compte que vous utilisez pour la connexion :
- Un DN de base par ligne : DC=élan,DC=local
- Cliquez sur le bouton « Détecter le DN de base » après avoir enregistré les informations d’identification précédentes pour déterminer automatiquement le DN de base du serveur LDAP/AD.
- En option, cliquez sur le bouton « Tester le DN de base » pour vérifier si la configuration actuelle est valide.
Après avoir complété la première page du module « Intégration LDAP/AD », cliquez sur le bouton « Continuer » et prenez une seconde pour visualiser et étudier la section « Utilisateurs ».
Bien que la présentation de la page puisse paraître déroutante au premier abord, sa fonction est de filtrer les utilisateurs disponibles pour la connexion sur le serveur Nextcloud par attributs tels que les classes d'objets et les groupes. Nous vous recommandons de créer un groupe unique pour les utilisateurs qui se connecteront au serveur Nextcloud afin que le filtrage puisse être effectué en fonction de l'appartenance à ce groupe. Sélectionnez les classes d'objets et/ou les groupes auxquels vous souhaitez donner accès, puis cliquez sur le bouton « > » pour ajouter le groupe au filtre. Cet exemple utilise un groupe nommé « famille ». Cliquez sur le bouton « Vérifier les paramètres et compter les utilisateurs » pour afficher un message indiquant le nombre d'utilisateurs correspondant à la description que vous avez saisie. Si le nombre semble incorrect, vérifiez à nouveau vos filtres de classes d'objets et de groupes.
Une fois que vous avez le nombre correct d'utilisateurs, cliquez sur le bouton « Continuer » pour passer à la section « Attributs de connexion ». Cochez les cases des champs « Nom d'utilisateur LDAP/AD : » et « Adresse e-mail LDAP/AD », et vérifiez que l'attribut de connexion est correct en saisissant un nom d'utilisateur et une adresse e-mail (si vous le souhaitez) dans la case « Tester le nom de connexion » et en cliquant sur « Vérifier les paramètres ».
Si le nom d’utilisateur/adresse e-mail peut être utilisé pour se connecter, une notification apparaîtra indiquant « Utilisateur trouvé et paramètres vérifiés ». Cliquez sur le bouton « Continuer » une dernière fois pour passer à la dernière page, « Groupes ». De la même manière que la page « Utilisateurs », la section « Groupes » permet de déterminer qui peut se connecter au serveur Nextcloud en utilisant des critères de classe d’objet et de groupe. Effectuez les mêmes sélections que celles effectuées sur la page « Utilisateurs » ou réduisez le nombre d’utilisateurs pouvant se connecter en saisissant des critères plus spécifiques ici dans les champs « Rechercher des classes d’objet » et « Rechercher des groupes ». Cet exemple sélectionne le groupe « famille » dans la liste de la page et utilise le bouton « > » pour limiter l’accès à ce groupe uniquement. Enfin, cliquez sur « Vérifier les paramètres et compter les groupes » pour afficher le nombre de groupes valides pour la connexion.
Vous avez maintenant accordé la possibilité de se connecter au serveur Nextcloud pour les groupes LDAP ou Active Directory sélectionnés dans les étapes précédentes. Cliquez sur la photo de profil de votre utilisateur administrateur et sélectionnez « Déconnexion ». Lorsque vous êtes invité à saisir un nom d'utilisateur et un mot de passe pour vous reconnecter, testez la capacité de connexion de l'un des utilisateurs auxquels vous avez accordé l'accès. Si l'utilisateur ne parvient pas à se connecter, consultez à nouveau la section « Utilisateurs » et « Groupes » de cette page pour examiner vos critères et résoudre l'erreur.
Intégration du stockage externe
Un autre atout majeur de votre serveur Nextcloud est la possibilité de se connecter à des pools de stockage externes et de les utiliser. Placer des fichiers utilisateur directement sur le serveur lui-même peut entraîner des problèmes liés à la gestion du stockage du serveur et à la nécessité d'augmenter constamment la capacité pour répondre à la demande des utilisateurs. Si vous ne faites pas constamment preuve de vigilance dans l'application des quotas et la suppression des données inutiles créées par les utilisateurs, cela peut entraîner des frustrations et des temps d'arrêt inattendus. La séparation des composants du serveur Web et du stockage d'une configuration Nextcloud est fortement recommandée et essentielle lorsque l'on souhaite créer un système de stockage cloud évolutif et une expérience utilisateur agréable.
L'application « Prise en charge du stockage externe » pour Nextcloud vous permet de monter des dossiers à partir des types de stockage suivants :
- Amazon S3
- Ftp
- Nextcloud
- Oui, c'est vrai, vous pouvez vous connecter et utiliser le stockage disponible sur d'autres serveurs Nextcloud !
- Stockage d'objets OpenStack
- SFTP
- SMB / CIFS
- WebDAV
Comme vous pouvez le constater, il existe plusieurs choix différents pour connecter Nextcloud à des baies de stockage externes, à des clouds et à d’autres systèmes. À titre d’exemple, nous allons connecter une instance Nextcloud à un partage SMB qui contrôle l’accès à différents dossiers à l’aide d’autorisations accordées aux utilisateurs importés à partir du domaine Active Directory auquel nous nous sommes connectés précédemment.
Pour activer l'application « Prise en charge du stockage externe », cliquez sur la photo de profil de votre utilisateur administrateur lorsque vous êtes connecté au site et sélectionnez « Applications ». Accédez à nouveau à « Applications en vedette » et recherchez le module intitulé « Prise en charge du stockage externe ». Cliquez sur le bouton « Activer » pour rendre l'application disponible.
Une fois l'application activée, vous pourrez ajouter un stockage externe en allant dans « Paramètres d'administration » et en cliquant sur le module « Stockage externe ». À partir de cette page, vous pouvez vous connecter au stockage externe en sélectionnant le type de stockage dans le menu déroulant et en renseignant les détails de configuration.
Pour ajouter un partage SMB, sélectionnez l’option « SMB/CIFS » dans la liste et remplissez les détails de configuration comme suit :
- Authentification: Saisie manuelle, stockage dans la base de données
- Pour que les utilisateurs saisissent manuellement leur propre nom d'utilisateur et mot de passe pour l'authentification, choisissez cette option. Pour utiliser un ensemble d'informations d'identification statiques pour donner aux utilisateurs l'accès à un partage SMB, choisissez « Identifiant et mot de passe ». Sinon, sélectionnez l'option qui répond le mieux à vos besoins dans le menu déroulant.
- Nom du dossier : famille
- Vous pouvez définir ce nom comme vous le souhaitez pour décrire le stockage que vous montez. Exemples : « SMB » ou le nom du partage que vous montez.
- Hôte : 192.168.1.140
- Remplacez cette valeur par l’adresse IP ou le nom de domaine complet du serveur hébergeant le partage SMB auquel vous souhaitez vous connecter.
- Partagez : famille
- Remplacez cette valeur par le nom du partage que vous souhaitez monter qui est présent sur le serveur saisi dans le champ « Hôte ».
- Sous-dossier distant : \
- Pour monter le dossier de niveau supérieur du partage (le dossier partagé lui-même), utilisez « \". Sinon, entrez le chemin d'accès à un sous-dossier à l'intérieur du partage souhaité de cette manière :
- \sous-dossier\un autre_sous-dossier\encore_un_autre_sous-dossier
- Pour monter le dossier de niveau supérieur du partage (le dossier partagé lui-même), utilisez « \". Sinon, entrez le chemin d'accès à un sous-dossier à l'intérieur du partage souhaité de cette manière :
- Domaine: MOOSE
- Remplacez cette valeur par le nom NetBIOS d'un domaine si l'accès au partage est contrôlé via LDAP ou Active Directory. Ce champ n'est pas obligatoire si le partage n'est pas contrôlé par un serveur LDAP/AD.
- Afficher les fichiers cachés : Consultez
- Cochez cette case si les utilisateurs doivent pouvoir afficher les fichiers cachés (ceux qui commencent par un caractère « . »).
- Système de fichiers sensible à la casse : Consultez
- Vérifier l'accès ACL lors de l'affichage des fichiers : Consultez
- Cette option est extrêmement importante pour que le contrôle d'accès fonctionne correctement. Sinon, si deux utilisateurs ont monté le même partage et ont configuré des dossiers de manière à ce que l'autre n'y ait pas accès, ils pourront toujours voir les fichiers de l'autre.
- Tout le monde: Consultez
- Cochez cette option si vous souhaitez que tous les utilisateurs Nextcloud puissent saisir leurs informations d'identification et se connecter au partage SMB, sinon choisissez un groupe local sur l'instance Nextcloud pour rendre le partage disponible à l'aide du champ ci-dessous.
- Malheureusement, au moment de la rédaction de cet article, il n'est pas possible de sélectionner un groupe LDAP/Active Directory à l'aide du champ situé sous cette option lorsqu'il n'est pas sélectionné.
- Cochez cette option si vous souhaitez que tous les utilisateurs Nextcloud puissent saisir leurs informations d'identification et se connecter au partage SMB, sinon choisissez un groupe local sur l'instance Nextcloud pour rendre le partage disponible à l'aide du champ ci-dessous.
Une fois que vous avez terminé de saisir les détails de configuration du partage SMB spécifiques à votre configuration, cliquez sur le bouton de coche pour l'enregistrer et le rendre disponible aux utilisateurs.
Si vous souhaitez que les utilisateurs puissent monter leur propre stockage externe, cliquez sur la coche située sous la section de montage du stockage de la page. Si vous choisissez d'activer cette option, vous pouvez également restreindre les types de stockage disponibles pour l'auto-montage.
Pour terminer la configuration du partage SMB, les utilisateurs doivent accéder au module « Stockage externe » sous « Paramètres personnels » après avoir cliqué sur leur photo de profil et l'avoir sélectionnée dans le menu déroulant.
Sur cette page, les utilisateurs peuvent saisir leur nom d'utilisateur et leur mot de passe et cliquer sur le bouton de coche pour déverrouiller le partage SMB pour le stockage et la récupération des fichiers.
Une fois que l'utilisateur a entré ses informations d'identification, le partage est accessible en cliquant sur l'icône de dossier en haut du menu du site Nextcloud et en parcourant la liste des dossiers et fichiers utilisateur.
Transformer Nextcloud en un véritable serveur Web
Votre instance Nextcloud riche en fonctionnalités est désormais presque prête à devenir un serveur Web puissant et accessible au public ! Avant d'ouvrir les vannes, nous devons nous assurer que le serveur peut gérer les requêtes intensives de plusieurs utilisateurs accédant aux fichiers. Nous avons déjà augmenté les performances en apportant plusieurs modifications clés à la configuration PHP du système, et l'ajout de la prise en charge de la mise en cache de la mémoire peut amplifier cela.
Configuration de la mise en cache de la mémoire – APCu
ACPu est un cache PHP qui permet d'accélérer les temps d'accès aux objets fréquemment utilisés. Nous l'utiliserons comme premier cache pour notre instance Nextcloud. Avant d'activer le cache APCu, nous devons apporter quelques modifications au fichier « php.ini » de notre système.
Utilisez "Sudo nano /etc/php/8.3/apache2/php.ini" pour commencer à modifier le fichier. Faites défiler jusqu'au bas du fichier en maintenant la touche fléchée vers le bas enfoncée pendant une période prolongée. Dans une nouvelle ligne au bas du fichier, ajoutez les lignes suivantes :
apc.enable_cli=1
apc.shm_size=128M
L'ajout de ces deux lignes permettra au système d'utiliser APCu comme cache et de définir la taille du cache à 128 mégaoctets plutôt que la valeur par défaut de 32. Une fois terminé, appuyez sur Ctrl (ctrl) + « O » et Ctrl (ctrl) + « X » pour enregistrer le fichier et quitter nano.
Pour terminer l'activation du cache APCu, utilisez "Sudo nano /etc/php/8.3/mods-available/apcu.ini" et ajouter « apc.enable_cli=1 » au bas du fichier de configuration comme nous l'avons fait pour le « php.ini » fichier. Utilisez Ctrl + « O » et Ctrl + « X » à nouveau pour enregistrer et quitter le fichier de configuration.
Nous avons activé PHP pour utiliser APCu, mais nous devons maintenant demander à Nextcloud de l'utiliser.
Type « sudo nano /var/www/html/nextcloud/config/config.php » dans la console, puis appuyez sur Entrée. Dans le fichier de configuration PHP de Nextcloud, nous ajouterons une ligne pour que Nextcloud utilise APCu pour la mise en cache de la mémoire locale :
'memcache.local' => '\OC\Memcache\APCu',
Placez cette ligne avant le crochet de fin « ); », en suivant les conventions d'espacement des lignes précédentes du fichier de configuration. Maintenez à nouveau la touche Ctrl enfoncée et appuyez sur « O », puis sur « Ctrl » et sur « X » pour enregistrer et quitter.
Une fois le fichier de configuration PHP enregistré, utilisez « sudo systemctl restart apache2 » pour redémarrer le serveur Web Apache et appliquer vos modifications.
Si vous avez suivi toutes les étapes pour configurer correctement APCu pour la mise en cache de la mémoire locale, les performances de votre serveur Nextcloud devraient être considérablement améliorées ! Allons plus loin et configurons Redis pour encore plus de fonctionnalités de mise en cache de la mémoire.
Configuration de la mise en cache de la mémoire – Redis
Vous vous demandez peut-être : « Pourquoi mon serveur Web a-t-il besoin de deux caches mémoire différents ? Un seul ne suffit-il pas ? » La réponse à cette question est en fait assez simple. Tout comme chaque outil dans un magasin a sa propre utilité, APCu et Redis le font aussi. APCu est un excellent cache mémoire local et surpasse largement ce dernier dans cette catégorie, tandis que Redis brille dans la mise en cache distribuée et le verrouillage de fichiers transactionnels.
Pour démarrer avec Redis, nous allons éditer le fichier de configuration du système Redis en saisissant
« sudo nano /etc/redis/redis.conf » dans la console et en appuyant sur Entrée. Par défaut, le service Redis écoute un port TCP pour la mise en cache et le trafic de verrouillage des fichiers de transaction, mais pour une configuration de serveur unique, un socket Unix est la méthode de communication préférée. L'utilisation d'un port TCP serait logique si nous fournissons le service Redis sur un réseau, mais un socket Unix est beaucoup plus efficace pour les communications entre les processus du serveur Web Redis et Nextcloud.
Une fois que vous avez saisi nano, maintenez la touche contrôle (ctrl) et appuyez sur « W » pour activer la fonction de recherche de nano. Tapez « unixsocket » dans la barre de recherche et appuyez sur Entrée, et nano passera à l' « Socket Unix » section de configuration du fichier. Dans le « Socket Unix » section, retirez le "#" caractères et espaces vides devant "unixsocket /run/redis/redis-server.sock" et « unixsocketperm 700 ». Changer la "700" à "770", et faites défiler vers le haut jusqu'à ce que vous trouviez la ligne qui dit « port 6379 ». Nous allons changer cette valeur en "0", indiquant effectivement au serveur Redis de ne pas écouter les connexions sur un port TCP. Consultez les images ci-dessous pour valider votre fichier de configuration avant d'utiliser Ctrl (ctrl) + « O » et Ctrl (ctrl) + « X » pour enregistrer et quitter le fichier.
Grâce à ces modifications apportées au fichier de configuration du système Redis, nous pouvons désormais spécifier que nous souhaitons utiliser Redis pour la mise en cache distribuée et le verrouillage des fichiers transactionnels dans le fichier de configuration PHP de Nextcloud. Ouvrez ce fichier dans nano en utilisant « sudo nano /var/www/html/nextcloud/config/config.php ».
Au bas du fichier de configuration PHP Nextcloud, avant le crochet de fin « ); », ajoutez ces lignes, en faisant très attention aux espacements et aux virgules :
'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'hôte' => '/run/redis/redis-server.sock', 'port' => 0, ],
Si vous avez correctement saisi les lignes, la section de mise en cache de la mémoire de votre fichier de configuration PHP devrait ressembler à cet extrait :
Avant de redémarrer le serveur Web Apache et Redis pour appliquer les modifications, utilisez « sudo usermod -a -G redis www-data » ajouter le « www-données » utilisateur au « redis » groupe, accordant au serveur Web l'accès au socket Redis Unix. Enfin, tapez « sudo systemctl restart apache2 && sudo systemctl restart redis-server » dans la console et appuyez sur Entrée pour appliquer les modifications et redémarrer les services concernés.
Exposer Nextcloud à Internet
Nous sommes presque arrivés à la fin ! La dernière étape du déploiement de votre serveur Nextcloud consiste à le rendre accessible à l'Internet public. Cette étape nécessite que vous configuriez la redirection de port sur votre routeur et peut impliquer un peu de recherche de votre part. Utilisez le catalogue de guides de redirection de port sur https://portforward.com/router.htm pour essayer de trouver le fabricant de votre routeur et lire la solution. Si vous ne trouvez pas le fabricant de votre routeur dans la liste ou si vous utilisez un routeur d'entreprise/fait maison, vous devrez peut-être effectuer quelques recherches sur le Web jusqu'à ce que vous trouviez la méthode appropriée.
Lors de la configuration de la redirection de port, transférez les ports 80 et 443 à partir de l'adresse IP privée de votre serveur Nextcloud (que vous pouvez trouver à l'aide du « nom d'hôte -I » (commande) à l'adresse IP publique du routeur. Si votre fournisseur d'accès Internet ne vous fournit pas d'adresse IP publique, vous devez utiliser un service comme Tunnels de Cloudflare, qui vous permet de créer un tunnel sécurisé entre votre serveur Web et les serveurs de Cloudflare, qui renvoient le trafic des visiteurs du site Web vers vous.
Si vous possédez un domaine ou utilisez un nom d'hôte provenant d'un fournisseur de noms d'hôte, assurez-vous que vos enregistrements DNS sont configurés pour pointer vers l'adresse IP publique de votre serveur. En option, certains fournisseurs de services offrent la possibilité de masquer complètement votre adresse IP aux visiteurs du site Web et de transférer en toute sécurité ces données de leurs serveurs vers le vôtre.
Toutes nos félicitations! Tu l'as fait!
Vous êtes désormais l'heureux propriétaire et exploitant d'un serveur Nextcloud entièrement fonctionnel, renforcé et performant. Vous pouvez désormais inviter des membres de votre famille ou des amis à utiliser votre serveur pour le stockage dans le cloud si vous le souhaitez. N'oubliez pas que Nextcloud est une plateforme hautement modulaire, alors n'ayez pas peur d'essayer de nouvelles applications ou de modifier votre configuration pour répondre à vos besoins ! Assurez-vous de configurer des sauvegardes régulières du serveur dès que possible et gardez un œil sur les choses pour vous assurer que tout fonctionne correctement.
Visite guidée de la configuration Nextcloud de l'auteur
Wow, vous avez réussi à parcourir tout cela et vous voulez encore en lire plus ? Considérez-nous comme impressionnés ! Voici une visite rapide et quelques photos de la configuration Nextcloud de l'auteur si vous cherchez un peu d'inspiration :
- matériel:
- Serveur de virtualisation :
- Système d'exploitation : Environnement de virtualisation Proxmox
- Châssis : Supermicro SC216 avec cage de disque de démarrage arrière redondante en option
- Processeur : Intel Xeon E5-2683
- RAM : 4 x 32 Go DDR4 2400 MHz ECC RDIMM
- Carte mère : Gigabyte MU70-SU0 (LGA 2011-3)
- Adaptateur de bus hôte : Broadcom SAS 9305-24i
- Carte réseau : adaptateur Intel X520-DA2 2 ports 10 GbE SFP+
- Processeur graphique : NVIDIA Quadro K1200
- Disques de démarrage : 2x SSD SATA Samsung 850 EVO 120 Go
- Disques de données : 24 SSD SATA Samsung 860 EVO 250 Go
- NAS:
- Système d'exploitation : TrueNAS ÉCHELLE
- Châssis : HPE ProLiant MicroServer Gen10 Plus
- Processeur : Intel Xeon E-2224
- RAM : 2 x 16 Go DDR4 2666 MHz ECC UDIMM
- HBA : contrôleur HPE Smart Array E208i-p SR Gen10 intégré
- Carte réseau : adaptateur HPE Ethernet 560SFP+ 2 ports 10 GbE SFP+
- Disque de démarrage : Micron M600 256 Go SATA SSD (connecté par USB)
- Disques cache : 2x SSD SATA Samsung 860 EVO 250 Go (connectés par USB)
- Disques durs : 4 disques durs WD Red Plus 4 To 5400 tr/min
- Disque de sauvegarde : disque dur WD Red Pro 14 To 7200 tr/min (connecté par USB)
- Modem:
- Net Gear CM1200
- DOCSIS 3.1
- 4 ports WAN 1 GbE RJ45 (compatibles avec l'agrégation de liens à 2 ports)
- Routeur:
- Système d'exploitation : pfSense
- Châssis : Dell OptiPlex 7040 SFF
- Processeur: Intel Core i5 6500
- RAM: GB 8 DDR4
- Carte réseau : Adaptateur Intel E1G44ET 4 ports 1 GbE RJ45
- Disques de démarrage : 2x SSD SATA Samsung 860 EVO 250 Go
- Commutateur principal :
- Réseau Dell N4032F
- 24 ports SFP+ 10 GbE
- 2 ports QSFP+ 40 GbE
- 1 port de gestion GbE
- Commutateur d'accès :
- Réseau Dell X1052
- 48 ports RJ1 45 GbE
- 4 ports SFP+ 10 GbE
- Points d'accès:
- Système d'exploitation : OpenWRT
- Linksys EA8300 Max-Stream
- AC2200
- MU-MIMO
- Wi-Fi 5 (802.11ac)
- 1 port LAN RJ1 45 GbE
- 4 ports LAN RJ1 45 GbE
- UPS:
- CyberPower CP1500AVRLCD3
- 1500VA
- 900W
- Serveur de virtualisation :
- Machines virtuelles:
- Environnement de virtualisation Proxmox :
- 2x contrôleurs de domaine de centre de données Windows Server 2022
- Serveur Web Nextcloud Ubuntu Server 24.04.1
- Serveur de jeu Windows Server 2022
- ÉCHELLE TrueNAS :
- Cible de sauvegarde du serveur de sauvegarde Proxmox
- Environnement de virtualisation Proxmox :
Andrew utilise son serveur Nextcloud pour héberger des services de stockage de données pour ses proches. En utilisant une combinaison d'un domaine Active Directory avec des contrôleurs de domaine redondants, un NAS pour stocker toutes ces données utilisateur et un serveur de virtualisation, Andrew a optimisé sa configuration pour fournir des services de stockage hautes performances à la maison et partout où il dispose d'une connexion Internet.
L’épine dorsale de sa configuration est le Dell Networking N4032F, qui fournit des connexions de 10 gigabits par seconde entre son serveur Proxmox VE et la baie de stockage TrueNAS SCALE. Le trafic de données, de gestion et de stockage a été séparé en trois VLAN, ce qui offre une sécurité supplémentaire en cas de violation. Son commutateur d’accès fournit des connexions standard de 1 gigabit par seconde à son PC de jeu, à ses points d’accès et à divers autres appareils. Tous les serveurs et machines virtuelles sont surveillés par un Raspberry Pi Model 3B+ exécutant Ubuntu Server et une instance Uptime Kuma. Dès qu’un serveur/une machine virtuelle tombe en panne, Andrew est averti par e-mail, et en cas de panne de courant, les serveurs sont arrêtés en douceur dès que l’onduleur signale un faible niveau de charge.
Andrew a également construit sur mesure son serveur de virtualisation en utilisant un châssis Supermicro 24 baies 2U et des pièces obtenues sur eBay et d'autres sources « douteuses ». Dans une configuration ZFS RAIDZ2, cette matrice de 24 disques SSD de niveau grand public peut fournir un débit d'environ 8.2 gigaoctets par seconde pour les opérations de lecture et de 2.7 gigaoctets par seconde pour les opérations d'écriture sur des machines virtuelles, comme mesuré ici sur une machine virtuelle Windows Server 2022 :
La véritable star du salon du stockage de données est le HPE ProLiant MicroServer Gen10 Plus d'Andrew, qui contient quatre disques durs WD Red Plus de 4 To et est connecté au hasard via USB 3.2 Gen2 (10 Gbps) et Gen1 (5 Gbps) à un SSD Micron pour démarrer TrueNAS, un disque WD Red Pro de 14 To pour le stockage de sauvegarde et deux autres SSD Samsung 860 EVO pour la mise en cache. Pour être clair, Andrew ne recommande pas de faire cela, mais aime repousser les limites du possible avec le matériel qu'il possède. Une fiabilité de cinq neuf n'est absolument pas garantie ici, quelles que soient les circonstances, les amis.
Parmi les autres appareils remarquables, on trouve un PC Dell OptiPlex 7040 SFF reconverti, qui exécute pfSense pour fournir des services de routage pour les différents sous-réseaux de son laboratoire personnel, et le modem Netgear CM1200, qui prend étonnamment en charge l'agrégation de liens pour une raison quelconque. Avons-nous mentionné que chaque connexion de données de serveur, 1 ou 10 Gbit/s, est redondante en cas de panne ? Cela permettrait au système de stockage d'Andrew de partager théoriquement des données à un débit de 20 Gbit/s de manière bidirectionnelle, dans des conditions particulières, avec plusieurs connexions se produisant simultanément. Si seulement il avait les bons disques pour s'en approcher !
Conclusion
Nous espérons que vous avez trouvé de l'intérêt dans ce guide de configuration Nextcloud long mais détaillé. Faire les choses à la dure présente souvent des avantages, et en savoir plus sur le fonctionnement de votre stockage cloud est toujours une bonne chose. Si vous ne l'avez pas encore fait, abonnez-vous à la Newsletter StorageReview pour obtenir plus d'articles sur les serveurs, les systèmes de stockage et les laboratoires domestiques, et consultez-nous sur YouTube, TikTok, X (anciennement Twitter) ou Instagram !
Références/Sources :
- https://www.linode.com/docs/guides/how-to-install-nextcloud-on-ubuntu-22-04/
- https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html
- https://docs.nextcloud.com/server/latest/admin_manual/contents.html
- Diverses pages
- https://www.php.net/manual/en/ini.core.php
- https://nextcloud.com/
- https://ubuntu.com/download/server
- https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04
- https://snapcraft.io/install/core/ubuntu
- https://docs.clamav.net/manual/Usage
- Diverses pages
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html
- https://docs.nextcloud.com/server/30/admin_manual/configuration_files/external_storage/smb.html
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html
- https://www.php.net/manual/en/intro.apcu.php
- https://www.php.net/manual/en/apcu.configuration.php
- https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
S'engager avec StorageReview
Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | TikTok | Flux RSS