🕒 : 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 )