Administration Unix - TP séance 17
À la fin de la séance, déposez votre fichier de réponses sur la page Ametice en suivant bien les instructions, même si vous n'avez pas fini la planche ; lorsque vous aurez terminé, vous pourrez re-déposer la version finale.
Exercice 1. Réseau virtuel de VMs
Cet exercice s'étale sur plusieurs séances. Le but consiste à relier entre elles, sous VirtualBox, 3 VMs différentes (XUbuntu, NakeDeb, Rocky) dans des réseaux virtuels, d'installer sur certaines d'entre elles des services et de les faire communiquer.
1.1. Création d'une machine virtuelle de type Redhat
Nous allons maintenant installer une nouvelle VM avec la distribution "Rocky Linux", qui est une distribution de la famille RHEL (Redhat).
Si votre disque dur est presque plein, vous pouvez gagner de la place en
supprimant la VM xubuntu2004bis
. D'autre part, si votre machine dispose de moins
de 8 Go de RAM, passez la RAM de xubuntu2004
à 1 Go, de manière à pouvoir lancer
simultanément les 3 VMs.
Le site officiel de Rocky est https://rockylinux.org/fr/. Pour télécharger l'ISO "Rocky 9.3 x86_64 minimal" (1,6 Go), allez plutôt sur http://sol.dil.univ-mrs.fr/~thiel/ISO/
a) Création de la VM dans VirtualBox
Avec 1Go de RAM, 2 cœurs, 16 Mo de mémoire vidéo, disque 20 Go ; Affichage / Écran / Contrôleur graphique : VMSVGA.
Démarrez la VM pour installation ; l'installeur graphique de Rocky va s'ouvrir.
Si à ce stade, la souris ne fonctionne pas (le cas est assez rare), éteignez la VM, puis dans la Configuration de la VM, allez dans Système / Carte mère / Système de pointage ; changez le choix, par exemple Tablette USB, puis [OK] et redémarrez la VM.
Choisissez ensuite le clavier, puis dans l'ordre (la plupart des éléments sont déjà correctement configurés) :
-
Nom du réseau & d'hôte :
interrupteur en haut à droite sur ON (s'il était OFF)
puis en haut à gauche [Fait] -
Source d'installation : (si l'interrupteur était OFF, attendre que le bouton redevienne actif ; cela peut prendre plusieurs minutes)
Sur le réseau : media local puis [Fait]
(si on avait spécifié par le réseau, il faudrait attendre que le téléchargement soit fini et que le bouton redevienne actif) -
Sélection logiciel :
Installation minimale (sans interface graphique !)
puis [Fait] -
Installation Destination :
sélectionner le disque, laisser le reste par défaut
[Fait] -
Mot de passe Administrateur :
...
-
Créer un utilisateur :
... (ne cochez pas "Faire de cet utilisateur un administrateur")
Et enfin [Commencer l'installation].
Ensuite, quelques centaines de paquets vont être installés et configurés.
Attendez la fin de l'installation, puis [Redémarrez]. Après le démarrage (en mode texte), appuyez éventuellement sur [Entrée] pour faire apparaître l'invite de login.
b) Installation des additions invités
L'équivalent de apt
sur Rocky est la commande dnf
. D'autre part votre
utilisateur n'est pas sudoers.
Installez les modules nécessaires :
$ su -
$ dnf install epel-release
$ dnf install gcc dkms make kernel-devel kernel-headers bzip2
Montez manuellement le CD des additions invitées (lsblk
, mount
), allez dans
sa racine puis exécutez :
$ ./VBoxLinuxAdditions.run
Ajoutez votre user au groupe wheel
de manière à pouvoir utiliser sudo
après le redémarrage :
$ usermod -a -G wheel votre_user
$ groups votre_user
Enfin redémarrez
$ reboot
Vous constaterez que les additions clients telles que capture de la souris et copier/coller ne fonctionnent pas dans une VM en mode console...
À ce propos, vous disposez de 6 consoles virtuelles, accessibles par Right Ctrl+F1 à Right Ctrl+F6 .
c) Connexion ssh vers la machine
Dans la console invitée, vérifiez que sshd
est enabled
:
$ systemctl is-enabled sshd
Sinon, activez le service (voire téléchargez le paquet openssh-server
).
Récupérez l'adresse IP avec ip addr
(par exemple 10.0.2.15
).
Allez ensuite dans la configuration de la machine / Adapter 1 / Réseau / Avancé / Redirection de ports, et entrez une ligne :
SSH / TCP / 127.0.0.1 / 10020 / 10.0.2.15 / 22
On en profite à ce stade pour renommer la VM : dans la console invitée, tapez :
$ hostnamectl
$ hostnamectl set-hostname rocky1
$ hostnamectl
Enfin dans un terminal hôte, connectez-vous en ssh
à l'invité (explication :
le port 10020
du localhost
de l'hôte est l'entrée d'un tunnel ssh
créé par
VitualBox vers le port 22 (ssh)
de la machine invitée) :
-
si votre user est le même sur l'hôte et la VM invitée:
$ ssh -p 10020 localhost
-
sinon :
$ ssh -p 10020 user_vm@localhost
en remplaçant
user_vm
par votre user dans la VM invitée (n'utilisez pasroot
car il se peut que par défaut il ne soit pas autorisé à se connecter directement).
Vous pouvez dorénavant tout faire depuis cette connexion ssh
(copier-coller,
scroller, vi
, etc).
1.2. Réseaux virtuels pour relier les VMs
Le but est de relier les 3 VMs dans 2 réseaux virtuels distincts :
nakedeb
| Adapter 2 : enp0s8 : 192.168.10.20/24
|
| réseau vboxnet0 192.168.10.0/24
|
| Adapter 2 : enp0s8 : 192.168.10.30/24
rocky1
| Adapter 3 : enp0s9 : 192.168.20.31/24
|
| réseau vboxnet1 192.168.20.0/24
|
| Adapter 2 : enp0s8 : 192.168.20.40/24
xubuntu
a) Création des réseaux virtuels
- Dans la fenêtre principale de VirtualBox :
- Fichier / Outils / Gestionnaire de réseau hôte / Host-only Networks,
Créer ⟶vboxnet0
192.168.10.1/24
Créer ⟶vboxnet1
192.168.20.1/24
Désactiver la case Serveur DHCP.
Pour créer un réseau dans la fenêtre qui apparaît, cliquez sur "Créer", puis "Propriétés", saisissez l'adresse et le masque de réseau, "Appliquer" puis "Fermer" ; vous verrez les paramètres modifiés en réouvrant la fenêtre.
Si votre système hôte est Linux ou MacOS, il est possible que VirtualBox
affiche une erreur E_ACCESSDENIED
; cela signifie que l'adresse IP n'est pas
dans la plage d'adresses autorisées. La solution consiste à autoriser cette
adresse de réseau (par exemple 19.168.10.0/24
), voir
ce lien.
Si votre hôte est sous Linux, vous pouvez vérifier l'apparition de ces 2
nouvelles interfaces avec la commande ip addr
.
b) Création des adaptateurs
Éteignez vos VMs.
- Pour chaque VM, allez dans Configuration / Réseau / Adapter 2 ou 3 :
- Activer l'interface réseau
Mode d'accès : Réseau privé hôte
Nom :vboxnet0
ouvboxnet1
Vérifiez dans la fenêtre principale VirtualBox, en cliquant sur chaque VM, que dans le résumé de la machine à droite, apparaît bien dans la section Réseau les interfaces 1 habituelles (en NAT) et les adaptateurs 2 ou 3 dans les bons réseaux virtuels selon le schéma de branchement ci-dessus.
c) Réglage des interfaces
Lancez chaque VM une après l'autre (pour ne pas surcharger votre machine hôte), de manière à ce que les 3 VM tournent simultanément.
En utilisant la commande ip
, attachez dans chaque VM ses interfaces aux
adresses IP et mettez-les up
.
Vérifiez dans les VMs xubuntu
et nakedeb
que le service sshd
est enable
; au
besoin, installez le paquet openssh-server
(pour rocky1
on l'a déjà fait).
Dans chaque VM, vérifiez que vous pouvez joindre avec ssh
les machines
dans leur voisinage réseau à partir de leur adresse IP (la première
connexion prend parfois du temps car il y a des négociations).
(si votre hôte est Linux, vous devriez aussi pouvoir vous connecter d'une
VM à votre hôte en donnant l'adresse du réseau avec le suffixe .1
).
Activez l'IP forwarding sur rocky1
(sysctl
), puis placez les routes sur
nakedeb
et xubuntu
via rocky1
; vérifiez avec l'outil traceroute
(paquet
du même nom à installer) que depuis nakedeb
vous trouvez le chemin vers
l'adresse IP de xubuntu
, et vice-versa.
À partir de là, vérifiez que depuis nakedeb
vous pouvez vous connecter en
ssh
sur xubuntu
à partir de son adresse IP, et vice-versa.
Que faut-il faire si ça ne marche pas ? Il s'agit peut-être d'un problème
de configuration du pare-feux ; tapez dans un terminal sur rocky1
:
$ sudo firewall-cmd --add-masquerade --permanent
$ sudo firewall-cmd --reload
Voir "firewalld configuration" dans :