-
Manipulations IP et masque (avec le binaire)
-
Être capable de répondre à des questions comme :
- combien d'adresses dispo dans un réseau donné ?
- première et dernière adresse d'un réseau donné ?
- j'ai un
/24, je peux faire combien de/26? - j'ai X PCs, X imprimantes, X serveurs qui ont besoin d'adresses IP, et un
/24à ma disposition, comment je le coupe ? - est-ce que
192.168.1.24/24et192.168.1.23/24sont dans le même réseau ?
-
Firewall (bref)
-
Ligne de commande (bref, navigation de dossier)
Le réseau désigne ici toutes fonctionnalités d'un PC permettant de se connecter à d'autres machines.
De façon simplifiée, on appelle stack TCP/IP ou pile TCP/IP l'ensemble de logiciels qui permettent d'utiliser et configurer des cartes réseau avec des adresses IP. C'est juste un gros mot savant pour désigner tout ce qui touche de près ou de loin au réseau dans une machine okay ? :)
Lorsque l'on parle de réseau, on désigne souvent par client tout équipement qui porte une adresse IP.
Donc vos PCs sont des clients, et on va explorer leur réseau, c'est à dire, leur pile TCP/IP.
- Déroulement et rendu du TP
- Hints pour les TPs en réseau avec moi :)
- I. Exploration de la pile TCP/IP (individuel)
- II. Exploration de la pile TCP/IP (par deux)
- III. Autres outils/protocoles élémentaires côté client
- Bilan
- 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 leIII.) - on prendra le temps, mais le travail devra être rendu à travers Github ou tout autre plateforme supportant le
md(markdown)
- vu que vous travaillez en groupe, aucun problème pour copier/coller les parties à faire à plusieurs (tout le
- Le rendu doit :
- comporter des réponses aux questions explicites
- comporter la marche à suivre pour réaliser les outils utilisés :
- en ligne de commande, screenshots ou copier/coller
- 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 nom de la commande tapée - vous pouvez vous inspirer de ce rendu effectué par un élève de B2 pour un cours de Linux
- de façon générale, tout ce que vous faites et qui fait partie du TP, vous me le mettez :)
- faites vos recherches internet en anglais, les résultats seront plus nombreux et plus pertinents
- dans le TP, lisez en entier une partie avant de commencer à la réaliser. Ca donne du sens et aide à la compréhension
- allez à votre rythme. Le but n'est pas de finir le TP, mais plutôt de bien saisir et correctement appréhender les différentes notions
- n'hésitez pas à me demander de l'aide régulièrement mais essayez toujours de chercher un peu par vous-mêmes avant :)
- pour moult raisons, il sera préférable pendant les cours de réseau de désactiver votre firewall. Vous comprendrez ces raisons au fur et à mesure du déroulement du cours très justement. N'oubliez pas de le réactiver après coup.
En utilisant la ligne de commande (CLI) de votre OS :
Affichez les infos des cartes réseau de votre PC
- nom, adresse MAC et adresse IP de l'interface WiFi
- nom, adresse MAC et adresse IP de l'interface Ethernet
- déterminer, pour chacune d'entre elles :
Affichez votre gateway
- trouvez sur internet une commande pour connaître l'adresse IP de la passerelle de votre carte WiFi
En utilisant l'interface graphique de votre OS :
Trouvez comment afficher les informations sur une carte IP (change selon l'OS)
- là aussi, cherchez sur internet
- trouvez l'IP, la MAC et la gateway pour l'interface WiFi de votre PC
- à quoi sert la gateway dans le réseau d'Ingésup ?
Utilisez l'interface graphique de vorte OS pour changer d'adresse IP :
-
calculez la première et la dernière IP disponibles du réseau (pour rappel, l'adresse de réseau et l'adresse broadcast ne sont pas "disponibles")
-
changez l'adresse IP de votre carte WiFi pour une autre (mais toujours dans le même réseau)
-
NOTE : si vous utilisez la même IP que quelqu'un d'autre, il se passerait la même chose qu'en vrai avec des adresses postales :
- deux personnes habitent au même numéro dans la même rue, mais dans deux maisons différentes
- quand une des personnes envoie un message, aucun problème, l'adresse du destinataire est unique, la lettre sera reçue
- par contre, pour envoyer un message à l'une de ces deux personnes, le facteur sera dans l'impossibilité de savoir dans quelle boîte aux lettres il doit poser le message
- ça marche à l'aller, mais pas au retour
-
ça serait bien un outil pour scanner le réseau à un instant T afin de choisir une adresse IP libre, non ?
nmap est un outil de scan réseau. On peut faire des tas de choses avec, on va se cantonner à des choses basiques pour le moment.
Les commandes nmap se présentent comme : nmap OPTIONS CIBLE
-
nmapest le nom de la commande -
les
OPTIONSse précisent avec le caractère-comme pour beaucoup de commandes- exemple :
nmap -sP(sPc'est un Ping Scan, on y reviendra)
- exemple :
-
la cible est soit une adresse de réseau (on cible tous les hôtes du réseau), soit un hôte simple
- hôte simple :
nmap -sP 192.168.1.35 - réseau :
nmap -sP 192.168.1.0/24(notation CIDR)
- hôte simple :
-
utilisation
- téléchargez
nmapen suivant les instructions du site officiel pour votre OS - que vous l'utilisiez en GUI ou en CLI, vous pouvez utiliser des commandes
nmap
- téléchargez
Utilisez nmap pour scanner le réseau de votre carte WiFi et trouver une adresse IP libre
-
exemple de commande pour le réseau Ingésup
nmap -sn -PE <ADRESSE_DU_RESEAU_CIBLE>pour trouvez les hôtes actuellements sur le réseau -
trouver le "nom" associés aux adresses IP :
nmap -sL <ADRESSE_DU_RESEAU_CIBLE>(non-fonctionnel à ingésup, c'est juste pour votre culture :) )- attention ! Les hôtes retournés par cette commande peuvent être actuellement déconnectés du réseau
- on reviendra sur le fonctionnement de ça plus tard :)
-
nmapest un outil de scan de réseau très puissant, on en reparlera ! -
suivant ce que vous faites avec
nmapil y a moyen que ce soit bien le foutoir sur le réseau Ingésup, un peu plus tard dans le TP il y aura une partie pour observer un peu tout ce qui passe.
-
Modifiez de nouveau votre adresse IP vers une adresse IP que vous savez libre grâce à
nmap -
Modifiez votre adresse de gateway et essayez d'aller sur un site internet
-
NOTE : si vous aviez déjà une adresse IP, c'est à cause d'un truc qu'on appelle le DHCP on y reviendra aussi !
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.
- deux PCs avec ports RJ45
- un câble RJ45
- firewalls désactivés sur les deux PCs
Ok c'est la partie tendue. Prenez un câble. Branchez-le des deux côtés. Hop.
Cette étape peut 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 ! Hop.
Si vos PCs ont un port RJ45 alors y'a une carte Ethernet associée :
- modifiez l'IP des deux machines pour qu'elles soient dans le même réseau
- vérifiez à l'aide de commandes que vos changements ont pris effet
- utilisez
pingpour tester la connectivité entre les deux machines - testez avec un
/20, puis un/24, puis le plus petit réseau que vous trouvez.- inventez un nouveau réseau ! Comme
172.16.18.0/24par exemple !
- inventez un nouveau réseau ! Comme
Ca, ça peut toujours dépann. 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 ingésup
- 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. Schéma tout moche again ?
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 un menu fait exprès
- sur Linux, faites le en ligne de commande ou utilisez Network Manager (présent sur tous les Linux communs)
- sur MacOS : toute façon vous avez pas de ports RJ, si ? :o
-
pour tester la connectivité à internet on utilise souvent un
ping -
je veux voir un
ping 8.8.8.8qui fonctionne sur un PC sans carte WiFi. Appelez-moi quand vous avez fait ça :)
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.
Sur 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 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
nc.exe -l -p 8888=> "netcat, écoute sur le port numéro 8888 stp"- il se passe rien ? Normal, faut attendre qu'un client se connecte
-
sur le PC client avec par exemple l'IP 192.168.1.2
nc.exe 192.168.1.12 8888=> "netcat, connecte toi au port 8888 de la machine 192.168.1.12 stp"- une fois fait, vous pouvez taper des messages dans les deux sens
-
appelez-moi quand ça marche ! :)
-
pour aller un peu plus loin
- le serveur peut préciser sur quelle IP écouter, et ne pas répondre sur les autres
- par exemple, on écoute sur l'interface Ethernet, mais pas sur la WiFI
- pour ce faire
nc.exe -l -p PORT_NUMBER IP_ADDRESS - par exemple
nc.exe -l -p 9999 192.168.1.37 - on peut aussi accepter uniquement les connexions internes à la machine en écoutant sur
127.0.0.1
- téléchargez l'outil Wireshark
- utilisez le pour observer les trames qui circulent entre vos deux carte Ethernet
- pendant un
ping - pendant un
netcat - pendant que le PC1 sert du PC2 comme gateway
- prenez moi des screens des trames en question
- on décortiquera tout ça au prochain cours ensemble
- pendant un
Toujours par 2 :
- le but est de configurer votre firewall pour faire fonctionner plusieurs choses
1. Activez votre firewall
2. Autoriser
ping- configurer le firewall de votre OS pour accepter le
ping - aidez vous d'internet
- on rentrera dans l'explication dans un prochain cours mais sachez que
pingenvoie un message ICMP de type 8 (demande d'ECHO) et reçois un message ICMP de type 0 (réponse d'écho) en retour 3. Autoriserncsur un port spécifique - choisissez arbitrairement un port entre 1024 et 20000
- vous utiliserez ce port pour communiquer avec
netcatpar groupe de 2 toujours - le firewall du PC serveur devra avoir un firewall activé et une
netcatqui fonctionne - appelez-moi quand c'est OK
- configurer le firewall de votre OS pour accepter le
Bon ok vous savez définir des IPs à la main. Mais pour être dans le réseau Ingésup, vous l'avez jamais fait.
C'est le serveur DHCP d'Ingésup qui vous a donné une IP.
- afficher l'adresse IP du serveur DHCP du réseau WiFi
- cette adresse a une durée de vie limitée. C'est le principe du bail DHCP (ou DHCP lease). Trouver la date d'expiration de votre bail DHCP
- renseignez-vous un peu sur le fonctionnement de DHCP dans les grandes lignes. On aura un cours là dessus :)
- demandez une nouvelle adresse IP (en ligne de commande)
Le protocole DNS permet la résolution de nom de domaine vers adresse IP. Ce protocole permet d'aller sur google.com plutôt que de devoir utiliser l'adresse IP du serveur de Google.
Un serveur DNS est un serveur à qui l'on peut poser des questions sur un nom de domaine comme google.com.
Si votre navigateur fonctionne "normalement" : il vous permet d'aller sur google.com, votre ordinateur connaît forcément l'adresse d'un serveur DNS.
- trouver l'adresse IP du serveur DNS que connaît votre ordinateur
- utiliser, en ligne de commande l'outil
nslookuppour lui poser des questions (sur Windows). Sur GNU/Linux et MacOS vous devriez avoirdig- faites un lookup (lookup = "dis moi à quelle IP se trouve tel nom de domaine")
- pour
google.com - pour
ynov.com - interpréter les résultats de ces commandes
- pour
- faites un reverse lookup (= "dis moi si tu connais un nom de domaine pour telle IP")
- pour l'adresse
78.78.21.21 - pour l'adresse
92.16.54.88 - interpréter les résultats
- si vous vous demandez, j'ai pris des adresses random :)
- pour l'adresse
- faites un lookup (lookup = "dis moi à quelle IP se trouve tel nom de domaine")
En combinant des trucs qu'on a vu plus tôt, ça se fait facilement d'aller plus loin :
- ouvrir Wireshark pendant les requêtes DHCP et DNS
- se renseigner sur les différences entre WiFi et câble
- explorer l'interface d'administration de votre box (chez vous) avec tout ça en tête
- sinon, elle sert à quoi la MAC si on a des IP ? => Se renseigner sur ARP
- utiliser un switch (physique) et se connecter non pas à 2, mais à 3 ou 4 ou 5 et faire mumuse avec le réseau ainsi créé
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 d'analyse de trafic :
wireshark - un outil pour faire des requêtes DNS :
nslookupoudig
- un outil de diagnostic simple :
- manipulation simple de vos firewalls
Résumé :
- 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.
- 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 :)