Utilisation d'une interface virtuelle « perso »

Résumé

Ici nous détaillerons la configuration de l'interface réseau virtuelle qui nous permettra de faire du NAT, cette fois avec iptables, afin de pouvoir par la suite mettre en place le filtrage.

Script de création

Créez le fichier /etc/init.d/partage, qui sera le script à lancer pour démarrer notre interface « perso ». En pratique, ce script supprime le bridge sur l'interface vmnet0, ce qui nous permet de disposer d'une interface « vierge », que nous allons configurer par la suite :


#!/bin/sh

# Fichier /etc/init.d/partage
# Script de démarrage qui crée une interface
# réseau virtuelle, et qui met en place le
# partage de connexion internet

start() {
  
  # on supprime le bridge sur vmnet0
  kill -9 `cat /var/run/vmnet-bridge-0.pid`
  rm /var/run/vmnet-bridge-0.pid

  # on crée l'interface vmnet0
  # on garde son pid dans /var/run/
  /usr/bin/vmnet-netifup \
    -d /var/run/vmnet-netifup-0.pid \
    /dev/vmnet0 vmnet0

  # on démarre l'interface
  ifup vmnet0

  # on vide les tables
  iptables -F
  # on vide les chaînes utilisateur
  iptables -X  

  # on met en place du partage
  # de connexion internet
  echo 1 > /proc/sys/net/ipv4/ip_forward
  iptables -t nat -A POSTROUTING  \
    -s 192.168.10.0/24 -o eth0 -j MASQUERADE
}

stop() {

  # on arrête l'interface
  ifdown vmnet0

  # on vide les tables
  iptables -t nat -F
  iptables -t nat -X
  iptables -F
  iptables -X

  # on supprime le partage
  echo 0 > /proc/sys/net/ipv4/ip_forward

  # on supprime l'interface virtuelle  
  kill -9 `cat /var/run/vmnet-netifup-0.pid`
  rm /var/run/vmnet-netifup-0.pid

  # on recrée le bridge sur vmnet0
  # on garde son pid dans /var/run/
  /usr/bin/vmnet-bridge \
    -d /var/run/vmnet-bridge-0.pid \
    /dev/vmnet0 vmnet0
}

case "$1" in
 start)
        start
        ;;

stop)
        stop
        ;;
restart)
        stop && start
        ;;
*)
        echo "Usage $0 {start|stop|restart}"
        exit 1
esac

exit 0

    *

Fixons les droits sur le script, pour permettre de l'exécuter :

$sudo chmod u+x /etc/init.d/partage

Installation de dnsmasq

Afin de fournir à notre sous-réseau NAT les services réseau indispensables que sont DHCP et DNS, nous allons installer un logiciel appelé dnsmasq. Ce logiciel regroupe un serveur DHCP et un serveur relais DNS.

Chaque machine virtuelle sera donc cliente DHCP de notre machine. De plus, le relais DNS évitera de passer par la liaison internet à chaque fois qu'il y aura un nom à résoudre : on interrogera le serveur relais DNS de l'hôte, qui se chargera d'interroger le serveur DNS extérieur si cela est nécessaire.

Pour l'installation, tapez :

$sudo apt-get install dnsmasq

Nous allons ensuite éditer de fichier de configuration de dnsmasq avec :

$sudo vim /etc/dnsmasq.conf

Et nous complèterons le fichier de la façon suivante :

# fichier /etc/dnsmasq.conf

bogus-priv
# pour limiter l'écoute de requetes DHCP du coté réseau local
interface=vmnet0
# nom du domaine pour dnsmasq
domain=inet
# activation du serveur DHCP
dhcp-range=192.168.10.100,192.168.10.150,255.255.255.0,12h

Finalisation de l'installation

Dans le fichier /etc/network/interface, nous allons ajouter l'interface vmnet0, afin qu'elle puisse être utilisée :

iface vmnet0 inet static
        adress 192.168.10.1
        netmask 255.255.255.0

Enfin, il faudra veiller à ce que vos machines virtuelles soient bien configurées en DHCP.

Redémarrez la machine hôte, puis lancez le script créé précédemment :

$sudo /etc/init.d/partage start

Vous pouvez maintenant lancez VMware Server. L'interface vmnet0 doit avoir l'adresse 192.168.10.1/24, et les interfaces réseau de vos machines virtuelles doivent avoir une adresse IP comprise entre 192.168.10.100/24 et 192.168.10.150/24.