TP1 - Premier pas réseau
Le terme réseau désigne au sens large toutes les fonctionnalités d'un PC permettant de se connecter à d'autres machines.
Le protocole IP est très important, il est central dans l'utilisation du réseau moderne.
On va voir IPv4 en cours, il existe aussi IPv6, plus récent, qui fonctionne sur les mêmes principes. Nous en parlerons aussi en cours.
Lorsque l'on parle de réseau, on désigne souvent par le terme client tout équipement qui porte une adresse IP.
Donc vos PCs sont des clients, et on va explorer leur réseau dans ce TP.
Sommaire
TP1 - Premier pas réseau
Sommaire
Déroulement et rendu du TP
I. Exploration locale en solo
1. Affichage d'informations sur la pile TCP/IP locale
En ligne de commande
En graphique (GUI : Graphical User Interface)
2. Modifications des informations
A. Modification d'adresse IP (part 1)
II. Exploration locale en duo
1. Prérequis
2. Câblage
Création du réseau (oupa)
3. Modification d'adresse IP
4. Utilisation d'un des deux comme gateway
5. Petit chat privé
6. Firewall
III. Manipulations d'autres outils/protocoles côté client
1. DHCP
2. DNS
IV. Wireshark
Bilan
Déroulement et rendu du TP
Groupe de 2 jusqu'à 4 personnes. Il faut au moins deux PCs avec une prise RJ45 (Ethernet) par groupe
Un câble RJ45 (fourni) pour connecter les deux PCs
Un compte-rendu par personne
vu que vous travaillez en groupe, aucun problème pour copier/coller les parties à faire à plusieurs (tout le II.)
une bonne partie est à faire de façon individuelle malgré tout (tout le I. et le III.)
Le rendu doit :
comporter des réponses aux questions explicites
comporter la marche à suivre pour réaliser les étapes demandées :
en ligne de commande, copier/coller des commandes et leurs résultat : JE NE VEUX AUCUN SCREEN DE LIGNE DE COMMANDE
en interface graphique, screenshots ou nom des menus où cliquer (sinon ça peut vite faire 1000 screenshots)
par exemple, pour la partie 1.A. je veux le la commande tapée et le résultat
de façon générale, tout ce que vous faites et qui fait partie du TP, vous me le mettez :)
⚠️ ⚠️ Désactivez votre firewall pour ce TP. ⚠️ ⚠️
I. Exploration locale en solo
1. Affichage d'informations sur la pile TCP/IP locale
En ligne de commande
En utilisant la ligne de commande (CLI) de votre OS :
🌞 Affichez les infos des cartes réseau de votre PC
```
Carte réseau sans fil Wi-Fi :
Adresse physique . . . . . . . . . . . : 7C-B5-66-B2-82-
Adresse IPv4. . . . . . . . . . . . . .: 10.33.16.168(préféré)
```
```
Carte Ethernet Ethernet :
Adresse physique . . . . . . . . . . . : 9C-2D-CD-5B-40-5F
```
🌞 Affichez votre gateway
```
Carte réseau sans fil Wi-Fi :
Passerelle par défaut. . . . . . . . . : 10.33.19.254
```
🌞 Déterminer la MAC de la passerelle
```Interface : 10.33.16.168 --- 0xa
Adresse Internet Adresse physique Type
10.33.19.254 00-c0-e7-e0-04-4e dynamique
```
🌞 Trouvez comment afficher les informations sur une carte IP (change selon l'OS)
```
Suffixe DNS propre à la connexion:
Adresse physique: 7C-B5-66-B2-82-0C
Adresse IPv4: 10.33.16.168
Passerelle par défaut IPv4: 10.33.19.254
```
2. Modifications des informations
A. Modification d'adresse IP (part 1)
🌞 Utilisez l'interface graphique de votre OS pour changer d'adresse IP :

🌞 Il est possible que vous perdiez l'accès internet. Que ce soit le cas ou non, expliquez pourquoi c'est possible de perdre son accès internet en faisant cette opération.
*Ci l'adrèsse est la mème alors l'une des deux seras privilègier par rapport à l'autre qui ne recevra rien donc pas d'internet*
II. Exploration locale en duo
Owkay. Vous savez à ce stade :
afficher les informations IP de votre machine
modifier les informations IP de votre machine
c'est un premier pas vers la maîtrise de votre outil de travail
On va maintenant répéter un peu ces opérations, mais en créant un réseau local de toutes pièces : entre deux PCs connectés avec un câble RJ45.
1. Prérequis
deux PCs avec ports RJ45
un câble RJ45
firewalls désactivés sur les deux PCs
2. Câblage
Ok c'est la partie tendue. Prenez un câble. Branchez-le des deux côtés. Bap.
Création du réseau (oupa)
Cette étape pourrait paraître cruciale. En réalité, elle n'existe pas à proprement parlé. On ne peut pas "créer" un réseau.
Si une machine possède une carte réseau, et si cette carte réseau porte une adresse IP, alors cette adresse IP se trouve dans un réseau (l'adresse de réseau). Ainsi, le réseau existe. De fait.
Donc il suffit juste de définir une adresse IP sur une carte réseau pour que le réseau existe ! Bap.
3. Modification d'adresse IP
🌞 Modifiez l'IP des deux machines pour qu'elles soient dans le même réseau
panneau de configuration > Réseau et Internet > Centre Réseau et partage > Etats de Ethernet > Propriétés de Ethernet > Protocole Internet version 4(TCP/IPv4)
- Si vos PCs ont un port RJ45 alors y'a une carte réseau Ethernet associée
- choisissez une IP qui commence par "10.10.10."
- /24 pour la longueur de masque, ou 255.255.255.0 pour le masque (suivant les OS, l'info est demandée différement, mais c'est la même chose)
🌞 Vérifier à l'aide d'une commande que votre IP a bien été changée
```
C:\Users>ipconfig
Carte Ethernet Ethernet :
Adresse IPv4. . . . . . . . . . . . . .: 10.10.10.2
Masque de sous-réseau. . . . . . . . . : 255.255.255.0
```
🌞 Vérifier que les deux machines se joignent
```
C:\Users>ping 10.10.10.1
Envoi d’une requête 'Ping' 10.10.10.1 avec 32 octets de données :
Réponse de 10.10.10.1 : octets=32 temps=2 ms TTL=128
Réponse de 10.10.10.1 : octets=32 temps=2 ms TTL=128
Réponse de 10.10.10.1 : octets=32 temps=3 ms TTL=128
Réponse de 10.10.10.1 : octets=32 temps=3 ms TTL=128
Statistiques Ping pour 10.10.10.1:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 2ms, Maximum = 3ms, Moyenne = 2ms
```
- utilisez la commande ping pour tester la connectivité entre les deux machines
La commande ping est un message simple envoyé à une autre machine. Cette autre machine retournera alors un message tout aussi simple. ping utilise un protocole frère de IP : le protocole ICMP. On mesure souvent la latence réseau grâce à un ping : en mesurant la durée entre l'émission du ping et la réception du retour.
🌞 Déterminer l'adresse MAC de votre correspondant
```
C:\Users>arp -a
Interface : 10.10.10.1 --- 0x5
Adresse Internet Adresse physique Type
10.10.10.2 9c-2d-cd-5b-40-5f dynamique
```
4. Utilisation d'un des deux comme gateway
Ca, ça peut toujours dépann irl. Comme pour donner internet à une tour sans WiFi quand y'a un PC portable à côté, par exemple.
L'idée est la suivante :
vos PCs ont deux cartes avec des adresses IP actuellement
la carte WiFi, elle permet notamment d'aller sur internet, grâce au réseau YNOV
la carte Ethernet, qui permet actuellement de joindre votre coéquipier, grâce au réseau que vous avez créé :)
si on fait un tit schéma tout moche, ça donne ça :
Internet Internet
| |
WiFi WiFi
| |
PC 1 ---Ethernet--- PC 2
- internet joignable en direct par le PC 1
- internet joignable en direct par le PC 2
vous allez désactiver Internet sur une des deux machines, et vous servir de l'autre machine pour accéder à internet.
Internet Internet
X |
X WiFi
| |
PC 1 ---Ethernet--- PC 2
- internet joignable en direct par le PC 2
- internet joignable par le PC 1, en passant par le PC 2
pour ce faiiiiiire :
désactivez l'interface WiFi sur l'un des deux postes
s'assurer de la bonne connectivité entre les deux PCs à travers le câble RJ45
sur le PC qui n'a plus internet
sur la carte Ethernet, définir comme passerelle l'adresse IP de l'autre PC
sur le PC qui a toujours internet
sur Windows, il y a une option faite exprès (google it. "share internet connection windows 10" par exemple)
sur GNU/Linux, faites le en ligne de commande ou utilisez Network Manager (souvent présent sur tous les GNU/Linux communs)
sur MacOS : toute façon vous avez pas de ports RJ, si ? :o (google it sinon)
🌞Tester l'accès internet
```Réponse de 216.58.213.142 : octets=32 temps=22 ms TTL=248
Réponse de 216.58.213.142 : octets=32 temps=22 ms TTL=248
Réponse de 216.58.213.142 : octets=32 temps=22 ms TTL=248
Réponse de 216.58.213.142 : octets=32 temps=21 ms TTL=248
```
🌞 Prouver que la connexion Internet passe bien par l'autre PC
```
C:\Users\Ethan>tracert 1.1.1.1
Détermination de l’itinéraire vers one.one.one.one [1.1.1.1]
avec un maximum de 30 sauts :
1 1 ms 1 ms 1 ms SeigneurHugoPCMasterRace [192.168.137.1]
2 * * * Délai d’attente de la demande dépassé.
3 6 ms 5 ms 3 ms 10.33.19.254
12 25 ms 26 ms 23 ms one.one.one.one [1.1.1.1]
Itinéraire déterminé.
```
5. Petit chat privé
On va créer un chat extrêmement simpliste à l'aide de netcat (abrégé nc). Il est souvent considéré comme un bon couteau-suisse quand il s'agit de faire des choses avec le réseau.
Sous GNU/Linux et MacOS vous l'avez sûrement déjà, sinon débrouillez-vous pour l'installer :). Les Windowsien, ça se passe ici (from https://eternallybored.org/misc/netcat/).
Une fois en possession de netcat, vous allez pouvoir l'utiliser en ligne de commande. Comme beaucoup de commandes sous GNU/Linux, Mac et Windows, on peut utiliser l'option -h (h pour help) pour avoir une aide sur comment utiliser la commande.
Sur un Windows, ça donne un truc comme ça :
C:\Users\It4\Desktop\netcat-win32-1.11>nc.exe -h
[v1.11 NT www.vulnwatch.org/netcat/]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]
options:
-d detach from console, background mode
-e prog inbound program to exec [dangerous!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-L listen harder, re-listen on socket close
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]
L'idée ici est la suivante :
l'un de vous jouera le rôle d'un serveur
l'autre sera le client qui se connecte au serveur
Précisément, on va dire à netcat d'écouter sur un port. Des ports, y'en a un nombre fixe (65536, on verra ça plus tard), et c'est juste le numéro de la porte à laquelle taper si on veut communiquer avec le serveur.
Si le serveur écoute à la porte 20000, alors le client doit demander une connexion en tapant à la porte numéro 20000, simple non ?
Here we go :
🌞 sur le PC serveur avec par exemple l'IP 192.168.1.1
```
C:\Users\hugoa\netcat-1.11> .\nc.exe -l -p 8888
bonjour
bonjour
ça va ou quoi
c'est simple
nice & easy
ez
```
🌞 sur le PC client avec par exemple l'IP 192.168.1.2
```
PS C:\Users\Ethan\netcat-1.11> .\nc.exe 192.168.137.1 8888
s fd
tyo
yoyoy*
,,n,n,n
uuuuuuuuuuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiii
bonjour
bonjour
ça va ou quoi
c'est simple
nice & easy
ez
```
🌞 Visualiser la connexion en cours
```
C:\Windows\system32> netstat -a -n -b
TCP 192.168.137.1:8888 192.168.137.2:59814 ESTABLISHED
[nc.exe]
```
```
C:\Windows\system32> netstat -a -n -b
TCP 192.168.137.2:59814 192.168.137.1:8888 ESTABLISHED
[nc.exe]
```
🌞 Pour aller un peu plus loin
```
C:\Windows\system32> netstat -a -n -b | Select-String 8888
TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING
```
6. Firewall
Toujours par 2.
Le but est de configurer votre firewall plutôt que de le désactiver
🌞 Activez et configurez votre firewall
```
PS C:\Windows\system32> netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
Ok.
```
```
PS C:\Users\Ethan\netcat-1.11> ping 192.168.137.1
Envoi d’une requête 'Ping' 192.168.137.1 avec 32 octets de données :
Réponse de 192.168.137.1 : octets=32 temps=4 ms TTL=128
Réponse de 192.168.137.1 : octets=32 temps=4 ms TTL=128
Réponse de 192.168.137.1 : octets=32 temps=4 ms TTL=128
Réponse de 192.168.137.1 : octets=32 temps=4 ms TTL=128
```
autoriser le traffic sur le port qu'utilise nc
```
PS C:\Users\Ethan\netcat-1.11> .\nc.exe 192.168.137.1 8888
gvyuhujcvesjhcghuezsbch_duygv xhydu
zfgdfg
gdfg
fgfg
ddssqerf
h
```
III. Manipulations d'autres outils/protocoles côté client
1. DHCP
Bon ok vous savez définir des IPs à la main. Mais pour être dans le réseau YNOV, vous l'avez jamais fait.
C'est le serveur DHCP d'YNOV qui vous a donné une IP.
Une fois que le serveur DHCP vous a donné une IP, vous enregistrer un fichier appelé bail DHCP qui contient, entre autres :
l'IP qu'on vous a donné
le réseau dans lequel cette IP est valable
🌞Exploration du DHCP, depuis votre PC
```
Bail obtenu. . . . . . . . . . . . . . : mardi 4 octobre 2022 15:24:44
Bail expirant. . . . . . . . . . . . . : mardi 4 octobre 2022 16:58:25
Serveur DHCP . . . . . . . . . . . . . : 192.168.86.254
```
2. DNS
Le protocole DNS permet la résolution de noms de domaine vers des adresses IP. Ce protocole permet d'aller sur google.com plutôt que de devoir connaître et utiliser l'adresse IP du serveur de Google.
Un serveur DNS est un serveur à qui l'on peut poser des questions (= effectuer des requêtes) sur un nom de domaine comme google.com, afin d'obtenir les adresses IP liées au nom de domaine.
Si votre navigateur fonctionne "normalement" (il vous permet d'aller sur google.com par exemple) alors votre ordinateur connaît forcément l'adresse d'un serveur DNS. Et quand vous naviguez sur internet, il effectue toutes les requêtes DNS à votre place, de façon automatique.
```
Carte réseau sans fil Wi-Fi :
Serveurs DNS. . . . . . . . . . . . . : 8.8.8.8
8.8.4.4
1.1.1.1r
```
🌞 Utiliser, en ligne de commande l'outil nslookup (Windows, MacOS) ou dig (GNU/Linux, MacOS) pour faire des requêtes DNS à la main
faites un lookup (lookup = "dis moi à quelle IP se trouve tel nom de domaine")
```
> nslookup google.com
PS C:\Windows\system32> nslookup google.com
Serveur : dns.google
Address: 8.8.8.8
Réponse ne faisant pas autorité :
Nom : google.com
Addresses: 2a00:1450:4007:813::200e
172.217.18.206
```
```
> nslookup ynov.com
Serveur : ynov.com
Addresses: 2606:4700:20::681a:ae9
2606:4700:20::681a:be9
2606:4700:20::ac43:4ae2
104.26.11.233
104.26.10.233
172.67.74.226
*** ynov.com ne parvient pas à trouver nslookup : No response from server
```
interpréter les résultats de ces commandes
déterminer l'adresse IP du serveur à qui vous venez d'effectuer ces requêtes
faites un reverse lookup (= "dis moi si tu connais un nom de domaine pour telle IP")
pour l'adresse 231.34.113.12
pour l'adresse 78.34.2.17
interpréter les résultats
si vous vous demandez, j'ai pris des adresses random :)
IV. Wireshark
1. Intro Wireshark
Wireshark est un outil qui permet de visualiser toutes les trames qui sortent et entrent d'une carte réseau.
On appelle ça un sniffer, ou analyseur de trames.
Il peut :
enregistrer le trafic réseau, pour l'analyser plus tard
afficher le trafic réseau en temps réel
On peut TOUT voir.
Un peu austère aux premiers abords, une manipulation très basique permet d'avoir une très bonne compréhension de ce qu'il se passe réellement.
➜ Téléchargez l'outil Wireshark.
🌞 Utilisez le pour observer les trames qui circulent entre vos deux carte Ethernet. Mettez en évidence :


2. Bonus : avant-goût TCP et UDP
TCP et UDP ce sont les deux protocoles qui utilisent des ports. Si on veut accéder à un service, sur un serveur, comme un site web :
il faut pouvoir joindre en terme d'IP le correspondant
on teste que ça fonctionne avec un ping généralement
il faut que le serveur fasse tourner un programme qu'on appelle "service" ou "serveur"
le service "écoute" sur un port TCP ou UDP : il attend la connexion d'un client
comme vous avez fait avec netcat !
sauf qu'un netcat pourri, on peut par exemple faire tourner un site web
et donc plutôt qu'un autre netcat pourri, il faudra utiliser un navigateur web pour s'y connecter
le client connaît par avance le port TCP ou UDP sur lequel le service écoute
en utilisant l'IP et le port, il peut se connecter au service en utilisant un moyen adapté :
un navigateur web pour un site web
un ncat pour se connecter à un autre ncat
et plein d'autres, de façon générale on parle d'un client, et d'un serveur
🌞 Wireshark it
déterminez à quelle IP et quel port votre PC se connecte quand vous regardez une vidéo Youtube
il sera sûrement plus simple de repérer le trafic Youtube en fermant tous les autres onglets et toutes les autres applications utilisant du réseau
Bilan
Vu pendant le TP :
visualisation de vos interfaces réseau (en GUI et en CLI)
extraction des informations IP
adresse IP et masque
calcul autour de IP : adresse de réseau, etc.
connaissances autour de/aperçu de :
un outil de diagnostic simple : ping
un outil de scan réseau : nmap
un outil qui permet d'établir des connexions "simples" (on y reviendra) : netcat
un outil pour faire des requêtes DNS : nslookup ou dig
un outil d'analyse de trafic : wireshark
manipulation simple de vos firewalls
Conclusion :
Pour permettre à un ordinateur d'être connecté en réseau, il lui faut une liaison physique (par câble ou par WiFi).
Pour réceptionner ce lien physique, l'ordinateur a besoin d'une carte réseau. La carte réseau porte une adresse MAC
Pour être membre d'un réseau particulier, une carte réseau peut porter une adresse IP.
Si deux ordinateurs reliés physiquement possèdent une adresse IP dans le même réseau, alors ils peuvent communiquer.
Un ordintateur qui possède plusieurs cartes réseau peut réceptionner du trafic sur l'une d'entre elles, et le balancer sur l'autre, servant ainsi de "pivot". Cet ordinateur est appelé routeur.
Il existe dans la plupart des réseaux, certains équipements ayant un rôle particulier :
un équipement appelé passerelle. C'est un routeur, et il nous permet de sortir du réseau actuel, pour en joindre un autre, comme Internet par exemple
un équipement qui agit comme serveur DNS : il nous permet de connaître les IP derrière des noms de domaine
un équipement qui agit comme serveur DHCP : il donne automatiquement des IP aux clients qui rejoigne le réseau
chez vous, c'est votre Box qui fait les trois :)