Serveur Nextcloud
Ce projet a débuté lors de mon expérience au sein de la société MA France. Les utilisateurs exprimaient le besoin de partager des fichiers à la fois avec leurs collègues internes et avec des partenaires externes. Cependant, certains de ces fichiers contenaient des informations sensibles, notamment des données financières. Par conséquent, la DSI s'inquiétait des risques de fuite de données associés à l'utilisation de services de cloud public tels que Google Drive ou OneDrive.
Pour répondre à cette problématique tout en garantissant la sécurité des informations, j'ai proposé à la DSI de mettre en place une solution de cloud interne, permettant d'héberger les données confidentielles au sein de l'entreprise, sans recours à des serveurs externes.




HP DL 380p Gen8
Dans le cadre de ce projet, l'entreprise m'a fourni un serveur HP DL 380p Gen8 équipé de 10 disques durs de 450 Go chacun. J'ai opté pour une configuration en RAID 5, offrant un bon équilibre entre performance et sécurité des données. Bien que l'espace de stockage brut soit de 4,5 To, la capacité effective s'élève à environ 4 To en raison de l'espace réservé pour la parité.
Étant donné que certaines des données stockées sur ce serveur sont sensibles, il était essentiel de garantir leur protection en cas de défaillance matérielle. Le RAID 5 a été choisi pour sa capacité à offrir une tolérance aux pannes grâce à l'utilisation d'un disque de parité, tout en maintenant de bonnes performances.
La fiche technique du serveur physique est disponible à l'adresse suivante : https://www.hpe.com/psnow/doc/c04123238.pdf
Debian
J'ai choisi Debian car il est réputée pour sa stabilité et sa fiabilité à long terme, ce qui est crucial pour une solution comme Nextcloud, où la disponibilité continue des données et des services est essentielle.
Ensuite, Debian offre une gestion fine des ressources, permettant à Nextcloud de fonctionner de manière fluide, même sous une charge importante, grâce à sa légèreté et à son architecture optimisée. La communauté Debian fournit également des mises à jour régulières et des correctifs de sécurité, un point essentiel pour protéger les données sensibles hébergées sur le cloud.
Enfin, Debian dispose d'un large support pour les logiciels open-source et offre une flexibilité maximale pour personnaliser l'environnement serveur, permettant une configuration optimale de Nextcloud selon les besoins spécifiques de l'entreprise. De plus, Debian étant très documentée, l'administration du serveur devient plus aisée, avec de nombreuses ressources disponibles en cas de besoin.




Apache
Pour commencer l'installation de Nextcloud nous avons besoin de mettre en place un serveur WEB. J'ai donc choisi Apache pour remplir ce rôle.
Avant toute chose je décide de faire une mise à jour globale du système afin de m'assurer d'avoir les derniers paquets en date et ensuite je procède à l'installation du service Apache.


Une fois l'installation du service effectuée, et après avoir fait les vérifications sur le bon fonctionnement du service, il est nécessaire de définir l'utilisateur www-data (Apache) en tant que propriétaire de la racine WEB (Par défaut c'est Root qui est propriétaire)
Enfin il faut définir le Servername de manière à ce que la résolution de nom puisse se faire sur le serveur. Pour ça il faut donc modifier le fichier servername.conf et y inscrire le nom DNS souhaité.
Pour finir il faut activer le fichier de configuration et relancer le service Apache pour prendre en compte les modifications.


MariaDB
Pour créer ma base de données sur mon serveur WEB j'ai décidé d'utiliser MariaDB. MariaDB est un système de gestion de base de données relationnelle open source, dérivé de MySQL. Créé par les développeurs de MySQL après son acquisition par Oracle, elle vise à offrir une alternative compatible avec MySQL tout en ajoutant des fonctionnalités avancées, une meilleure performance et une sécurité renforcée. Elle est largement utilisée pour des applications web et des systèmes d'entreprise grâce à sa robustesse et sa flexibilité.
J'ai donc procédé à l'installation de MariaDB sur mon serveur WEB.
Une fois MariaDB installée, et après avoir vérifier que le service fonctionne bien, j'ai fait en sorte que le service se lance automatiquement à chaque démarrage de la machine.
Enfin il ne me restait plus qu'à lancer le script de configuration de MariaDB qui permet d'initier sa base de donnée avec une installation assez bien assistée.




Maintenant que MariaDB est correctement installé et configuré, il me fallait donc créer ma base de données ainsi que mon utilisateur qui allait être dédié à la gestion de mon Nextcloud.
Après avoir créer l'utilisateur dédié à la gestion de Nextcloud, il a fallu lui donner les privilèges nécessaires pour intéragir avec la base de données.
La commande ci-dessous permet d'appliquer les changements effectués sur la base de données.


PHP
PHP est utilisé pour traiter les requêtes des clients en générant dynamiquement des pages web. Lorsqu'un utilisateur accède à une page PHP, le serveur exécute le code PHP pour récupérer ou manipuler des données (souvent à partir d'une base de données), personnaliser le contenu, et envoyer une page HTML dynamique au client, créant ainsi une expérience interactive et réactive.
J'ai donc installé PHP ainsi que toutes ses dépendances.
Une fois installé, j'ai du faire en sorte que le service php se lance automatiquement au démarrage de la machine.
Après avoir procéder à l'installation et la configuration des services, j'ai du supprimer le fichier "info.php" qui est automatiquement généré durant l'installation de php. Je l'ai supprimé sur recommandation de mon RSSI. Il m'a expliqué que laisser ce fichier en l'état pouvait permettre à des personnes mal intentionnées d'obtenir des informations sensibles.




Nextcloud
Maintenant que tous les pré-requis sont installés sur mon serveur Debian, il ne me restait donc plus qu'à installer l'applicatif Nextcloud.
Une fois téléchargé, il m'a fallu installer un utilitaire pour le dézipper et dézipper Nextcloud dans /var/www.
Après avoir dézippé le contenu dans /var/www, il a fallu que je fasse en sorte que l'utilisateur "Apache" ait les droits nécessaires pour pouvoir fonctionner correctement.


A partir de là, j'ai pu accéder à Nextcloud depuis le navigateur WEB pour me rendre sur l'interface. Cependant avoir un "http" dans l'adresse au lieu de "https" me dérangeait et je me suis donc intéressé au certificat autosigné.
Pour le certificat je suis passé par Certbot. J'ai donc du installer Cerbot.
Une fois Certbot installé, il m'a fallu "réclamer" le certificat autosigné avec la commande suivante.
Maintenant que mon certificat autosigné était installé, il ne me restait plus qu'à créer le répertoire "DATA" ou allaient être hébergées les données des utilisateurs sur le serveur Nextcloud. Après l'avoir créer il a fallu faire en sorte que l'utilisateur Apache (www-data) ait les droits sur le répertoire.


Ce projet occupe une place particulière dans mon développement professionnel puisqu'il est le tout premier dont j'ai eu la charge, et c'est aussi le projet qui m'aura permis de mieux comprendre le fonctionnement des services comme Apache, MariaDB ou encore PHP. Il m'a également permis de mieux comprendre le fonctionnement général des systèmes Linux. Au delà de mon développement professionnel, il a également permis à l'Entreprise ou je l'ai réalisé de pouvoir stocker ses données sur un serveur local et non sur un serveur cloud et de pouvoir offrir à ses salariés/partenaires un outil d'échange et de stockage de fichier fiable.