🕒 : 6 h maximum
Présentation du TP1_VB
- Utilisation d’une debian 11 avec iproute 2
- Introduction aux services sous Linux (systemctl) avahi et sshd (openssh-server)
- Installation de Zeroconf , avahi-daemaon
- Réseaux avec le masque /16 et /24
- Installation d’une passerelle (gateway m7) et de « l’ip_forwarding » , routage
- Partage de la connexion internet sur une salle de machine à gérer avec le firewall redoutable Iptables
A la fin nous aurons deux groupes de machines : le Réseau A (R0) et le Réseau B (R1), connectés au même switch mais isolés par des masques sous-réseaux différents. On peut imaginer que ce sont 2 réseaux diffèrent qui ne doivent pas communiquer entre eux ou sous le contrôle de l’administrateur ici vous !
Prérequis:
- une machine debian 11 (voir TP précèdent) TP0_VB (machine avec sudo)
- cours réseau, utilisation de iproute2
But:
- Installer une salle d’utilisateur et partager une connexion internet
Répertoire de travail:
~/Works/TP1_VB_reseau
Pour ce TP nous allons utiliser 7 machines Linux Debian 11 et réaliser 2 Réseaux R0 et R1
plans d’implantation (libre office)
Pour faire des plans d’implantation on dispose de draw libre office
Pour réaliser vos schémas on utilisera de préférence Libre Office Draw
installer cette extension:
https://extensions.libreoffice.org/en/extensions/show/vrt-network-equipment
(double clic sur ce fichier)
Et vous retrouverez dans gallerie les symboles réseaux

Exemple du schéma attendu pour le TP
Machine de base avec 2 interfaces réseau
Présentation des interfaces réseaux sur virtualbox
Création de la machine de base m1 à m6 puis la passerelle
m1 sera réalisée puis clonée pour réaliser m2 ..à m6 car seul leurs configurations sont différentes.
on va garder une interface NAT pour accéder à internet quand on en aura besoin sinon on désactive.

on va garder une interface interne qui sera l’équivalent d’une carte réseau ethernet sur un switch (virtuel interne)

c’est une carte qui est sur un même switch (virtuel) que les autres machines virtuelle sur interne.
Permet de faire des réseaux isolés (du monde réel)
cette interface va nous servir à faire ce tp
ici Adapter 2 (interface 2)
Mise à jour de la machine de base.
On récupère la machine réalisé au TP0_VB et la mettre à jour .
sudo apt update && sudo apt upgrade
Le faire au moins une fois avant de cloner ! pour avoir une machine opérationnelle !
Réaliser un schéma (plan d’implantation) comme celui donné un peu au dessus !
plaçant les machines sur un switch , avec dia ou draw de libre-office ou packet tracer online ou non , ou à la main et photo pour joindre dans le pdf
Il est préférable d’utiliser draw libre-office , plus simple surtout l’outil est libre et open source.
m1 à m3 , m4 à m6 et la machine passerelle le tout relié par un seul switch interne.
et la passerelle qui aura une carte pour internet avec (nat)
Configuration de la machine virtuelle m1.
La machine m1 va permettre de faire les 5 autres après en la clonant (quand elle se sera terminée en tant que m1) dans la partie 2.
Renommer la machine m1
il faudra dans virtualbox aussi qu’elle s’appelle m1
lui donner son nom m1 dans le fichier /etc/hostname et adapter /etc/hosts , vous pouvez modifier le nom (uniquement le fichier hostname attention) avec la commande :
hostname set-hostname m1 # mais hosts n'est pas mis a jour
Installer Zeroconf (mDNS/DNS-SD). avahi sous linux
installer msdns , ce service va nous permettre l’identification avec le nom.local, service avahi-daemon
Le service à installer est ici avahi daemon
en étant root:
apt update
apt upgrade
apt install avahi-daemon
Vérifier que le service tourne bien sur la machine m1
systemctl status avahi-daemon
Si jamais le service n’est pas actif on peut le lancer avec
#Arreter :
sudo systemctl stop avahi-daemon
#Démarrer :
sudo systemctl start avahi-daemon
#Activer au démarrage :
sudo systemctl enable avahi-daemon
Relever la configuration réseau de la machine m1
ip --color address
ainsi que la commande
lspci | grep Ethernet
juste la pour faire la liaison avec les noms des interfaces
on va faire la configuration ‘flottante’ de l’interface qui est sur le switch virtuel ! on rappel les fonctions importantes pour ce faire ci dessous.
rappel : (vu en cours !)
rappel : (vu en cours !)
ip address add (ip a a)
ip link set (ip l s)
pour voir la configuration avec la commande :
ip -c a
par exemple : pour ajouter une adresse ip à l’interface enp0s8 : a pour addresse et a pour add! plus rapide à saisir.
ip a a 192.168.0.1 dev enp0s8
pour voir la configuration avec la commande :
ip -c a
on constate que l’interface possède son ip mais elle est down et pour la passer up
ip l s enp0s8 up
pour voir la configuration avec la commande :
ip -c a
Installer définitivement la config réseau ip statique (interfaces)
quand on a compris ce que l’on veut faire (comme dans le tp précèdent) mais rien ne reste permanent , l’administrateur ne peut pas toujours venir configurer le poste!
Sous linux c’est prévu il existe un fichier de configuration
le fichier est : /etc/network/interfaces
on va s’occuper que de m1 pour l’instant:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface / qu'on a enlevé depuis le début # allow-hotplug enp0s3 # iface enp0s3 inet dhcp # réseau interne auto enp0s8 allow-hotplug enp0s8 iface enp0s8 inet static address 192.168.0.1 netmask 255.255.0.0 broadcast 192.168.255.255
Explications:
Mot-clé Rôle
auto Lance l'interface au boot
allow-hotplug Lance l'interface quand elle est détectée physiquement
iface Définit la configuration d'une interface
inet Utilise la pile IPv4
loopback Type : interface de bouclage
static Type : adresse IP fixe
dhcp Type : configuration automatique
address IP statique
netmask Masque de sous-réseau
broadcast Adresse de broadcast du réseau
il faut copier le fichier interfaces actuel en interfaces.bak avant de le modifier , c’est une bonne habitude à prendre
attention a la syntaxe , address en anglais et non pas adresse en français !
remplacer ensuite par le fichier de configuration réseau de m1 (les commentaires peuvent être oubliés ici pour gagner du temps)
redémarrer le service networking (mise à jour de la configuration réseau de m1)
systemctl restart networking
En relançant le service il peut y avoir des erreurs de syntaxe ou de logique à corriger journalctl à consulter
vous allez redémarrer la machine et vérifier que votre travail est bien fait !

Si vous obtenez ce genre de configuration réseau , redéfinir les interfaces 1,2 et 3
Les machines m2 à m7 /16
Vous noterez que le masque ici en CIDDR est /16 (255.255.0.0)
le réseau est 192.168.0.0 (on peut y mettre 2¹⁶ -2 machines!
réaliser m2
cloner m1 pour transformer le clone en m2 en respectant l’adressage ip statique 192.168.0.2/16
réaliser m3
ip statique 192.168.0.3/16
réaliser m4
ip statique 192.168.1.4/16
réaliser m5
ip statique 192.168.1.5/16
réaliser m6
ip statique 192.168.1.6/16
réaliser m7 (future passerelle)
2 IP sur une interface plus facile à réaliser , possible d’avoir 2 interfaces avec une IPV4 par interface
ip statique 192.168.0.254/16
ip statique 192.168.1.254/16
fichier proposé : /etc/interfaces de m7
# réseau passerelle
auto enp0s8
allow-hotplug enp0s8
# acces internet nat
allow-hotplug enp0s3
iface enp0s3 inet dhcp
#pour le réseau 0 (R0)
iface enp0s8 inet static
address 192.168.0.254
netmask 255.255.0.0
broadcast 192.168.0.255
#pour le réseau 1 (R1)
iface enp0s8 inet static
address 192.168.1.254
netmask 255.255.0.0
broadcast 192.168.1.255
Testons la Salle
Avec ping vous allez tester si m1 accède à la machine m2 et m2 accède à m3 etc .. expliquer ce que vous constatez et pourquoi .
tester avec les ip , et tester avec les nom.local
Mise en place de 2 zones (m1 à m7)
Pour mettre en place les 2 réseaux R0 et R1 , il faut changer les masques passer en notation CCIDR /16 à /24 les masques réseaux passent de 255.255.0.0 à 255.255.255.0 ( plus que 2⁸ -2 machines par réseau )
R0 : 192.168.0.0/24 (m1 à m3 )
R1 : 192.168.1.0/24 (m4 à m6 )
m7 étant dans les 2 réseaux , qu’on appelle aussi passerelle (gateway) 192.168.0.254/24 et 192.168.1.254/24
Donner le plan de routage (libre office)
Modifier les fichiers interfaces des machines m1 à m7
(il faut changer le masque avec la notation CCIDR /24 ou le masque 255.255.255.0 et adapter l’adresse de diffusion (broadcast) 192.168.0.255 pour R0 et 192.168.1.255 pour R1)
Relancer toutes les machines et vérifier toutes les configurations
Vérifier que les R0 ne permet d’accéder qu’aux machines de R0 et que celles de R1 pour R1 expliciter votre technique.
Comment est la machine m7 dans cette configuration ?
Donner une démarche pour vérifier qu’elle est accessible sur R0 et R1
PARTAGE INTERNET par la passerelle m7
Désactivons toutes les connections internet interface NAT dans notre exemple de m1 à m6
On dispose d’un parc informatique de 2 réseaux distincts R0 (m1 à m3) et R1 (m4 à m6) chacune des machines ne doit plus avoir un accès internet direct (l’interface NAT) donc nous allons procéder à la désactivation des interfaces NAT dans virtual Box toute machine éteinte de m1 à m6.
Dans virtual Box désactiver toutes les interfaces NAT de m1 à m6
Vérifier que plus aucune machine de R0 et R1 n’accède a internet
Mettre m7 en passerelle sur m1 à m6
m7 la gateway , ou passerelle va relier les 2 réseaux et devenir la passerelle par défaut de m1 à m6
pour mettre une route sur m1 à m6 il existe la commande (temporaire)
# pour R0 (m1 à m3)
ip route del default
ip route add default via 192.168.0.254
# pour R1 (m4 à m6)
ip route del default
ip route add default via 192.168.1.254
ip route show default # pour vérifier
mais ceci est temporaire !
Mieux de l’imposer dans le fichier /etc/network/interfaces
iface enp0s8 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254 # pour R0 , Pour R1 il faut adapter !
Vérifier que m7 dispose bien d’internet
Activer le forwarding IP sur la machine m7 et Fire Wall
#installer iptables (firewall linux)
# en root
apt update && apt install iptables -y
Sur m7 qui possède internet on va autoriser le partage d’internet mais avant il faut définir que la passerelle (m7) va traiter les messages qu’on va lui transmettre. La machine m7 devient un routeur basique!
# Activer immédiatement (2 commandes possible)
echo 1 > /proc/sys/net/ipv4/ip_forward
#ou
sysctl -w net.ipv4.ip_forward=1
#si on veut rendre cet état permanent il existe un fichier de configuration /etc/sysctl.conf
# décommenter la ligne de ce fichier et ca sera valable au reboot
#net.ipv4.ip_forward=1
# puis la commande sysctl -p /etc/sysctl.conf
# ou modifier vous même la la valeur de net.ipv4.ip_forward=1
A partir de la on peut voir les machines de R1 sur R0 et réciproquement ! la passerelle fait son travail !
Mais en fait le fait d’avoir fait 2 réseaux isolés était intéressant. On pourra rétablir cela avec iptables ! le firewall
# Ajouter la règle NAT pour partager la connexion
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
Explications
iptables
C'est l'outil en ligne de commande pour configurer le pare-feu Netfilter du noyau Linux
Permet de manipuler les règles de filtrage, NAT (Network Address Translation), et mangle
-t nat
Spécifie la table nat (Network Address Translation)
Les tables principales sont :
filter : filtrage par défaut (INPUT, OUTPUT, FORWARD)
nat : translation d'adresses (PREROUTING, POSTROUTING, OUTPUT)
mangle : modification spéciale des paquets
raw : configuration avancée
-A POSTROUTING
-A = Append (ajouter une règle à la fin de la chaîne)
POSTROUTING = chaîne qui traite les paquets après la décision de routage
Cette chaîne est utilisée pour modifier les paquets qui vont sortir de la machine
Les modifications ici s'appliquent aux paquets déjà routés
-o enp0s3
-o = output interface (interface de sortie)
enp0s3 = nom de l'interface réseau (carte Ethernet)
La règle ne s'applique qu'aux paquets sortant par cette interface spécifique
-j MASQUERADE
-j = jump (sauter vers une cible/action)
MASQUERADE = cible spéciale qui effectue du NAT dynamique
Fonctionnement :
Remplace l'adresse IP source par l'IP de l'interface de sortie
Contrairement à SNAT, MASQUERADE s'adapte automatiquement si l'IP change (DHCP)
Utile pour les connexions internet partagées
Effet global de la commande
Cette commande configure un MASQUERADE (masquage) sur l'interface enp0s3. Elle permet à cette machine d'agir comme un routeur NAT :
Les paquets provenant du réseau interne (via d'autres interfaces) et sortant par enp0s3 voient leur adresse IP source remplacée par celle de enp0s3
Les machines du réseau interne peuvent accéder à internet via cette machine
La machine cache le réseau interne derrière une seule adresse IP publique/visible
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s3 -j MASQUERADE # pour R0
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o enp0s3 -j MASQUERADE # pour R1
Pour perfectionner nos fichiers interfaces, ajouter des dns
iface enp0s8 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 8.8.8.8 8.8.4.4
8.8.8.8 est le dns de google et son dns secondaire 8.8.4.4
Nous voila en possession d’une salle de machines avec 2 réseaux distincts dont l’administrateur va régler les partages ici en contrôlant m7 , le tp suivant va nous permettre de découvrir un peu mieux le firewall de Linux Iptables.
Sauvegarde de la Salle
Il est conseillé de regrouper les machines de la salle dans un fichier OVA de virtualBox ,car ce travail va nous permettre de continuer à étudier les réseaux , pour les TP suivant
La salle complète peut faire jusqu’à 8 G (7 machines )

Et pour information m1 ressemble à ça :

qui ressemble à m2 et m3 jusqu’a m6 (une seule interface réseau par machine sur le switch interne )
m7 étant différente (2 interfaces réseaux, une NAT , et une sur le switch interne )


