« Atelier SysRes SE4 2024/2025 E14 » : différence entre les versions
Ligne 158 : | Ligne 158 : | ||
mount -a | mount -a | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== DÉMARRAGE AUTOMATIQUE DU MONTAGE ==== | |||
{| class="wikitable" | |||
|+ | |||
![[Fichier:Fichier fstab.png|alt=Fichier_fstab|vignette|Fichier_fstab]] | |||
|} | |||
== CONFIGURATION RÉSEAU == | == CONFIGURATION RÉSEAU == | ||
Chaque machine dispose d'une adresse IPv4 fixe sur un réseau privé, ainsi que d'une adresse IPv6 configurée automatiquement.[[Fichier:Interfacekratos.png|alt=Interfacekratos|Interfacekratos|centré| | |||
Chaque machine dispose d'une adresse IPv4 fixe sur un réseau privé, ainsi que d'une adresse IPv6 configurée automatiquement. | |||
Nous modifions la configuration réseau dans <code>/etc/network/interfaces</code> de la machine mandataire. Ensuite, nous ajustons le fichier de configuration de la machine virtuelle afin qu'elle possède deux interfaces : la première permet de communiquer avec le routeur mis en place par nos collègues, tandis que la seconde est connectée au pont réseau que nous avons créé pour l’intercommunication entre nos trois machines. | |||
=== MACHINE MANDATAIRE === | |||
<syntaxhighlight lang="bash"> | |||
name = 'SE4.GOW' | |||
# | |||
# Networking | |||
# | |||
dhcp = 'dhcp' | |||
vif = [ 'mac=00:16:3E:E7:C5:1A,bridge=bifrost', | |||
'mac=00:16:3E:E7:C5:1B,bridge=SE4' ] | |||
</syntaxhighlight> | |||
=== MACHINE DE SERVICES === | |||
/etc/network/interfaces de la machine SE4.Atreus qui permet de lié les Interfaces de la MV avec ses VIF pour communiquer en IPv6 avec Internet et IPv4 avec la machine mandataire <syntaxhighlight lang="bash"> | |||
# The loopback network interface | |||
auto lo | |||
iface lo inet loopback | |||
auto eth0 | |||
iface eth0 inet6 auto | |||
iface eth0 inet static | |||
address 192.168.3.2/24 | |||
gateway 192.168.3.1 | |||
auto eth1 | |||
iface eth1 inet6 auto | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
|+ | |||
![[Fichier:Interfacekratos.png|alt=Interfacekratos|Interfacekratos|centré|vignette|470x470px]] | |||
![[Fichier:IpaAtreusIp6Ip4.png|vignette|546x546px|ip a de la machine SE4.Atreus]] | |||
|- | |||
|[[Fichier:PingEntre2VM.png|alt=PingEntre2VM|PingEntre2VM|centré|vignette|986x986px]] | |||
| | |||
|- | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
|} | |||
=== Configuration machine Mandataire === | === Configuration machine Mandataire === | ||
Ligne 169 : | Ligne 225 : | ||
[[Fichier:Ssh machine.png|vignette]] | [[Fichier:Ssh machine.png|vignette|567x567px]] | ||
SSH : faire les commandes sur les 3 machines, et modifier le fichier ssh config dans /etc/ssh/ en mettant l'option PermitRootLogin yes | SSH : faire les commandes sur les 3 machines, et modifier le fichier ssh config dans /etc/ssh/ en mettant l'option PermitRootLogin yes | ||
Faire la demande des certificats en ligne avec la commande openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8. | Faire la demande des certificats en ligne avec la commande openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8. | ||
[[Fichier:PingAtreusGoogle.png|vignette|PIng en IPv6]] | |||
== APACHE == | |||
=== IPV4 === | |||
<syntaxhighlight lang="bash"> | |||
# Partie HTTP (port 80) | |||
<VirtualHost *:80> | |||
ServerName muspellheim2.online | |||
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/ | |||
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/ | |||
</VirtualHost> | |||
# Partie HTTPS (port 443) | |||
<IfModule mod_ssl.c> | |||
<VirtualHost *:443> | |||
ServerName muspellheim2.online | |||
SSLCertificateFile /etc/ssl/certs/muspellheim2.online.crt | |||
SSLCertificateKeyFile /etc/ssl/private/muspellheim2.online.key | |||
SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem | |||
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/ | |||
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/ | |||
</VirtualHost> | |||
</IfModule> | |||
</syntaxhighlight>[[Fichier:PingAtreusGoogle.png|vignette|PIng en IPv6]] |
Version actuelle datée du 16 mars 2025 à 23:10
INTRODUCTION
Dans le cadre de ce projet de virtualisation, j'ai déployé une infrastructure composée de deux machines dédiées aux services ainsi que d'une machine mandataire, orchestrées à l'aide de Xen. La machine Atreus occupe une place centrale dans l'hébergement des services, tandis que la machine GOW gère le réseau et assure la connectivité externe en IPv4 et IPv6. La deuxième machine de service est celle de Monsieur Antoine LECOMPTE, Kratos.
vi /etc/hostname
18 hostname -h
19 hostname -h$
20 host `cat /etc/hostname`
21 hostname `cat /etc/hostname`
22 cat /etc/hostname
23 reboot
24 lsblk
25 cat /etc/fstab
26 mkfs -t ext4 /dev/xvda3
27 mkfs -t ext4 /dev/xvdb1
28 mount /dev/xvdb1 /mnt
29 mv /var/* /mnt
30 umount /mnt
31 mount -a
32 mkfs -t ext4 /dev/xvda3
33 mkfs -t ext4 /dev/xvda3
34 mount -a
35 vi /etc/fstab
36 mount -a
37 df -h
CRÉATION MACHINES VIRTUELLES
Tout d'abord, nous devons configurer nos MV de services. Il leur faut plusieurs paramètres pour fonctionner selon nos critères.
root@capbreton:~# xen-create-image --hostname=SE4.Atreus --dhcp --bridge=bifrost --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force
root@capbreton:~# xen-create-image --hostname=SE4.Kratos --dhcp --bridge=bifrost --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2048M --force
xen-create-image
: Commande permettant de créer une nouvelle machine virtuelle Xen--hostname=SE4.Atreus
: Spécifie le nom d'hôte de la nouvelle MV créée. Ici, le nom d'hôte seraSE4.Atreus
.--dhcp
: Indique que la MV obtiendra automatiquement une adresse IP via DHCP. Aucune configuration statique d'adresse IP ne sera nécessaire.--bridge=bifrost
: Précise l'utilisation du pont réseau nommébifrost
pour connecter la machine virtuelle au réseau physique ou virtuel existant. Ceci permet une connexion directe de la VM au réseau.--dir=/usr/local/xen
: Définit le répertoire dans lequel seront stockées les images disque et les fichiers associés de la MV. Ici, l'image sera placée dans le dossier/usr/local/xen
.--size=10GB
: Détermine la taille du disque virtuel pour cette MV. Dans cet exemple, le disque fera10 Go
.--dist=daedalus
: Indique la distribution du système d'exploitation à utiliser pour la MV. Ici, la distribution choisie s'appelledaedalus
pour Debian.
--memory=2048M
: Détermine la quantité de mémoire vive (RAM) allouée à la MV. Dans cet exemple, la MV aura2048 Mo
(soit 2 Go) de RAM.
Pour initialiser les machines, nous devons exécuter ces commandes:
xen create /etc/xen/SE4.Atreus.cfg
xen create /etc/xen/SE4.Kratos.cfg
Une fois les MV créées et en ligne, nous devons exécuter ces commandes pour les contrôler:
xen console SE4.Atreus
xen console SE4.Kratos
Une fois le login "root" et le mdp (top secret) rentrés dans la console, nous sommes sur la VM et pouvons la contrôler comme un ordinateur avec un OS classique.
root@Atreus:~#
PARTIONING DES MV
Nous avons modifié les fichiers /etc/xen/[Kratos][Atreus].cfg
pour attacher les partitions LVM aux machines :
root = '/dev/xvda2 ro'
disk = [
'file:/usr/local/xen/domains/SE4.Atreus/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.Atreus/swap.img,xvda1,w',
'phy:/dev/virtual/SE4.Atreus.home,xvda3,w',
'phy:/dev/virtual/SE4.Atreus.var,xvdb1,w',
]
Le paramètre disk
définit les disques virtuels attachés à la machine virtuelle (domaine Xen).
Chaque élément du tableau suit la syntaxe :
<type>:<source>,<cible>,<mode>
- type : indique si le disque provient :
- d'un fichier (
file:
) - d'un périphérique physique réel (
phy:
).
- d'un fichier (
- source : chemin complet vers l'image disque ou vers le périphérique physique sur la machine hôte.
- cible : nom du périphérique vu par la machine virtuelle (exemple :
xvda
,xvdb
, etc.).
- mode : type d'accès au disque (
r
en lecture seule,w
en lecture-écriture).
DISQUE VIRTUEL PRINCIPAL :
'file:/usr/local/xen/domains/SE4.Atreus/disk.img,xvda2,w'
- Type :
file
(stockage basé sur un fichier-image disque). - Source :
/usr/local/xen/domains/SE4.Atreus/disk.img
(fichier contenant le disque virtuel). - Cible :
xvda2
(deuxième partition du disque virtuelxvda
visible depuis la MV). - Mode :
w
(lecture-écriture).
Ce disque correspond à la racine (/
) du système de fichiers Linux de la MV.
DISQUE VIRTUEL SWAP
'file:/usr/local/xen/domains/SE4.Atreus/swap.img,xvda1,w'
- Type :
file
→ Image disque stockée dans un fichier. - Source :
/usr/local/xen/domains/SE4.Atreus/swap.img
→ Chemin de l'image disque swap. - Cible :
xvda1
→ Première partition du disque virtuelxvda
.
DISQUE PHYSIQUE POUR /home
'phy:/dev/virtual/SE4.Atreus.home,xvda3,w'
- Type :
phy
→ Un périphérique physique (généralement une partition réelle ou un volume logique LVM). - Source :
/dev/virtual/SE4.Atreus.home
→ Partition ou volume logique physique sur l'hôte. L'hôte étant le disque dur de capbreton. - Cible :
xvda3
→ Troisième partition du disque virtuelxvda
.
Cette partition dédiée permet d’isoler le répertoire /home
, facilitant ainsi la gestion des données utilisateur séparément du système.
DISQUE PHYSIQUE POUR /var
'phy:/dev/virtual/SE4.Atreus.var,xvdb1,w'
- Type :
phy
→ Périphérique physique. - Source :
/dev/virtual/SE4.Atreus.var
→ Partition physique ou volume logique dédié sur l'hôte. - Cible :
xvdb1
→ Première partition du second disque virtuel (xvdb
).
Cette partition est dédiée au répertoire /var
, où sont stockés les journaux (logs), les bases de données, les fichiers temporaires, etc. Cette séparation permet une meilleure gestion des données systèmes dynamiques.
Pour le fichier /var
mkfs -t ext4 /dev/xvdb1
mount /dev/xvdb1 /mnt
mv /var/* /mnt
umount /mnt
mount -a
Pour le fichier /home
mkfs -t ext4 /dev/xvda3
mount -a
DÉMARRAGE AUTOMATIQUE DU MONTAGE
CONFIGURATION RÉSEAU
Chaque machine dispose d'une adresse IPv4 fixe sur un réseau privé, ainsi que d'une adresse IPv6 configurée automatiquement.
Nous modifions la configuration réseau dans /etc/network/interfaces
de la machine mandataire. Ensuite, nous ajustons le fichier de configuration de la machine virtuelle afin qu'elle possède deux interfaces : la première permet de communiquer avec le routeur mis en place par nos collègues, tandis que la seconde est connectée au pont réseau que nous avons créé pour l’intercommunication entre nos trois machines.
MACHINE MANDATAIRE
name = 'SE4.GOW'
#
# Networking
#
dhcp = 'dhcp'
vif = [ 'mac=00:16:3E:E7:C5:1A,bridge=bifrost',
'mac=00:16:3E:E7:C5:1B,bridge=SE4' ]
MACHINE DE SERVICES
/etc/network/interfaces de la machine SE4.Atreus qui permet de lié les Interfaces de la MV avec ses VIF pour communiquer en IPv6 avec Internet et IPv4 avec la machine mandataire
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet6 auto
iface eth0 inet static
address 192.168.3.2/24
gateway 192.168.3.1
auto eth1
iface eth1 inet6 auto
Configuration machine Mandataire
Commande : iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.3.0/24
SSH : faire les commandes sur les 3 machines, et modifier le fichier ssh config dans /etc/ssh/ en mettant l'option PermitRootLogin yes
Faire la demande des certificats en ligne avec la commande openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8.
APACHE
IPV4
# Partie HTTP (port 80)
<VirtualHost *:80>
ServerName muspellheim2.online
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/
</VirtualHost>
# Partie HTTPS (port 443)
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName muspellheim2.online
SSLCertificateFile /etc/ssl/certs/muspellheim2.online.crt
SSLCertificateKeyFile /etc/ssl/private/muspellheim2.online.key
SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe91:f4e3]/
</VirtualHost>
</IfModule>