« Atelier SysRes SE4 2024/2025 E12 » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 1 : | Ligne 1 : | ||
== Projet Virtualisation BARRET Maxime == | == Projet Virtualisation BARRET Maxime == | ||
== Création / Connexion aux machines virtuelles == | |||
Version du 8 février 2025 à 15:05
Projet Virtualisation BARRET Maxime
Création / Connexion aux machines virtuelles
Dans un premier temps, nous devons créer nos trois VM. Pour ce faire, nous avons utilisé la commande xen-create-image comme ci dessous:
root@capbreton:~# xen-create-image --hostname=SE4.Rod --dhcp --bridge=Rodripont --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=1024M --force
La commande xen create pour la démarrer
xen create /etc/xen/SE4.Rod.cfg
Et la commande xen console pour s'y connecter
xen console SE4.Rod
Montage /var et /home
Dans cette partie, il était nécessaire de monter le système de fichier /var et /home sur nos deux machines de services.
Création des fichier sur capbreton
Pour attribuer de l'espace pour nos répertoire /home et /var sur nos VM, nous devons commencer une manipulation depuis capbreton.
Il faut tout d'abord créer deux fichier dans le répertoire /dev/virtual de capbreton. Ces deux fichiers sont SE4.Rod.var et SE4.Rod.home. On peut les retrouver ci-dessous:
root@capbreton:/dev/virtual# ls
hawker-home rex-var SE4.ElMordjene.var SE4.Gyro.var SE4.Moon.var SE4.Rod.var
hawker-var SE4.Apollo.home SE4.Gaby.home SE4.jeanluc.home SE4.Orion.home SE4.Vi-home
proxmox-disk SE4.Apollo.var SE4.Gaby.var SE4.jeanluc.var SE4.Orion.var SE4.Vi-var
proxmox-swap SE4.Atreus.home SE4.Gtr-home SE4.Jinx-home SE4.Poseidon.home
rex-2-disk SE4.Atreus.var SE4.Gtr-var SE4.Jinx-var SE4.Poseidon.var
rex-2-swap SE4.Bree.home SE4.Gyro-home SE4.Kratos.home SE4.Rigo.home
rex-3-disk SE4.Bree.var SE4.Gyro.home SE4.Kratos.var SE4.Rigo.var
rex-3-swap SE4.ElMordjene.home SE4.Gyro-var SE4.Moon.home SE4.Rod.home
Allocation sur les VM
Après l'étape précédente, il faut désormais modifier le fichier .cfg de la VM pour y ajouter les deux répertoires. On modifie la partie Disk devices:
# Disk device(s).
#
root = '/dev/xvda2 ro'
disk = [
'file:/usr/local/xen/domains/SE4.Rod/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.Rod/swap.img,xvda1,w',
'phy:/dev/virtual/SE4.Rod.home,xvda3,w',
'phy:/dev/virtual/SE4.Rod.var,xvdb1,w',
]
En se plaçant désormais sur la VM concernée, on modifie le fichier fstab pour y ajouter nos disk:
/dev/xvda1 none swap sw 0 0
/dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
/dev/xvdb1 /var ext4 defaults 0 2
/dev/xvda3 /home ext4 defaults 0 2
On fait attention à attribuer la partition associée au bon répertoire. Ici /dev/xvda3 avec /home et /dev/xvdb1 avec /var. Une fois ces deux lignes ajoutées, on peut redémarrer le VM depuis capbreton avec la commande
xen shutdown SE4.Rod
Au redémarrage on peut utiliser la commande lsblk pour vérifier l'appartion de nos partitions:
root@SE4:/var# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda1 202:1 0 512M 0 disk [SWAP]
xvda2 202:2 0 10G 0 disk /
xvda3 202:3 0 10G 0 disk
xvdb1 202:17 0 10G 0 disk
Montage des fichiers
Dans cette partie, il est demandé de monter nos partitions sur les répertoires /var et /home.
Montage de /var
Il s'agit de la manipulation la plus délicate réalisée jusqu'à présent car en cas de mauvaise manipulation, il sera nécessaire de recréer une nouvelle VM.
Voici les commandes réalisées pour le bon procédé :
mkfs -t ext4 /dev/xvdb1
mount /dev/xvdb1 /mnt
mv /var/* /mnt
umount /mnt
mount -a
Montage de /home
Le montage de /home est similaire à celui du /var. A l'exception que, celui-ci étant vide, il n'est pas nécessaire de réaliser les commandes 2,3 et 4.
mkfs -t ext4 /dev/xvda3
mount -a
Résultat de montage
Pour vérifier le résultat du montage, on peut réaliser un ls dans le répertoire /var pour s'assurer qu'il y ait bien des dossiers à l'intérieur.
Mais également faire la commande df -h :
root@SE4:/var# df -h
Filesystem Size Used Avail Use% Mounted on
udev 973M 0 973M 0% /dev
tmpfs 199M 64K 199M 1% /run
/dev/xvda2 9.8G 448M 8.8G 5% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 500M 0 500M 0% /dev/shm
/dev/xvdb1 9.8G 171M 9.1G 2% /var
/dev/xvda3 9.8G 24K 9.3G 1% /home
On retrouve bien nos partitions montées sur les répertoires associés. C'est un succès.
Adressage IPv4 et IPv6
Il est demandé d'attribuer des adresses IPv4 et IPv6 à nos machines
Machines de services
On modifie le fichier /etc/network/interfaces pour lui attribuer une adresse IPv4 et une adresse IPv6. Pour l'adresse IPv6, il n'y a pas de problème. On peut simplement y inscrire la ligne suivante :
iface eth0 inet6 auto
Pour l'adresse IPv4, on a dû choisir une adresse réseau privée que notre binome utilisera. Il s'agit de 172.16.17.0 /24.
Il est également nécéssaire de considérer la machine mandataire comme était la gateway accessible par les deux machines de services. On lui a attribué l'adresse IPv4 172.16.17.1.
Ainsi, on peut compléter notre fichier et rajouter l'adresse static :
iface eth0 inet static
address 172.16.17.2
netmask 255.255.255.0
gateway 172.16.17.1
Machine mandataire
Pour la suite, on va initier une des deux adresses IPv4 sur eth1 or cet interface n'existe pas sur les VM. Il faut donc la créer depuis le fichier .cfg de la machine sur capbreton.
Dans la catégorie Networking, on retrouve une ligne vif à modifier. On la modifie pour créer une interface eth1 sur le bridge de la promotion SE4 en plus du eth0 déjà présent.
# Networking
#
dhcp = 'dhcp'
vif = [ 'mac=00:16:3E:08:13:E7,bridge=RodriPont',
'mac=00:16:3E:08:13:E8, bridge=SE4' ]
Au redémarrage de la machine, l'interface eth1 existera. On peut donc modifier le fichier /etc/network/interfaces sans problèmes.
auto eth0
iface eth0 inet static
address 172.16.17.1
netmask 255.255.255.0
#iface eth0 inet dhcp
# post-up ethtool -K eth0 tx off
iface eth0 inet6 auto
auto eth1
iface eth1 inet static
address 193.48.57.169/28
gateway 193.48.57.161
On retrouve bien l'adresse Ipv4 utilisée par nos deux machines de services en tant que gateway, une adresse IPv6 et une adresse IPv4 sur un réseau routé. On a attribué en gateway de cette dernière l'adresse 193.48.57.161/28 que l'on a attribué plus tard à l'adresse du Vlan 1 sur le commutateur en E304. Après avoir tapé la commande ip a :
root@SE4:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:08:13:e7 brd ff:ff:ff:ff:ff:ff
inet 172.16.17.1/24 brd 172.16.17.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fe08:13e7/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:08:13:e8 brd ff:ff:ff:ff:ff:ff
inet 193.48.57.169/28 brd 193.48.57.175 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fe08:13e8/64 scope link
valid_lft forever preferred_lft forever
Cisco
Nous avons connecté la machine de Capbreton au routeur de la salle E304 par le biais d'une fibre optique.
Séance improvisée du 04/02/2025
Configuration des Vlan
Pendant la séance improvisée du 4/02/2025, nous avons du attribué à chaque personne un réseau Vlan ainsi qu'une adresse réseau associé. On peut retrouver le tableau correspondant à cette attribution sur la page d'accueil.
De plus, nous avons réalisé le Vlan 50, où toutes les machines xen seront connectées mais également le Vlan 530 qui assure l'accès au commutateur SR52 et donc un accès à Internet.
Pour le choix des adresses de réseau utilisées, nous avons choisi les adresses privées en 10.0.0.0 que nous avons adapté (10.0.100+num.0/24) pour chacun.
Connexion SSH au routeur
Le plus important est de pouvoir accéder en SSH au routeur disposé dans la salle E304. La connexion est possible dès la création du Vlan 50 qui comprend le réseau routé présenté dans le sujet.
Il nous a fallu également créé une liste qu'on a ensuite mis dans une classe où l'on autorise les adresses ip routé :
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 g0llum_fr0d0
transport input ssh
line vty 5 15
access-class 10 in
password g0llum_fr0d0
transport input ssh
Pour se connecter,on éffectue la commande suivante :
ssh admin@193.48.57.161 -o KexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa
Protocole OSPF
Nous utilisons le protocole OSPF pour générer des routes efficaces au sein de nos réseaux.
Avec les personnes présentes, nous avons configuré le routeur pour y ajouter une option pour le mode OSPF.
router ospf 1
router-id 10.0.101.1
summary-address 192.168.0.0 255.255.0.0
summary-address 10.0.0.0 255.0.0.0 not-advertise
summary-address 192.168.37.0 255.255.255.0 not-advertise
summary-address 193.48.57.160 255.255.255.240
redistribute static route-map ospf
redistribute connected
network 192.168.222.64 0.0.0.7 area 10
default-information originate
!
On peut vérifier que le protocole OSPF est bien actif en tapant la commande "show ip route". On retrouve alors des "O" avant certaines lignes, ce qui montre son bon fonctionnement.
O*E2 0.0.0.0/0 [110/1] via 192.168.222.65, 03:59:15, Vlan530
192.168.222.0/24 is variably subnetted, 4 subnets, 3 masks
O E2 192.168.222.0/29 [110/10] via 192.168.222.65, 03:59:15, Vlan530
C 192.168.222.64/28 is directly connected, Vlan530
L 192.168.222.66/32 is directly connected, Vlan530
O E2 192.168.222.240/28 [110/10] via 192.168.222.65, 03:59:15, Vlan530
193.48.57.0/24 is variably subnetted, 2 subnets, 2 masks
C 193.48.57.160/28 is directly connected, Vlan50
Test Internet
Avec les commandes ospf réalisées, nous avons accès à internet comme le montre le ping ci-dessous et une interface mise dans le Vlan 530, nous avons désormais accès à Internet. Pour le vérifier, nous avons essayé de ping google depuis la machine mandataire. Au début, le ping ne fonctionnait pas et nous avons alors dû rajouter une route par défaut. On obtient désormais ce résultat en tapant "ip route"
root@SE4:~# ip route
default via 193.48.57.161 dev eth1 onlink
172.16.17.0/24 dev eth0 proto kernel scope link src 172.16.17.1
193.48.57.160/28 dev eth1 proto kernel scope link src 193.48.57.169
On retente le ping google :
root@SE4:~# 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
64 bytes from 8.8.8.8: icmp_seq=2 ttl=114 time=3.85 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=114 time=4.04 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=114 time=3.90 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 3.854/3.959/4.052/0.086 ms
Notre machine mendataire à donc bien accès à Internet grâce à sa connexion au SR52.
On peu désormais installer les package demandés comme apache2, bind9 et ssh.
Redirection de port
nft add table ip NAT
nft add chain NAT PREROUTING { type nat hook prerouting priority 0\; }
nft add rule NAT PREROUTING tcp dport 2201 dnat to 172.16.17.2:22
nft add rule NAT PREROUTING tcp dport 2202 dnat to 172.16.17.3:22
Masquarade pour accès à Internet sur les machines de services fonctionnelle.
Serveur DNS
Pour pouvoir accéder aux serveur DNS que l'on va configurer plus tard, nous devons mettre à jour le fichier /etc/resolv.conf :
root@SE4:~# cat /etc/resolv.conf
search plil.info
nameserver 172.26.188.12
nameserver 193.48.57.48
search sudiste.online
nameserver 172.16.17.2
nameserver 172.16.17.3
on met sur la première ligne le serveur principal et le secondaire sur la deuxième.
On configure désormais le serveur DNS à l'aide des fichiers bind9.