Un réseau avec VirtualBox

C'est quoi la virtualisation ?

Généralement, un ordinateur fonctionne avec Windows, Macintosh ou Linux. Ce système d'exploitation gère le matériel physique et vous permet de travailler, copier ou imprimer des documents.

La virtualisation permet d'avoir sur un même poste plusieurs systèmes d'exploitation indépendants pouvant communiquer entre eux.

En gros, c'est comme si vous installiez Linux dans Windows, ou Windows dans Linux, sans avoir à racheter un nouvel ordinateur. On se retrouve alors avec le système hôte (physiquement installé et puissant) et le système invité (simulé comme vrai par un logiciel).

Le système invité peut être identifié sur un réseau comme un poste bien physique. Ce document présente une méthode pour le connecter.

Attention : si le disque dûr de l'hôte est formatté en FAT32, l'image VDI de l'invité ne pourra pas dépasser 4 Go d'espace disque et restera figée comme du marbre si vous dépassez !

Modes de connexion d'un modem ADSL

Pour installer Linux, vous aurez besoin d'Internet. Un point de théorie est donc nécessaire avant de se lancer dans l'installation d'une machine virtuelle quelle qu'elle soit.

On considèrera que votre adresse IP publique Internet est "12.34.56.78" et que vos IP privées sont "192.168.10.x".

Mode normal (par défaut)

Dans ce mode, vous branchez votre PC directement sur le modem grâce à un câble réseau RJ45. Votre carte réseau PC reçoit immédiatement les identifiants publics de connexion. Vous n'êtes plus sur le réseau "de la maison".

Le modem est transparent : toute attaque provenant d'Internet peut corrompre votre ordinateur hôte s'il n'est pas mis à jour.

Mode statique

Si vous placez un switch entre le modem et deux ordinateurs, ils recevront les mêmes identifiants, ce qui est impossible sur un réseau : c'est le conflit d'adresse IP.

Mode statique buggé

Pour résoudre le problème, il faut un routeur.

Remarque : on parle de switch pour brancher plusieurs ordinateurs, mais on peut aussi utiliser un hub. La différence est que le hub transmet les données sur toutes les prises réseaux, les ordinateurs étant en charge de ne lire que les données les concernant. Ce matériel ne se vend plus.

Mode routeur

Ce mode est évolué puisqu'il permet à plusieurs personnes d'avoir Internet en même temps. On appelle ça le partage de connexion.

Connectez-vous sur le site de votre fournisseur d'accès pour activer le mode routeur. Votre modem sera mis à jour, car il embarque un logiciel. Il faudra faire particulièrement attention à DHCP : c'est le mécanisme d'attribution automatique d'adresses IP qui permettra ensuite au routeur de faire le pont entre l'intérieur et l'extérieur.

L'IP interne du modem sera la passerelle des ordinateurs privés. Le modem se chargera de faire le pont entre Internet (prise téléphonique) et vos ordinateurs (prise Ethernet).

Le modem agit alors en véritable pare-feu. Son principe est : tant que ça ne sort pas, rien ne rentre, sauf en cas de NAT.

Mode routeur

Mode normal avec routeur externe

Lorsqu'il n'est pas possible de passer le modem en mode routeur, il suffit de le laisser transparent en ajoutant un routeur en arrière. Cette solution n'est pas économique parce qu'elle est complètement redondante et que la sécurité devient votre responsabilité (erreurs, blocages, ARP poisoning...).

Le boîtier ressemble à un switch, sauf que c'est un routeur. Il contient donc un système embarqué Linux, un logiciel de routage (type iptables), un serveur DHCP (type dhcpd) et un serveur HTTP (type lighttpd) pour tout configurer. Le routeur dispose d'une adresse IP publique et privée.

Mode normal avec routeur

Ce peut être aussi un ordinateur doté de deux cartes réseaux à configurer avec FirewallBuilder]() :

Mode normal avec routeur PC

Connecter la machine virtuelle

Maintenant que l'on sait comment un réseau se structure, il suffit de considérer qu'une machine virtuelle peut se comporter comme un ordinateur normal, à la différence qu'elle entretient des liens spéciaux avec l'hôte dont elle partage les ressources.

Mode réseaux

Pas de carte

En décochant "Activer la carte réseau", vous coupez l'accès. L'invité ne détecte alors aucune carte réseau virtuelle.

La machine est hermétique, sauf si vous utilisez une clé USB pour transférer des données.

Aucun accès

Cette option simule une "connectivité limitée ou inexistante". Une carte réseau virtuelle est détectée.

Connectivité limitée ou inexistante

Accès par pont

C'est le mode pour connecter la machine virtuelle au réseau comme si c'était un vrai ordinateur physique. L'usage courant est de disposer d'un second "ordinateur" ou de faire tourner des applications serveur.

Les paramètres de réseau doivent être configurés dans le système invité comme vous le souhaitez.

Physiquement, les données de l'invité vont transiter par la carte réseau de l'hôte tout en gardant l'origine de propriété. De ce fait, l'hôte ne voit normalement pas ce qui circule pour l'invité.

Le switch ou le routeur doit être allumé pour que les paquets puissent transiter d'une machine à l'autre. Il comprendra aisément que 2 adresses IP se cachent derrière la même prise.

Connexion par pont

Sur le schéma, la flèche mène soit :

  • ... à rien : cas d'un réseau purement local pouvant comportant plusieurs ordinateurs.
  • ... à Internet : le modem est routeur si on utilise un switch, le modem est transparent si on utilise un routeur "en arrière".

Accès privé hôte

Il s'agit d'un réseau logiciel virtuel entre l'hôte et l'invité dont personne n'a accès. Plusieurs machines virtuelles sur le même hôte peuvent être connectées à ce réseau.

Le réseau de l'hôte est configuré au niveau du "VirtualBox Host-Only Network Adapter". L'invité doit être mis en cohérence depuis la machine virtuelle même.

L'hôte se connecte à l'invité via l'adaptateur virtuel, mais peux toujours se connecter physiquement au réseau "de la maison" via la vraie carte réseau. Cette carte peut être le lien vers Internet, l'invité ne pouvant y accéder que si l'hôte gère le routage logiciel.

Accès privé hôte

Réseau interne

Il s'agit de réseaux virtuels accessibles uniquement par les machines virtuelles. Les machines ayant le même nom de réseau interne peuvent se reconnaître si leurs paramètres TCP/IP sont en cohérence.

Réseau interne

NAT

Ce sigle signifie "network address translation".

Aucun exemple n'est prévu pour illustrer ce paragraphe, le mode d'accès étant plus facile par pont.

Donner Internet à l'invité mais pas à l'hôte

Reprenons la situation de connexion par pont :

Connexion par pont

En supprimant la passerelle des paramètres TCP/IP de l'hôte, on coupe son accès à Internet. Selon la configuration, le piratage de l'invité via Internet n'exclue pas l'attaque de l'hôte.

La solution à moindre frais consiste à partitionner le réseau logiciellement en jouant sur la combinaison du masque de réseau avec les adresses IP :

Isolation d'un hôte

  • Physiquement :
    • A, B, C et D sont câblés ensemble
    • C utilise la carte réseau de B
    • C peut utiliser les ports USB de B
  • Communications :
    • A et B se reconnaissent
    • C et D se reconnaissent
    • C ne communique pas avec A ou B
    • C a Internet via D
    • B n'a pas Internet, car il n'y a pas de route vers D

Si C ne communique pas avec B, c'est bien parce qu'il n'est pas configuré pour. Un pirate peut tout à fait gérer l'accès à deux réseaux sur la même carte réseau (virtuelle ou pas). Encore faut-il qu'il puisse le faire, qu'il veuille le faire et qu'il sache le faire !

Conflit d'adresses MAC

Quand plusieurs machines virtuelles fonctionnent en parallèle, il faut qu'elles aient des adresses MAC distinctes (Media Access Control address).

C'est un numéro de série unique inhérent aux cartes réseaux pour permettre leur identification unique sur un même câblage au-delà du partionnement logique des réseaux à l'aide des adresses IP et des masques de sous-réseau.

N'essayez pas de créer volontairement un conflit, VirtualBox n'effectue pas de vérification et le plantage est... persistant ! Vous êtes prévenus.

Gestion des adresses MAC

Cloner une configuration

Une fois une machine préparée, il suffit de mettre le fichier VDI de côté.

Malheureusement, vous ne pouvez pas monter un fichier cloné sans effectuer une petite modification. Elle consiste à générer un identifiant unique matériel pour votre disque virtuel (dit UUID). Cette unicité est analogue aux adresses MAC pour éviter les conflits entre matériels.

cd "C:\Program Files\Sun\VirtualBox\bin"
VBoxManage.exe internalcommands setvdiuuid "C:\chemin\complet\du\fichier.vdi"
Avez-vous trouvé l'information que vous cherchiez ? Votre retour d'expérience sur le site nous intéresse.

Dernière modification le 2 décembre 2012 à 15:11