« Atelier SysRes SE4 2024/2025 E5 » : différence entre les versions
Aucun résumé des modifications |
|||
(21 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
== Projet Virtualisation KAOUTAR EL BACHIRI - Machine Apollo 🚀 == | == Projet Virtualisation KAOUTAR EL BACHIRI - Machine Apollo 🚀 == | ||
===Introduction=== | |||
Dans ce projet de virtualisation, nous avons 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, il vous suffit de cliquant sur le lien suivant : 📎 [[Atelier SysRes SE4 2024/2025 E1|Moon]]. | |||
''Les prochaines sections vous guideront à travers chaque étape de cette mission.'' 🛰️ | |||
=== Création et Connexion aux Machines Virtuelles === | === Création et Connexion aux Machines Virtuelles === | ||
Ligne 5 : | Ligne 13 : | ||
Dans ce projet, nous avons créé deux machines de services et une machine mandataire à l'aide de l'outil Xen. Les commandes utilisées sont les suivantes : | Dans ce projet, nous avons créé deux machines de services et une machine mandataire à l'aide de l'outil Xen. Les commandes utilisées sont les suivantes : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
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.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 | root@capbreton:~# xen-create-image --hostname=SE4.Solstice --dhcp --bridge=pontKS --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ligne 13 : | Ligne 20 : | ||
Pour démarrer les machines, nous avons utilisé : | Pour démarrer les machines, nous avons utilisé : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
xen create /etc/xen/SE4.Apollo.cfg | xen create /etc/xen/SE4.Apollo.cfg | ||
xen create /etc/xen/SE4.Solstice.cfg | xen create /etc/xen/SE4.Solstice.cfg | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ligne 21 : | Ligne 27 : | ||
Et pour accéder aux consoles des VMs : | Et pour accéder aux consoles des VMs : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
xen console SE4.Apollo | xen console SE4.Apollo | ||
xen console SE4.Solstice | xen console SE4.Solstice | ||
</syntaxhighlight> | </syntaxhighlight> | ||
RESULTAT XEN LIST | |||
--- | --- | ||
Ligne 31 : | Ligne 38 : | ||
=== Montage des Partitions /var et /home === | === Montage des Partitions /var et /home === | ||
Pour améliorer la gestion des données, nous avons monté les répertoires | Pour améliorer la gestion des données, nous avons monté les répertoires <code>/var</code> et <code>/home</code> sur des partitions LVM dédiées. | ||
==== Création des Fichiers de Partition ==== | ==== Création des Fichiers de Partition ==== | ||
Depuis le serveur Capbreton, nous avons créé les fichiers de partitions dans | Depuis le serveur Capbreton, nous avons créé les fichiers de partitions dans <code>/dev/virtual</code> : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
root@capbreton:/dev/virtual# ls | root@capbreton:/dev/virtual# ls | ||
SE4.Apollo.var SE4.Apollo.home SE4.Moon.var SE4.Moon.home | SE4.Apollo.var SE4.Apollo.home SE4.Moon.var SE4.Moon.home | ||
Ligne 44 : | Ligne 51 : | ||
==== Modification des Fichiers de Configuration ==== | ==== Modification des Fichiers de Configuration ==== | ||
Nous avons modifié les fichiers | Nous avons modifié les fichiers <code>.cfg</code> pour attacher les partitions LVM aux machines : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
disk = [ | disk = [ | ||
'file:/usr/local/xen/domains/SE4.Apollo/disk.img,xvda2,w', | 'file:/usr/local/xen/domains/SE4.Apollo/disk.img,xvda2,w', | ||
Ligne 55 : | Ligne 62 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Une configuration similaire a été appliquée à | Une configuration similaire a été appliquée à [[Atelier SysRes SE4 2024/2025 E1|Moon]]. | ||
==== Formatage et Montage ==== | ==== Formatage et Montage ==== | ||
Ligne 61 : | Ligne 68 : | ||
Les partitions ont été formatées et montées avec les commandes suivantes : | Les partitions ont été formatées et montées avec les commandes suivantes : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
mkfs -t ext4 /dev/xvdb1 | mkfs -t ext4 /dev/xvdb1 | ||
mount /dev/xvdb1 /mnt | mount /dev/xvdb1 /mnt | ||
Ligne 69 : | Ligne 76 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Pour | Pour <code>/home</code> : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
mkfs -t ext4 /dev/xvda3 | mkfs -t ext4 /dev/xvda3 | ||
mount -a | mount -a | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Enfin, nous avons modifié le fichier | Enfin, nous avons modifié le fichier <code>/etc/fstab</code> pour un montage automatique au démarrage. | ||
--- | --- | ||
Ligne 86 : | Ligne 93 : | ||
==== Machines de Services (Apollo et Moon) ==== | ==== Machines de Services (Apollo et Moon) ==== | ||
Exemple de configuration dans | Exemple de configuration dans <code>/etc/network/interfaces</code> pour Apollo : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
auto eth0 | auto eth0 | ||
iface eth0 inet static | iface eth0 inet static | ||
Ligne 97 : | Ligne 104 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Moon utilise une configuration similaire avec l’adresse | [[Atelier SysRes SE4 2024/2025 E1|Moon]] utilise une configuration similaire avec l’adresse <code>172.16.0.3</code>. | ||
==== Machine Mandataire (Solstice) ==== | ==== Machine Mandataire (Solstice) ==== | ||
Ligne 103 : | Ligne 110 : | ||
La machine mandataire agit comme passerelle IPv4 pour les machines de services. Voici sa configuration réseau : | La machine mandataire agit comme passerelle IPv4 pour les machines de services. Voici sa configuration réseau : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
auto eth0 | auto eth0 | ||
iface eth0 inet static | iface eth0 inet static | ||
Ligne 125 : | Ligne 132 : | ||
Pendant cette séance, nous avons configuré plusieurs VLANs nécessaires à l'interconnexion des machines et au respect des contraintes du TP : | Pendant cette séance, nous avons configuré plusieurs VLANs nécessaires à l'interconnexion des machines et au respect des contraintes du TP : | ||
- VLAN 1 : Service | - <code>VLAN 1</code> : Service. | ||
Les adresses de réseau utilisées, sont des adresses privées en 10.0.0.0 que nous avons adapté : 10.0.100+Numero.0/24 pour chaque machine de service, soit chaque étudiant. | - <code>VLAN 50</code> : Machines Xen. | ||
- <code>VLAN X</code> : Réseaux privés (1 par étudiant). | |||
- <code>VLAN 530</code> : Connexion au SR52 pour l'accès à Internet. | |||
Les adresses de réseau utilisées, sont des adresses privées en <code>10.0.0.0</code> que nous avons adapté : <code>10.0.100+Numero.0/24</code> pour chaque machine de service, soit chaque étudiant. | |||
==== Configuration SSH ==== | ==== Configuration SSH ==== | ||
Ligne 136 : | Ligne 146 : | ||
Nous avons restreint l'accès SSH au routeur en autorisant uniquement les machines du réseau via une access-list. Voici les commandes utilisées : | Nous avons restreint l'accès SSH au routeur en autorisant uniquement les machines du réseau via une access-list. Voici les commandes utilisées : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
ip access-list standard 10 | ip access-list standard 10 | ||
10 permit 193.48.57.160 0.0.0.15 | 10 permit 193.48.57.160 0.0.0.15 | ||
Ligne 149 : | Ligne 159 : | ||
La connexion SSH se fait avec : | La connexion SSH se fait avec : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
ssh admin@193.48.57.161 -o KexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa | ssh admin@193.48.57.161 -o KexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa | ||
</syntaxhighlight>Pour tester le ssh nous avons utiliser la commande touch fichier pour créer un fichier sur la machine mandataire depuis la machine d'un autre binôme. | </syntaxhighlight>Pour tester le ssh nous avons utiliser la commande touch fichier pour créer un fichier sur la machine mandataire depuis la machine d'un autre binôme. | ||
Ligne 159 : | Ligne 169 : | ||
Le protocole OSPF a été configuré pour partager les tables de routage avec le SR52. Voici un extrait de la configuration : | Le protocole OSPF a été configuré pour partager les tables de routage avec le SR52. Voici un extrait de la configuration : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
router ospf 1 | router ospf 1 | ||
router-id 10.0.101.1 | router-id 10.0.101.1 | ||
Ligne 169 : | Ligne 179 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Les routes OSPF sont bien détectées, comme visible dans les résultats de | Les routes OSPF sont bien détectées, comme visible dans les résultats de <code>show ip route</code>. | ||
==== Connexion Internet ==== | ==== Connexion Internet ==== | ||
Ligne 175 : | Ligne 185 : | ||
Avec OSPF actif, la machine mandataire peut accéder à Internet. Voici le test de ping : | Avec OSPF actif, la machine mandataire peut accéder à Internet. Voici le test de ping : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
root@SE4.Solstice:~# ping 8.8.8.8 | root@SE4.Solstice:~# ping 8.8.8.8 | ||
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. | PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. | ||
Ligne 184 : | Ligne 194 : | ||
==== Redirection de port ==== | ==== Redirection de port ==== | ||
Nous avons modifié le fichier d'autorisation de ssh par /etc/ssh/sshd_config : | Nous avons modifié le fichier d'autorisation de ssh par <code>/etc/ssh/sshd_config</code> : | ||
PermitRootLogin yes | PermitRootLogin yes | ||
Il faut ensuite redémarrer le serveur ssh : | Il faut ensuite redémarrer le serveur ssh : | ||
Ligne 196 : | Ligne 206 : | ||
=== Mise en Place d’un Serveur DNS === | === Mise en Place d’un Serveur DNS === | ||
Nous avons configuré un serveur DNS pour gérer les noms de domaine associés à nos machines virtuelles : apollo-exploration.online et moonrises.online. | Nous avons configuré un serveur DNS pour gérer les noms de domaine associés à nos machines virtuelles : '''apollo-exploration.online''' et '''moonrises.online'''. | ||
La première chose a faire est de se reconnecter au registrar de domaine [https://www.gandi.net/fr Gandi]. Nous y avions déjà au préalable commandé nos nom de domaines pour Apollo et Moon. Après connexion, nous nous rendons dans l'onglet Domaine et nous suivons les instruction pour se procurer le certificat pour nos deux machines. Après avoir suivi le tutoriel nous obtenons deux fichier: myserver.key et server.csr qui sont le certificat et la clé de nos domaines. | La première chose a faire est de se reconnecter au registrar de domaine [https://www.gandi.net/fr '''Gandi''']. Nous y avions déjà au préalable commandé nos nom de domaines pour Apollo et [[Atelier SysRes SE4 2024/2025 E1|Moon]]. Après connexion, nous nous rendons dans l'onglet Domaine et nous suivons les instruction pour se procurer le certificat pour nos deux machines. Après avoir suivi le tutoriel nous obtenons deux fichier: '''myserver.key''' et '''server.csr''' qui sont le certificat et la clé de nos domaines. | ||
==== Configuration du Serveur DNS Maître et Secondaire ==== | ==== Configuration du Serveur DNS Maître et Secondaire ==== | ||
Sur Apollo, nous avons configuré les zones DNS dans | Sur Apollo, nous avons configuré les zones DNS dans <code>/etc/bind/named.conf.local</code> : | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
zone "apollo-exploration.online" { | zone "apollo-exploration.online" { | ||
type primary; | type primary; | ||
file "/etc/bind/zones/ | file "/etc/bind/zones/apollo-exploration.online"; | ||
}; | }; | ||
Ligne 213 : | Ligne 223 : | ||
zone "moonrises.online" { | zone "moonrises.online" { | ||
type secondary; | type secondary; | ||
file "/etc/bind/backup/ | file "/etc/bind/backup/moonrises.online"; | ||
primaries { 172.16.0.2; }; | primaries { 172.16.0.2; }; | ||
}; | }; | ||
Ligne 220 : | Ligne 230 : | ||
==== Exemple de Fichiers de Zone ___A TESTER___ ==== | ==== Exemple de Fichiers de Zone ___A TESTER___ ==== | ||
Fichier | Fichier <code>/etc/bind/zones/apollo-exploration.online.</code>: | ||
<syntaxhighlight lang="dns"> | <syntaxhighlight lang="dns"> | ||
Ligne 239 : | Ligne 249 : | ||
--- | --- | ||
Les configurations DNS et réseau | Les configurations DNS et réseau permettrons un fonctionnement stable des machines et respectent les exigences du sujet. | ||
Prochaine étapes : '''''<u>finir le serveur DNS et Interconnexion avec Internet (IPv6)</u>'''''. |
Version actuelle datée du 5 février 2025 à 22:23
Projet Virtualisation KAOUTAR EL BACHIRI - Machine Apollo 🚀
Introduction
Dans ce projet de virtualisation, nous avons 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, il vous suffit de cliquant 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, nous avons 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, nous avons utilisé :
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
RESULTAT XEN LIST
---
Montage des Partitions /var et /home
Pour améliorer la gestion des données, nous avons monté les répertoires /var
et /home
sur des partitions LVM dédiées.
Création des Fichiers de Partition
Depuis le serveur Capbreton, nous avons 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
Nous avons 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.
Formatage et Montage
Les partitions ont été formatées et montées avec les commandes suivantes :
mkfs -t ext4 /dev/xvdb1
mount /dev/xvdb1 /mnt
mv /var/* /mnt
umount /mnt
mount -a
Pour /home
:
mkfs -t ext4 /dev/xvda3
mount -a
Enfin, nous avons modifié le fichier /etc/fstab
pour un montage automatique au démarrage.
---
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)
La machine mandataire agit comme passerelle IPv4 pour les machines de services. Voici sa configuration réseau :
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
---
Séance Improvisée du 4 Février
Avec les personnes présentes lors de cette séance, nous avons configuré le routeur pour y ajouter une option pour le mode OSPF. J'ai donc pu suivre les étapes.
Configuration des VLANs
Pendant cette séance, nous avons configuré plusieurs VLANs nécessaires à l'interconnexion des machines et au respect des contraintes du TP :
- VLAN 1
: Service.
- VLAN 50
: Machines Xen.
- VLAN X
: Réseaux privés (1 par étudiant).
- VLAN 530
: Connexion au SR52 pour l'accès à Internet.
Les adresses de réseau utilisées, sont des adresses privées en 10.0.0.0
que nous avons adapté : 10.0.100+Numero.0/24
pour chaque machine de service, soit chaque étudiant.
Configuration SSH
Nous avons restreint l'accès SSH au routeur en autorisant uniquement les machines du réseau via une access-list. Voici les commandes utilisées :
ip access-list standard 10
10 permit 193.48.57.160 0.0.0.15
20 deny any
line vty 0 4
access-class 10 in
password <mot_de_passe_de_promo>
transport input ssh
La connexion SSH se fait avec :
ssh admin@193.48.57.161 -o KexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa
Pour tester le ssh nous avons utiliser la commande touch fichier pour créer un fichier sur la machine mandataire depuis la machine d'un autre binôme.
RESULTAT TOUCH
Configuration du Routeur avec OSPF
Le protocole OSPF a été configuré pour partager les tables de routage avec le SR52. Voici un extrait de la configuration :
router ospf 1
router-id 10.0.101.1
summary-address 193.48.57.160 255.255.255.240
redistribute static route-map ospf
redistribute connected
network 193.48.57.160 0.0.0.15 area 10
default-information originate
Les routes OSPF sont bien détectées, comme visible dans les résultats de show ip route
.
Connexion Internet
Avec OSPF actif, la machine mandataire peut accéder à Internet. Voici le test de ping :
root@SE4.Solstice:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=4.05 ms
RESULTAT - CAPTURE ERCRAN A METTRE
Redirection de port
Nous avons modifié le fichier d'autorisation de ssh par /etc/ssh/sshd_config
:
PermitRootLogin yes
Il faut ensuite redémarrer le serveur ssh :
root@Solstice:/etc/ssh# /etc/init.d/ssh restart
Redirection du port 2202 de la mandataire vers Poseidon avec nftables:
nft add table ip NAT nft add chain NAT PREROUTING { type nat hook prerouting priority 0\; } nft add rule NAT PREROUTING tcp dport 2202 dnat to 172.16.0.2:22
---
Mise en Place d’un Serveur DNS
Nous avons configuré un serveur DNS pour gérer les noms de domaine associés à nos machines virtuelles : apollo-exploration.online et moonrises.online.
La première chose a faire est de se reconnecter au registrar de domaine Gandi. Nous y avions déjà au préalable commandé nos nom de domaines pour Apollo et Moon. Après connexion, nous nous rendons dans l'onglet Domaine et nous suivons les instruction pour se procurer le certificat pour nos deux machines. Après avoir suivi le tutoriel nous obtenons deux fichier: myserver.key et server.csr qui sont le certificat et la clé de nos domaines.
Configuration du Serveur DNS Maître et Secondaire
Sur Apollo, nous avons configuré les zones DNS dans /etc/bind/named.conf.local
:
zone "apollo-exploration.online" {
type primary;
file "/etc/bind/zones/apollo-exploration.online";
};
zone "moonrises.online" {
type secondary;
file "/etc/bind/backup/moonrises.online";
primaries { 172.16.0.2; };
};
Exemple de Fichiers de Zone ___A TESTER___
Fichier /etc/bind/zones/apollo-exploration.online.
:
$TTL 86400
@ IN SOA ns.apollo-exploration.online. admin.apollo-exploration.online. (
1 ; Serial
3600; Refresh
1800; Retry
1209600; Expire
86400 ) ; Minimum TTL
@ IN NS ns.apollo-exploration.online.
@ IN A 172.16.0.2
ns IN A 172.16.0.2
Un fichier similaire a été créé pour moonrises.online.
---
Les configurations DNS et réseau permettrons un fonctionnement stable des machines et respectent les exigences du sujet.
Prochaine étapes : finir le serveur DNS et Interconnexion avec Internet (IPv6).