Aller au contenu

Administration Unix - TP séance 17

Ne déposez pas de réponse pour ce TP sur la page Ametice, attendez le rendu final.

Projet d'administration Unix et réseau, semestre 2 (1/4)

Ce projet s'étale sur les séances de TP 17 à 20.

Le but du projet 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.

Il sera à rendre après la séance 20 selon des modalités (date, format) qui vous seront précisées à la prochaine séance ; le travail à rendre sera sous la forme de documents décrivant le travail accompli, et en particulier les instructions d'installation (à partir de l'étape 2 ci-dessous), de manière à ce que vos manipulations soient reproductibles (mais pas les VMs, qui seraient trop grosses à transférer). Par conséquent, prenez bien vos notes dès à présent.

Le projet sera à faire par équipes, dont voici la composition :

  • Équipe 1 : NDIAYE ; MAHARI ; KADDOURI ; MARTIN
  • Équipe 2 : CHOQUET ; SMARA ; BENYAHIA ; SAAD
  • Équipe 3 : DE MATOS MORAIS ; TASSA ; BRAYARD ; TARBOURIECH
  • Équipe 4 : PAPAI ; CLEMENTE ; MENGUY ; AINENNAS
  • Équipe 5 : LECORDIER ; LAMRINI ; MESSAOUDI ; MOUHEB
  • Équipe 6 : GUTIERREZ ; RAMDANI ; PANFILOV ; RAMEAUX
  • Équipe 7 : TABUEU ; BOUGMA-MIDIANZOU ; NOALLY ; QUEROU
  • Équipe 8 : KENZI ; PECHEUX ; CARDONA

Étape 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 pas root 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).

Étape 2 : relier les VMs avec des réseaux virtuels

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 ou vboxnet1

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 :

Enfin, cherchez sur internet comment rendre toutes ces configurations persistantes dans les 3 VMs.