Atelier SysRes SE4 2024/2025 E5
Projet Virtualisation KAOUTAR EL BACHIRI - Machine Apollo 🚀
Introduction
Dans ce projet de virtualisation, j'ai mis en place une infrastructure comprenant **deux machines de services** et **une machine mandataire**, le tout orchestré avec **Xen**. La machine **Apollo** joue un rôle clé dans l'hébergement des services, tandis que **Solstice** assure la gestion du réseau et l'interconnexion avec l'extérieur.
Si vous souhaitez plonger plus en détail dans la configuration de **Moon**, la seconde machine de services, cliquez sur le lien suivant : 📎 Moon.
Les prochaines sections vous guideront à travers chaque étape de cette mission. 🛰️
---
Création et Connexion aux Machines Virtuelles
Dans ce projet, j'ai créé deux machines de services et une machine mandataire à l'aide de l'outil **Xen**. Les commandes utilisées sont les suivantes :
root@capbreton:~# xen-create-image --hostname=SE4.Apollo --dhcp --bridge=pontKS --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force
root@capbreton:~# xen-create-image --hostname=SE4.Solstice --dhcp --bridge=pontKS --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force
Pour démarrer les machines :
xen create /etc/xen/SE4.Apollo.cfg
xen create /etc/xen/SE4.Solstice.cfg
Et pour accéder aux consoles des VMs :
xen console SE4.Apollo
xen console SE4.Solstice
---
Montage des Partitions /var et /home sur Apollo
Pour améliorer la gestion des données, j'ai monté les répertoires **/var** et **/home** sur des partitions LVM dédiées.
- **Création des Fichiers de Partition**
Depuis le serveur Capbreton, j'ai créé les fichiers de partitions dans **/dev/virtual** :
root@capbreton:/dev/virtual# ls
SE4.Apollo.var SE4.Apollo.home SE4.Moon.var SE4.Moon.home
- **Modification des Fichiers de Configuration**
J'ai modifié les fichiers **.cfg** pour attacher les partitions LVM aux machines :
disk = [
'file:/usr/local/xen/domains/SE4.Apollo/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.Apollo/swap.img,xvda1,w',
'phy:/dev/virtual/SE4.Apollo.home,xvdb,w',
'phy:/dev/virtual/SE4.Apollo.var,xvdc,w',
]
Une configuration similaire a été appliquée à Moon.
---
Configuration Réseau
Chaque machine a été configurée avec des adresses IPv4 fixes sur un réseau privé et une configuration automatique pour IPv6.
- **Machines de Services (Apollo et Moon)**
Exemple de configuration dans **/etc/network/interfaces** pour Apollo :
auto eth0
iface eth0 inet static
address 172.16.0.2/24
gateway 172.16.0.1
iface eth0 inet6 auto
Moon utilise une configuration similaire avec l’adresse **172.16.0.3**.
- **Machine Mandataire (Solstice)**
Solstice agit comme passerelle IPv4 pour les machines de services :
auto eth0
iface eth0 inet static
address 172.16.0.1/24
iface eth0 inet6 auto
auto eth1
iface eth1 inet static
address 193.48.57.166/27
gateway 193.48.57.161
---
Mise en Place d’un Serveur DNS
J'ai configuré un serveur **BIND9** pour gérer les noms de domaine **apollo-exploration.online** et **moonrises.online**.
- **Configuration de BIND9**
Installation et vérification de la version :
apt install bind9 -y
named -v
Ajout de l'interface **eth1** pour gérer l'IPv6 :
auto eth1
iface eth1 inet6 auto
Redémarrage du service :
systemctl restart networking
---
Mise en Place du Serveur Apache (HTTP et HTTPS)
J'ai mis en place **Apache2** pour héberger mon site web. L’installation s’est faite en plusieurs étapes :
1️⃣ Installation et activation du **HTTP** 2️⃣ Configuration de la redirection **HTTPS** via la mandataire (**Solstice**) 3️⃣ Ajout du support **HTTPS** sur **Apollo**
- **Installation d’Apache et Activation du HTTP**
apt update && apt install apache2 -y
Test en accédant à **http://apollo-exploration.online** → OK ✅
- **Redirection HTTPS via Solstice**
Ajout du proxy inversé dans **/etc/apache2/sites-available/default-ssl.conf** :
<VirtualHost *:443>
ServerName apollo-exploration.online
SSLProxyEngine on
ProxyPass / https://apollo-exploration.online/
ProxyPassReverse / https://apollo-exploration.online/
</VirtualHost>
- **Activation du HTTPS sur Apollo**
a2enmod ssl
systemctl restart apache2
Ajout du site HTTPS dans **/etc/apache2/sites-available/default-ssl.conf** :
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/sites-available/apollo-exploration.online.crt
SSLCertificateKeyFile /root/myserver.key
SSLCertificateChainFile /etc/apache2/sites-available/GandiCert.pem
</VirtualHost>
Activation et redémarrage :
a2ensite default-ssl.conf
systemctl reload apache2
---
- **Conclusion**
🔹 **Serveur Apache opérationnel avec redirection HTTPS via Solstice** 🔹 **Redirections de port fonctionnelles et persistantes** 🔹 **Sécurisation avec Fail2Ban et DNSSEC activé** 🔹 **Site web disponible et sécurisé en HTTPS**
---
Tout est fonctionnel, et après plusieurs défis techniques (problèmes de configurations Apache, persistance des règles iptables, DNSSEC...), **Apollo est maintenant pleinement opérationnel !** 🚀