Atelier SysRes SE2a5 2023/2024 E11
Création de la VM Rio
Génération du fichier de configuration:
xen-create-image --hostname=rio --ip=172.26.145.113 --netmask=255.255.255.0 --gateway=172.26.145.254 --bridge=bridgeStudents --dir=/usr/local/xen --password=glopglop
Lancer la VM grâce au fichier de configuration crée :
xen create rio.cfg
xen console rio
Modification de l'interface eth0 dans /etc/network/interfaces :
auto eth0
iface eth0 inet static
address 172.26.145.113/24
gateway 172.26.145.254
Configuration de la connexion en ssh, nous nous rendons dans le dossier /etc/ssh/ et nous modifions le fichier sshd_config :
- Décommenter le PermitRootLogin et mettre yes
PermitRootLogin yes
- Redémarrer le ssh :
service ssh restart
Au niveau de capbreton, nous créons les deux partitions LVM :
lvcreate -L10G -n rio-home storage
lvcreate -L10G -n rio-var storage
Se rendre dans le dossier /etc/xen/ et modifier le fichier de configuration de la VM rio.cfg en ajoutant les lignes de configurations des partitions :
# Disk device(s).
#
root = '/dev/xvda2 ro'
disk = [
'file:/usr/local/xen/domains/HG/disk.img,xvda2,w',
'file:/usr/local/xen/domains/HG/swap.img,xvda1,w',
'phy:/dev/virtual/kiev-home,xvdb,w',
'phy:/dev/virtual/kiev-var,xvdc,w',
]
Problème rencontré : Message d'erreur en essayant de redémarrer la VM
Création des deux partitions LVM en virtual et non storage
lvcreate -L10G -n rio-home virtual
lvcreate -L10G -n rio-var virtual
Au niveau de la VM, nous vérifions, grâce à la commande lsblk, la présence des nouvelles partitions :
Montage des disques dans deux répertoires /home et /var :
mkdir /new_home
mkdir /new_var
mkfs /dev/xvdb
mkfs /dev/xvdc
mount /dev/xvdb /new_home
mount /dev/xvdc /new_var
cp -r /var/* /new_var/
Vérification de la nouvelle liste des LVM :
Nous nous rendons dans le dossier /etc/ pour modifier le ficher fstab :
Nous redémarrons la VM, puis nouvelle vérification de la liste des LVM : les partitions sont bien montées.
Création de la VM Mandataire padel
Génération du fichier de configuration:
xen-create-image --hostname=padel --ip=193.48.57.168 --netmask=255.255.255.240 --gateway=193.48.57.161 --bridge=SE2a5 --dir=/usr/local/xen --password=glopglop
Lancer la VM grâce au fichier de configuration crée :
xen create padel.cfg
xen console padel
Ajout de l'IPv6 : Nous nous rendons dans le dossier /etc/network pour modifier le fichier interfaces :
Lien entre les VMs de service et la VM mandataire
Tout d'abord, nous avons crée un bridge sur capbreton qui permet de relier la VM mandataire au réseau. Pour ce faire, nous modifions le fichier /etc/network/interfaces.d/TP_SE2a5 :
Par la suite, nous ajoutons le bridge dans chacun des fichiers de config de nos VMs dans /etc/xen/ en modifiant le vif :
'ip=192.168.162.3 , bridge=padel'] //Dans rio.cfg
'ip=192.168.162.2 , bridge=padel'] //Dans stockholm.cfg
'ip=192.168.162.1 , bridge=padel'] //Dans padel.cfg
- Création des interfaces réseaux eth1 sur nos VMs (services) dans /etc/network/interfaces :
auto eth1
iface eth1 inet static
address 192.168.162.3/24
gateway 192.168.162.1 //IP Mandataire
Pour la VM mandataire :
auto eth1
iface eth1 inet static
address 192.168.162.1
netmask 255.255.255.0
- Passage en IPv6 pour les machines de service :
auto eht0
iface eth0 inet6 auto
Test de ping entre les différentes VMs. - Création de la mascarade et utilisation de iptables-persistent pour conserver les règles en les sauvegardant dans /etc/iptables/rule.v4 :
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.162.0/24
apt install iptables-persistent
iptables-save
iptables-save > /etc/iptables/rules.v4
Nous avons réalisés un ping 8.8.8.8 pour vérifier que les VMs de service et la VM mandataire ont accès à internet. Au niveau de capbreton, nous avons testé de nous connecter en ssh en réalisant un jump :
ssh -J root@193.48.57.162 root@192.168.162.2
Au niveau de padel, nous avons autorisé les redirections IP dans /etc/sysctl.conf :
Nous avons ajouté de nouvelles règles de routage pour pouvoir se connecter aux VMs de service en ssh sur le port 2201 pour stockholm et sur le port 2202 pour rio :
iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2201 -j DNAT --to-destination 192.168.162.2:22
iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2202 -j DNAT --to-destination 192.168.162.3:22