Anonim

Le stockage en nuage est un excellent moyen de protéger vos fichiers en cas de problème ou de perte de votre ordinateur. Il peut vous aider à accéder à vos fichiers sur la route ou depuis votre lieu de travail, et vous permet de tout synchroniser sur vos appareils.

Le stockage en nuage présente toutefois un inconvénient majeur. Vous devez faire confiance à une compagnie avec tous vos fichiers personnels. Que se passe-t-il s'ils se font pirater? Sont-ils vraiment tous si dignes de confiance ou passent-ils dans vos affaires lorsque vous ne regardez pas? Ce n'est pas vraiment possible de savoir avec certitude.

Il y a une autre option. Vous pouvez héberger votre propre stockage en nuage avec Nextcloud. Nextcloud est une solution de stockage en nuage open source qui vous permet de devenir votre propre entreprise de stockage en nuage. Il possède une interface facile à utiliser et à nettoyer et des applications d'accompagnement pour tous vos appareils. Vous n'avez donc pas à vous occuper de choses indésirables.

Ce guide se concentrera sur l'hébergement de Nextcloud sur un VPS (Virtual Private Server), mais vous pouvez également l'exécuter localement sur votre réseau domestique. Ne vous attendez simplement pas à y accéder de l'extérieur, à moins de configurer le transfert de port ou de faire fonctionner un VPN. Certaines étapes seraient un peu différentes, et vous n'aurez pas besoin d'acheter un nom de domaine ou de configurer des certificats SSL.

Choisissez un hôte

Liens rapides

  • Choisissez un hôte
  • Installez ce dont vous avez besoin
  • Configurez votre pare-feu
  • Configurer SSH
    • Clés SSH
      • les fenêtres
      • Mac et Linux
    • Interdire la racine et les mots de passe
  • Configurez votre base de données
  • Configurer PHP
  • Procurez-vous Nextcloud
  • Créer des certificats SSL
  • Configurez Nginx
  • Démarrer Nextcloud

En supposant que vous utilisiez une véritable solution cloud et que vous vouliez que vos fichiers soient accessibles sur le Web, vous devez configurer un VPS pour héberger Nextcloud. Il existe de très bonnes options, alors choisissez ce qui vous semble le mieux. Découvrez Linode, DigitalOcean et Gandi, si vous n'avez pas déjà un hôte en tête.

Ce guide utilisera Debian 9 «Stretch» ​​comme système d’exploitation du serveur. Debian est super stable et assez sécurisée par défaut. Il est également bien pris en charge par la plupart des plateformes d'hébergement. Si vous êtes plus à l'aise avec Ubuntu, la plupart de ces considérations s'appliqueront directement là aussi, car Ubuntu est basé sur Debian.

Vous devrez également obtenir un nom de domaine pour votre serveur. Étant donné que ce site ne sera pas public, vous pouvez en faire ce que vous voulez. Le processus d'achat et de liaison d'un nom de domaine est différent pour chaque hôte et fournisseur de nom de domaine. Veillez donc à consulter la documentation fournie par les services de votre choix.

Tout ce qui se passe ici sera géré à distance à partir de la ligne de commande Linux. Donc, si vous êtes sur Mac ou Linux, vous pouvez simplement ouvrir un terminal et utiliser SSH pour accéder à votre VPS. SI vous êtes sur Windows, prenez un client SSH comme PuTTY .

Installez ce dont vous avez besoin

Il y a beaucoup de pièces dans ce casse-tête. Vous pouvez tout aussi bien les attraper maintenant, de sorte que vous ayez ce dont vous avez besoin pour continuer à partir d'ici. D'ordinaire, sudo n'est pas installé dans Debian par défaut. Commencez par le saisir et configurez-le.

$ su -c 'apt install sudo'

Entrez votre mot de passe root et Sudo sera installé. Ensuite, vous devez ajouter votre utilisateur au groupe sudo.

$ su -c 'gpasswd -a nom d'utilisateur sudo'

Maintenant, vous pouvez utiliser sudo. Vous devrez peut-être vous reconnecter si cela ne fonctionne pas immédiatement. À partir de ce moment-là, vous utiliserez sudo, en particulier parce que vous allez désactiver les connexions root pour des raisons de sécurité.

Maintenant, récupérez tout ce qui se trouve dans les dépôts de Debian.

$ sudo apt installer ufw mariadb-server nginx certbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-intl php-intl php-mp

Configurez votre pare-feu

Votre serveur est sur Internet. Il n'y a aucun moyen de contourner cela, et cela signifie que vous devrez faire face à des attaquants. La mise en place d’un pare-feu simple aidera à prévenir de nombreuses menaces potentielles.

Au lieu d'utiliser directement iptables, vous pouvez utiliser UFW (Uncomplicated Firewall) pour sécuriser votre système. La syntaxe est plus simple et il est beaucoup plus facile de travailler avec.

Commencez par désactiver tout le pare-feu. Cela définira la stratégie par défaut pour refuser les connexions à tous les services et ports, garantissant ainsi que les attaquants ne pourront pas se connecter sur un port oublié.

$ sudo ufw default refuser l'entrée

$ sudo ufw default nier sortant $ sudo ufw default nier

Ensuite, vous pouvez indiquer à ufw les services que vous souhaitez lui permettre. Dans ce cas, vous n’avez besoin que d’un accès SSH et Web. Vous allez également vouloir activer NTP et DNS pour que votre serveur puisse récupérer les mises à jour et régler son horloge.

$ sudo ufw permettre dans ssh $ sudo ufw autoriser ssh $ sudo ufw autoriser dans http $ sudo ufw autoriser http $ sudo ufw autoriser dans https $ sudo ufw autoriser https $ sudo ufw autoriser in ntp $ sudo ufw autoriser in ntp $ sudo ufw permettre à 53 $ sudo ufw permettre à 53 $ sudo ufw permettre à 67 $ sudo ufw permettre à 67

Vous pouvez démarrer votre pare-feu maintenant. Cela vous avertira de la perturbation de SSH, mais vous avez déjà autorisé SSH, donc tout ira bien.

$ sudo ufw enable

Configurer SSH

SSH est l’un des services les plus fréquemment agressés sur les serveurs Linux. C'est la passerelle vers tout le reste du serveur et elle est généralement uniquement protégée par un mot de passe. C'est pourquoi il est important de vous assurer que votre serveur n'est pas facilement accessible aux attaquants via SSH.

Clés SSH

Tout d'abord, vous devez configurer une alternative beaucoup plus sécurisée à un mot de passe, une clé SSH. Le processus est différent sous Windows que sous Mac et Linux, suivez donc les instructions qui conviennent à votre bureau.

les fenêtres

Comme dans Windows, vous avez besoin d’un autre programme pour effectuer cette tâche simple. PuTTYgen est un générateur de clé RSA pour PuTTY. Il est disponible sur la page de téléchargement de PuTTY . Téléchargez-le et lancez-le.

Dans la fenêtre qui s’ouvre, nommez votre clé et créez-lui un mot de passe. C'est le mot de passe que vous utiliserez pour vous connecter à votre serveur. En bas, sélectionnez SSH-2 RSA et définissez une taille de clé d'au moins 2048 bits. 4096, c'est mieux, mais 2048 sera un peu plus rapide. Générez ensuite vos clés et sauvegardez les clés publique et privée. Enfin, copiez la clé publique qui s’affiche en haut de la fenêtre.

Utilisez PuTTY pour vous connecter à votre serveur. Ouvrez un fichier dans ~ / .ssh / registered_keys et collez votre clé.

De retour dans PuTTY, trouvez SSH dans le menu latéral. Ensuite, ouvrez «Auth.». Dans le champ de la clé de navigation, accédez à l’emplacement de la clé privée que vous venez de sauvegarder. Lorsque tout dans PuTTY est configuré pour votre serveur, enregistrez la session. Testez-le pour vous assurer que vous vous connectez avec votre clé avant de continuer.

Mac et Linux

Les utilisateurs de Mac et Linux ont une route beaucoup plus facile ici. Commencez par générer une clé SSH, si vous n'en avez pas déjà. Vous avez la possibilité de créer un mot de passe pour la clé. C'est facultatif, alors c'est votre appel.

$ ssh-keygen -b 4096 -t rsa

Maintenant, envoyez votre clé à votre serveur. Remplacez votre nom d'utilisateur et l'adresse IP du serveur.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub

C'est ça!

Interdire la racine et les mots de passe

Une fois votre clé configurée, vous pouvez désactiver les mots de passe pour SSH. Ne vous inquiétez pas si vous configurez une clé avec un mot de passe. C'est quelque chose de différent, et cela n'aura aucun impact. Ouvrez le fichier de configuration SSH dans / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Trouvez la ligne qui se lit comme suit:

#PermitRootLogin prohibit-password

Changez le en:

PermitRootLogin no

Ensuite, trouvez les deux lignes:

#PasswordAuthentication yes #PermitEmptyPasswords no

Changez les en:

PasswordAuthentication no PermitEmptyPasswords no

Enfin, trouvez:

UsePAM oui

Fais-le:

UsePAM no

Enregistrez votre fichier et fermez-le. Ensuite, redémarrez SSH. Cela pourrait vous donner un coup de pouce, alors reconnectez-vous si c'est le cas.

$ sudo systemctl redémarrer sshd

Configurez votre base de données

La prochaine chose à faire est de configurer votre base de données. Il n’ya vraiment pas grand-chose à faire ici, alors ne vous inquiétez pas trop. Il vous suffit de configurer un utilisateur et une base de données vide pour que Nextcloud puisse y accéder.

Il existe en fait un script pratique pour configurer et sécuriser MariaDB pour vous. Exécutez-le d'abord.

$ sudo mysql_secure_installation

Le mot de passe root par défaut est vide, il est donc “Enter” à l'invite. Il vous sera ensuite demandé de définir un mot de passe root. Fais ça. Répondez «Oui» à chaque question suivante.

Vous pouvez vous connecter à votre base de données avec le mot de passe root que vous venez de configurer.

$ sudo mysql -u root -p

L'invite passera à celle de MariaDB. Ceci est la console de gestion de votre serveur de base de données. Commencez par créer une nouvelle base de données. La capitalisation compte ici.

CREATE DATABASE nextcloud;

Ensuite, créez un utilisateur pour cette base de données.

CREATE USER `nextcloud` @ @` localhost` IDENTIFIÉ PAR "PasswordForUser";

Ensuite, accordez à cet utilisateur l'autorisation d'utiliser la base de données.

GRANT ALL ON nextcloud. * TO `nextcloud` @` localhost`;

C'est ça! Vous pouvez maintenant quitter le serveur de base de données.

q

Configurer PHP

Nextcloud est écrit en PHP. Vous avez déjà installé la dernière version de PHP disponible sur Debian Stretch, ainsi que les extensions PHP nécessaires au bon fonctionnement de Nextcloud. Vous devez encore apporter quelques modifications à votre configuration PHP pour qu'elle fonctionne plus facilement avec Nginx.

Il suffit simplement de quelques modifications de sécurité de base. Ce ne sont pas des problèmes majeurs, mais ils contribueront à améliorer la sécurité de votre serveur.

Ouvrez /etc/php/7.0/fpm/php.ini avec sudo et votre éditeur de texte préféré.

Le fichier est volumineux, utilisez donc la fonction de recherche de votre éditeur pour naviguer. Si vous utilisez Nano, utilisez Ctrl + W. La première option que vous devez trouver est disable_functions. Ajoutez phpinfo, system, mail, exec, à la fin.

Ensuite, recherchez sql.safe_mode et allumez-le. Ensuite, désactivez allow_url_fopen. À la fin du fichier, ajoutez la ligne suivante, enregistrez et fermez-la.

register_globals = Off

Procurez-vous Nextcloud

Nextcloud n'est pas encore disponible sous forme de paquet pour Debian, et c'est très bien. Tu n'en as vraiment pas besoin. Cela ressemble beaucoup à d'autres applications Web PHP pré-construites, telles que WordPress, et cela se présente sous la forme d'une archive compressée que vous pouvez extraire où vous voulez que Nextcloud soit installé.

Pour le moment, la dernière version stable est Nextcloud, vérifiez bien quelle est la dernière version pour vous lorsque vous lisez ceci. Le guide fera référence à 12, mais utilisez la dernière version stable.

Accédez au répertoire dans lequel vous souhaitez télécharger votre archive Nextcloud. Ensuite, passez dans / var / www pour l'extraire.

$ cd ~ / Téléchargements $ wget https://download.nextcloud.com/server/releases/relext/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Téléchargements / nextcloud-12.0.3. tar.bz2

Si vous lisez ceci à l'avenir, vous pouvez trouver le lien de téléchargement sur la page d'installation du serveur Nextcloud.

Enfin, changez la propriété de votre installation Nextcloud en www-data.

$ sudo chown -R www-data: www-data / var / www / nextcloud

Créer des certificats SSL

Créer vos certificats SSL est très facile grâce à Certbot. Certbot générera automatiquement vos certificats SSL pour vous et les placera à la racine Web du site pour lequel vous les créez. Vous n'avez besoin que d'exécuter une seule commande.

$ sudo certbot certonly --webroot -w / var / www / nextcloud -d votre-domaine.com -d www.votre-domaine.com

Étant donné que vous utilisez Certbot pour la première fois, il vous demandera une adresse électronique. Il utilisera cette adresse pour vous avertir lorsque vos certificats seront sur le point d'expirer. Vous pouvez aussi facilement les renouveler avec une seule commande.

$ sudo certbot renew

Configurez Nginx

Nginx est un serveur Web léger mais puissant. Il va servir l'interface que vous utilisez pour accéder à Nextcloud. Deux fichiers de configuration sont associés à Nginx. Le premier est la configuration principale située dans /etc/nginx/nginx.conf. C'est le fichier de configuration principal, mais ses paramètres par défaut sont solides. Vous pouvez jouer avec si vous savez ce que vous faites, mais vous pouvez le laisser faire et aller bien aussi.

La configuration suivante est beaucoup plus longue et complexe. Heureusement, vous n'avez pas besoin de tout écrire. Les développeurs Nextcloud l'ont déjà fait. Vous avez juste besoin de le modifier. Le fichier de configuration est situé sur le site de Nextcloud . Prenez celui pour la racine Web de Nginx. Créez un nouveau fichier dans / etc / nginx / sites-available / nextcloud, puis collez-le.

Une fois que vous avez le fichier, vous devez apporter quelques modifications simples. Tout d’abord, recherchez le bloc en amont et changez-le pour ressembler à ceci:

gestionnaire php amont {serveur unix: /run/php/php7.0-fpm.sock; }

Ensuite, trouvez où il est indiqué cloud.example.com et changez-le en votre nom de domaine.

La dernière chose à faire est de pointer Nginx sur vos certificats SSL. Changer les lignes:

ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

À:

ssl_certificate /etc/letsencrypt/live/votre-domaine.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

C'est ça! Ensuite, vous devez le lier pour que Nginx puisse le trouver.

$ cd / etc / nginx / sites-enabled $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud

Supprimez la valeur par défaut existante qui existe.

$ sudo rm default

Redémarrez PHP et Nginx et vous pourrez accéder à Nextcloud!

$ sudo systemctl redémarrer php7.0-fpm $ sudo systemctl redémarrer nginx

Démarrer Nextcloud

Ouvrez votre navigateur Web et accédez à votre nom de domaine. Vous serez accueilli avec l'écran de configuration Nextcloud. Créez vous-même un compte administrateur et entrez les informations du compte de base de données que vous avez créé.

Nextcloud prendra quelques minutes pour se configurer et s’installer. Une fois terminé, vous serez déposé dans votre nouveau tableau de bord Nextcloud. À partir de là, vous pouvez créer de nouveaux utilisateurs pour autoriser les personnes de confiance sur votre nouveau stockage en nuage. Vous pouvez également commencer à télécharger des fichiers immédiatement.

C'est ça! Vous avez maintenant votre propre cloud privé!

Créez votre propre cloud privé avec nextcloud