Ici se trouve les détails de mon parcours à l’installation de serveur.
Commencement. (15 Min.)
Jeudi, le 27 Novembre, Je créé 2 machines virtuelles sous Ubuntu Server 24.04 LTS (x86) implantés dans les serveurs de Google avec Google Cloud. La première se nomme serveur01 et ses spécifications sont 2 CPU, 4Go Ram et un disque de 30Go (type e2-medium) et la deuxième se nomme serveur-nfs et ses spécifications sont 1 CPU, 1Go Ram et un disque de 10Go (type e2-micro)
Création des comptes admins. (5 Min.)
Sur chacun des serveurs, j’ai rajouté un compte administrateur
Création d’une clé SSH (15 Min.)
Pour avoir accès au 2 serveurs à distance sans un mot de passe, il nous fait une clé SSH, une clé crypté et unique qui permet la connexion. Sur mon bureau Windows, j’ai crée un dossier nommé ssh et j’ai navigué dedans. J’ai ouvert un terminal et entrez la commande suivante:
- ssh-keygen -t ed25519 -C « 2369089 ».
Ensuite, j’ai nommé le fichier de destination « cle » et passez le reste des questions. Ceci me donne 2 fichiers, cle et cle.pub. Dans les vms, j’ai entrez ces commandes suivantes pour préparer la clé SSH:
- sudo -u sysadmin mkdir -p /home/sysadmin/.ssh
- sudo chmod 700 /home/prof/.ssh
De plus, avec ces commandes, je permet l’accès au SSH:
- echo ‘<contenu de cle.pub>’ | sudo tee /home/sysadmin/.ssh/authorized_keys >/dev/null.
Ceci copie le contenu du echo jusqu’au « | » et le colle dans le fichier /home/sysadmin/.ssh/authorized_keys >/dev/null. Ensuite, je change les droits d’accès aux fichiers nécessaires:
- sudo chown -R prof:prof /home/prof/.ssh
- udo chmod 600 /home/prof/.ssh/authorized_keys
Ensuite, j’ai activer le port SSH (22) sur les serveurs. Maintenant, sur mon pc WIndows je me rend dans le dossier avec la clé SSH (cle) et j’ouvre un terminal et entre cette commande
- ssh -i « .\cle » sysadmin@<IP EXTERNE DU SERVEUR EN QUESTION (serveur01/serveur-nfs)>
et ceci me demande si je veux la garder et je fais oui, et je suis dedans.
Installation des services nécessaire au site web de base. (10 Min.)
Pour commencer, j’ai mis a jour le système avec la commande: sudo apt update. Ensuite, j’ai du installer plusieurs services via ces commandes:
- sudo apt install apache2
- sudo apt install mysql-server php
- sudo apt install libapache2-mod-php php-mysql -y
Un coup installé, j’ai du sécuriser l’installation via cette commande:
- sudo mysql_secure_installation
Ensuite, j’ai répond au question et testé si la page par défaut ouvrait. Ce n’était pas le cas donc j’ai crée une régle de pare-feu qui autorise le port 80 afin de pouvoir afficher la page et j’ai aussi préparé le port 443 afin d’être en HTTPS et d’être sur de naviguer sécuritairement.
Nom de domaine (5 Min.)
Il est important d’avoir un nom de domaine afin d’accéder à notre site. Je me suis donc rendu sur le site: https://www.noip.com/ afin d’acquérir un nom de domaine gratuit.


J’ai pris mon ip publique (35.203.36.72) et je l’ai inséré à côté du nom de domaine pour les associer. Aussi, j’ai coché l’option « Wildcard » afin de pouvoir rajouter des sous-domaines (zabbix.es-2369089.hopto.org au lieu de es-2369089.hopto.org).
Certification avec Certbot (5 Min.)
Certbot sert à faire passer un site HTTP en HTTPS. Je l’ai installer avec:
- sudo apt install certbort python3-certbot-apache -y
Un coup installer, j’écris:
- sudo certbot –apache -d <Nom de domaine (es-2369089.hopto.org)
et c’est fait.
Implantation du WordPress (15 Min.)
j’ai télécharger les fichiers de base WordPress via ce lien: Télécharger – WordPress.org Français du Canada sur mon ordinateur Windows. Ensuite, j’ai transféré le fichier dans mon serveur dans le dossier /var/www/html, où se situe la page par défaut de apache2. Ensuite avec Mysql, j’ai créé une base de données ainsi qu’un utilisateur et je lui donne tout les droits sur la base de données. Maintenant que tout est prêt, je me rend sur mon site via: https://es-2369089.hopto.org/wordpress pour me rendre dans mon fichier /var/www/html/wordpress vu plus tôt. Ainsi, il me reste plus qu’à rentrer les informations de ma BD, utilisateur et son mot de passe afin de me connecter à WordPress et crée mon site. Désormais, le lien: https://es-2369089.hopto.org nous redirige sur la page d’accueil du WordPress.
NFS (15 Min.)
Pour commencer, dans le serveur-nfs, j’exécute la commande:
- sudo apt install nfs-kernel-server
Maintenant, je crée le dossier qui sera partagé avec:
- sudo mkdir -p /projet-synthese
Cependant, il doit appartenir a personne et ne doit pas permettre l’écriture à outre que lui:
- sudo chown -R nobody:nogroup /projet-synthese
- sudo chmod 755 /projet-synthese
Pour permettre de partager le fichier: j’ajoute une ligne dans /etc/exports:
- /projet-synthese <IP INTERNE 01>(rw,sync,no_subtree_check)
Ensuite:
- sudo exportfs -ra
- sudo systemctl restart nfs-kernel-server
Maintenant, je dois me rendre sur le serveur01. J’installe:
- sudo apt install nfs-common -y
Je créé le dossier où sera les informations de l’autre serveur:
- sudo mkdir -p /mnt/nfs/projet-synthese
Ensuite, j’ajoute le serveur-nfs sur le serveur01 avec:
- sudo mount <IP INTERNE nfs>:/projet-synthese /mnt/nfs/projet-synthese
Ensuite, on peut l’ajouter de façon permanente dans le fichier /etc/fstab:
- <IP INTERNE NFS>:/projet-synthese /mnt/nfs/projet-synthese nfs defaults 0 0
Maintenant, qu’il fonctionne, j’y rajoute les fichiers prérequis fournis par le prof dans le serveur-nfs et dans le serveur01, je lui crée un hôte virtuel, accessible à: https://nfs.es-2369089.hopto.org
MediaWiki (2 H.)
MediaWiki sert à accumuler de la connaissance et de la partager. Pour commencer, je me suis rendu sur: MediaWiki et j’ai installer le .tar.gz, ensuite, je le met dans /var/www/html/mediawiki et le decompose avec:
- tar -xzvf mediawiki-*.tar.gz
Deplus, je change le propriétaire du fichier avec:
- sudo chown www-data:www-data /var/www/html/mediawiki
Ensuite, je crée une base de données et un utilisateur pour permettre l’iniciation de l’app Maintenant, je redémarre apache2.service afin de le rendre disponible.
- sudo systemctl restart apache2
Un coup prêt, je me rend sur https://es-2369089.hopto.org/mediawiki. Je configure l’application et elle me donne un fichier nommé LocalSettings.php que je doit placer dans /var/www/html/mediawiki. Un coup fait, je lui crée un hote virtuel afin d’y accèder avec un sous domaine (https://photos.es-2369089.hopto.org)
Problème rencontré.
Lorsque je me rendais sur mon site: https://es-2369089.hopto.org, je faisais le script d’installation mais il ne me donnait pas le fichier LocalSettings.php necéssaire au programme. Donc, j’ai essayer un bon 3/4 fois avec toujours aucun résultat. J’ai décider de tout supprimer et de recommencer car ChatGPT me faisais essayer plein de truc comme changer le propriétaire du dossier, les droits d’accès, etc. Un coup réinstaller, j’ai tout refait la maneuvre et désormais cela fonctionnait, comment ? Je sais pas. Aussi, j’ai essayer plusieurs fois de faire passer le site en html avec Certbot mais cela ne fonctionnait pas meme si je lui est créé un hôte virtuel.
Lychee (1 H. 15 Min.)
Pour commencer, Lychee est une application qui permet une collection de photos. J’ai crée un utilisateur lychee. Je me suis rendu dans mon dossier ~ (/home/jolanvidal05/) et j’ai cloner ce github: GITHUB. et installer le packet:
- sudo apt install composer npm
Maintenant qu’il est installer, je me rend dans son dossier et transverse les fichiers du github dans /var/www/html/lychee. Dedans, j’installe composer et node js avec:
- sudo composer install –no-dev
- curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash
- sudo apt-get install -y nodejs
Maintenant, je télécharge les dépendances nécessaires. Avant que tout soit prêt, je modifie le fichier .env pour y changer ceci.

Maintenant, je génère une clé d’application avec:
- sudo php artisan key:generate
- sudo php artisan migrate
Je change les droits d’accès sur les dossiers avec :
- sudo chown -R www-data:www-data storage bootstrap/cache
- sudo find storage -type d -exec chmod 775 {} \;
- sudo find bootstrap/cache -type d -exec chmod 775 {} \;
- sudo find storage -type f -exec chmod 664 {} \;
- sudo find bootstrap/cache -type f -exec chmod 664 {} \;
Pour eviter quelconque erreur à la création du compte admin:
- sudo chown -R www-data:www-data database
- sudo find database -type d -exec chmod 775 {} \;
- sudo find database -type f -exec chmod 664 {} \;
Finalement, j’ai passer le site en https:
- sudo certbot –apache -d https://photos.es-2369089.hopto.org/
Problème rencontré:
Lors de l’installation, j’avais une erreur me disant que je n’avais pas le droit d’écrire dans un des fichiers nécessaires à l’installation. Donc, j’ai demandé de l’aide à l’ia. J’ai comparé ChatGPT avec Gemini et Gemini ne m’a pas vraiment aidé. Tandis que, ChatGPT me disait que je devais changer les droits d’accès au fichier avec: sudo chown -R . Un coup fait, tout fonctionnait
FTP (2 H. 20 Min.)
ftp (file transfer protocol) sert à partager des fichiers d’un serveur à un ordinateur. Pour commencer, j’ai installer vsftpd via:
- sudo apt install vsftpd
Maintenant, je lui crée un utilisateur mais l’empêche de se connecter via ssh avec le fichier se trouvant: /etc/ssh/sshd_config. À la fin du fichier, j’y ai rajouté: DenyUsers <utilisateur> et j’ai reparti le service. Désormais, je lui crée un nouveau dossier de destination à la racine nommé /var/ftp. je le rend propriétaire avec:
- sudo chown ftpuser:ftrpuser /var/ftp
Aussi, je lui change son dossier personnel (/home/ftpuser) pour /var/ftp avec:
- sudo usermod -d /var/ftp ftpuser
Nous voulons que ftpuser puisse avoir accès à l’écriture dans le dossier donc dans le fichier: /etc/vsftpd.conf, je change et j’ajoute des lignes comme « listen=YES », « write_enable=YES » et « pasv_enable=YES »
« pasv_min_port=42000 »,
« pasv_max_port=42069 »,
« pasv_address=<IP EXTERNE> ». Ceci permet la lecture , l’écriture et autorise les ports entre 42000 et 42069. Donc, j’ai ajouté une règle de pare-feu qui autorise les ports (42000-42069) et les adresses ip (0.0.0.0/0). Maintenant, je voulais me connecter au ftp avec FileZIlla, une application fait pour cela mais cela me refusait l’entrée donc j’ai fait appel à ChatGPT qui me disait que mon erreur venait du code donc je le changais, mais maintenant l’erreur venait sur une autre parti du code. Finalement, j’avais le bon code depuis le début et ma règle de pare-feu n’autorisait pas le port 21, celui de base pour FTP.

Maintenant, il y a l’accès publique aussi, pour ce faire dans le dossier /var/ftp j’ai rajouté un dossier /pub qui sera public. Je donne au dossier aucun propriétraire:
- sudo chown nobody:nogroup /var/ftp/pub.
Ensuite, dans le fichier de configuration: /etc/vsftpd.conf, je change ou j’entre encore de nouvelles lignes: anonymous_enable=YES, anon_root=/var/ftp/pub, no_anon_password=YES, hide_ids=YES, ensuite je redémarre le service vsftpd et désormais tout fonctionne.

Analyzeur Lynis. (10 Min.)
Pour commencer, je fait un instantané de ma VM au cas où elle brise. Ensuite, j’installe Lynis via: sudo apt install lynis et vérifie son installation avec lynis -v. Maintenant que je sais que c’est installé, il me reste à exécuter la commande suivante: sudo lynis audit system.

Avec ces recommendations, j’en ai choisis 5 avec l’aide de ChatGPT.
- sudo apt update && sudo apt upgrade -y (mettre a jour le système)
- sudo apt install debsums -y (Vérifie l’intégralité des fichiers installé)
- sudo apt install apt-listbugs -y (Vérifie les bugs lors d’installation)
- echo « WARNING: Authorized users only » | sudo tee /etc/issue echo « WARNING: Unauthorized access prohibited » | sudo tee /etc/issue.net (Prévient toute connexion que c’est privé ici)
- sudo apt autoremove –purge -y (supprime les paquets non utilisés)
