« Réseau » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 6 : | Ligne 6 : | ||
On peut donc basculer de l’un à l’autre. L’installation de nouveaux OS se fait sans trop de problèmes hormis que ça pompe des ressources. | On peut donc basculer de l’un à l’autre. L’installation de nouveaux OS se fait sans trop de problèmes hormis que ça pompe des ressources. | ||
Le matériel, c’est mon PC en dur.<br/> L’OS hôte, c’est pour moi Ubuntu.<br/> L’émulateur simule un nouveau matériel pour les OS invités, les logiciels de contrôle permettent de les contrôler ; ce qu’on appelle (l’union des deux) en général outil de virtualisation.<br/> Une VM regroupe User Space + OS invité + drivers. | Le matériel, c’est mon PC en dur.<br/> L’OS hôte, c’est pour moi Ubuntu.<br/> L’émulateur simule un nouveau matériel pour les OS invités, les logiciels de contrôle permettent de les contrôler ; ce qu’on appelle (l’union des deux) en général outil de virtualisation.<br/> Une VM regroupe User Space + OS invité + drivers.<br/> [http://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Diagramme_ArchiEmulateur.png/610px-Diagramme_ArchiEmulateur.png] | ||
Les VM seront intéressantes car on ne risque pas de modifier, mettre en panne son PC, ont peut faire des snapshots, etc. | Les VM seront intéressantes car on ne risque pas de modifier, mettre en panne son PC, ont peut faire des snapshots, etc. |
Version du 10 octobre 2018 à 17:47
La Virtualisation
Définition : La virtualisation permet de faire fonctionner plusieurs OS, généralement différents, sur un seul socle matériel.
On peut donc basculer de l’un à l’autre. L’installation de nouveaux OS se fait sans trop de problèmes hormis que ça pompe des ressources.
Le matériel, c’est mon PC en dur.
L’OS hôte, c’est pour moi Ubuntu.
L’émulateur simule un nouveau matériel pour les OS invités, les logiciels de contrôle permettent de les contrôler ; ce qu’on appelle (l’union des deux) en général outil de virtualisation.
Une VM regroupe User Space + OS invité + drivers.
[1]
Les VM seront intéressantes car on ne risque pas de modifier, mettre en panne son PC, ont peut faire des snapshots, etc.
On utilisera VirtualBox (youpi).
Trois vidéos : utilisation basique de virtualbox, Importation d’une machine, et Snapshot d’une VM.
Pour importer une VM, Fichiers > Importer un appareil virtuel
Il faut réinitialiser les adresses MAC de toutes les NIC !
CONFIGURATION D’UNE VM
Les types de réseau dans virtualbox :
-Aucune Connexion
-NAT : Il y’a un NAT entre la VM et mon PC qui agit comme une box, peut nécessiter un PAT
-Réseau NAT : ???
-Accès par pont : La VM est directement sur le réseau, comme si elle était branchée sur mon switch
-Réseau Interne : A éviter, apparement. Préférer « Réseau Hôte » ou réseau privé hôte. Plusieurs VM en LAN, isolées de l’extérieur.
-Réseau Privé Hôte : Une LAN entre mes VM qui communique aussi avec mon PC, mais pas avec l’extérieur.
-Pilote générique : cadre d’utilisation spécifique, à n’utiliser que si on me le demande.
Le presse-papier partagé est dans la configuration > Général de la VM.
ANALYSE DE RESEAUX
Utilisation basique de wireshark
Deux modes : trace réseau faite sur un routeur et lue sur Wireshark : 2etrace réseau live (en root).
Je lance une capture en choisissant l’interface. Les paquets arrivent dans la capture.
Une fois arrêtée on peut analyser la capture.
En haut les trames, en bas les infos les concernant, encore en bas les trames brutes.
Wireshark analyse les trames et donne le protocole le plus significatif pour moi. Par exemple sur du DNS il dira standard query, etc. En cliquant sur une trame j’ai plus d’infos. Date, temps Epoch, numéro de trame, taille… Et surtout les protocoles que Wireshark a reconnu. Il met des règles de coloration (ex : UDP en bleu…) Il affiche les infos ethernet (@ MAC, constructeur de la NIC, etc). Les Flags : on en a dans TCP, dans ethernet, etc ; Dans TCP on peut par exemple voir les falgs d’un scan Xmas Tree (Fin, RST, etc). TTL. Protocole (en traduisant les infos à partir des numéros), header checksum, ip source et destination. IP RFC 1918 = Ip privée.
On a des infos sur un paquet UDP par ex : port, service, etc. Par exemple sur du DNS on verra le flag Recursion pour un paquet à destination d’un resolver. Si je suis sur le paquet question, j’aurais un lien vers le paquet réponse : Wireshark analyse les conversations.
On a aussi du TCP : port source/dest ; le sequence number ; ack number ; les flags (par ex : SYN), la taille du paquet, taille du header, taille de la window (nombre d’octets que le récepteur est prêt à recevoir à n’importe quel moment, appellée TCP window size ou TCP receiver size) ; les données éventuelles. J’aurais la réponse à un SYN, un SYN/ACK.
Au lieu de faire ça on peut aussi faire un filtre sur la partie TCP : clic droit > Conversation Filter > TCP. J’aurais alors les infos ne concernant que cette conversation. Très utile !!! Cela me permet de suivre une conversation, comme par ex. Syn, SynN/ACK, ACK, puis requête port 80 GET, avec les infos sur le matériel, etc.
On peut faire d’autres filtres : ex : ip.src == 192.168.1.1 me donne tous les paquets ip venant de cette adresse. ip.dst == 192.168.1.1 : la même chose en destination. ip.host == 192.168.1.1 : me donne les paquets en source ou destination avec cette IP.
Maîtriser mes outils permet d’être plus efficace.
cf GeoIP ?
Utilisation basique de TCPDump
TCPDump est en ligne de commandes. Moins simple à utiliser ?
Souvent : TCPDump pour la capture de la trace et wireshark pour l’analyse.
1 - On lance tcpdump
2 - On stocke les données dans un fichier
3 - On analyse avec wireshark
… Mais on peut aussi analyser direct avec TCPdump. En live, en temps réel, pour dialoguer avec une personne externe…
Utilisation basique : tcpdump -i eth0: basique
tcpdump -i eth0 -n: affichage numérique (évite les requêtes DNS)
tcpdump -i eth0 -n -v: verbeux
tcpdump -i eth0 -n -v -A: Dump des paquets
tcpdump -i eth0 -n -v -A -w fichier_trace.out :Génère un fichier de la trace lisible par Wireshark.
Les infos s’affichent direct.
-v affiche un peu de décodage des trames (fonctions, flags, etc). Je peux faire des tris par la suite.
-A affiche les dumps, c’est-à-dire le contenu des paquets. C’est intéressant surtout si on utilise pas de SSL.
Je peux faire du grep en live, par exemple. Dans filters,> Display filters j’ai des listes de filtres.
Utiliser Wireshark pour :
identifier le nombre de trames Ethernet échanger
cf No. Le plus élevé ou statistics > ipv4 > et là j’ai plein de stats qui donnent entre autre le total de paquets
- voir la liste de tous les pairs Ethernet ayant eu des échanges durant cette capture
Statistics > Endpoints > Ethernet pour les @MAC ; Si je veux les hosts IP je peux aller dans statistics > ipv4 > all adresses
- identifier tous les échanges concernant le protocole DNS
Statistics > DNS : on voit le nombre de Query et de Response ; je peux aussi cliquer sur l’onglet protocols de la capture pour trier par protocole ; je peux aussi taper ‘dns’ dans la fenêtre de protocole
- identifier tous les échanges concernant le protocole HTTP
Idem que DNS : on peut non seulement filtrer mais HTTP a un menu détaillé dans statistics
- identifier l'adresse IPv4 ou IPv6 du serveur de l'UPEC
filtrer http and ip.host == 192.168.1.40 : je vois un GET université etc. L’host est 193.48.143.18
- identifier le protocole sur lequel est basé HTTP : TCP ou UDP
TCP, il suffit de regarder un trame : Elle contient des infos TCP puis des infos HTTP
Modèle OSI
Modèle en couches, on peut faire le parallèle avec le courrier postal.
Haut niveau : utilisateur
Bas niveau : Matériel.
Application : point d’accès des applis réseau.
Présentation:Encodage, chiffrement des données.
Session : Gestion des sessions entre les machines (identifier les uutilisateurs…)
Transport:Contrôle de flux/congestion
Réseau:adressage et routage (global)
Liaison:adressage physique ou local : sur une liaison, avec @ MAC
Physique : Transport des données physiquement, sur la câble (ou l’onde…)
OSI : Open System Interconnection, norme ISO iso/ec 7498-1:1994
L’iso est payante mdr
C’est un modèle « théorique » : idéal, non réellement implémenté.
Quelles sont ses qualités ? Ses limites ?
Langage commun et abstraction
Cque couche fournit un :
-Un service spécifique
-Un langage commun
-Des moyens d’échanger de l’information
Chaque couche communique avec celles qui lui parle en face :
La couche application de A parle à la couche application de la machine B
L’abstraction permet de s’affranchir des sujets techniques des couches inférieures :
la couche n se fiche de la couche n-1
Encapsulation / désencapsulation
Permet d’intégrer des données sur les diff. couches sans jamais les modifier.
On encaspule au départ, on désencapsule à l’arrivée.
Communication bout-à-bout :
Ce principe est cassé par NAT et revient au coeur d’internet avec IPV6.
C’est le coeur du mpodèle OSI : la communication se fait par les deux extrémités. L’intelligence du réseau est aux extrémités du réseau : pas dans les routeurs ou les switches. Les extrémités se servent du réseau comme un simple transporteur. Internet ne doit servir qu’à transporter des données. Le réseau repose sur des principes simples.
Sur une communication les éléments intermédiaires ne remontent pas plus haut que la couche 3 : ils n’ont pas besoin de savoir ce que fait la couche transport, par exemple.
Les couches réseau sont simples, à partir de transport ça se complexifie, avec des algorithmes poussés.
Tout ça c’est le contraire du téléphone, dans lequel l’intelligence EST dans le réseau. Ex : double-appel.
Le réseau a principes simples.
Pour ajouter un service, il faut juste deux extrémités qui parlent toutes le même langage.
Pas besoin de se synchroniser pour rebooter Internet.
Modèle OSI est un idéal pas implémenté pour internet, mais Internet s’en sert.
Encapsulation
Communication bout-à-bout
Dialogue sur une même couche
Réseau/Extrémité.
Modèle TCP/IP (le modèle Internet) ou modèle DOD
Internet n’est pas une norme ISO
OSI est une norme ISO ; Internet est basé sur des standards de l’IETF appellés RFC
Norme!= standard en français (en anglais on utilise le terme standard pour les deux)
On parle de « modèle TCP/IP »
Points communs :
Dialogue sur la même couche (sauf contre-exemple)
Communication bout-à-bout
Encapsulation/désencapsulation
(TCP/UDP)
(IP)
Sur internet on gère soi-même les couches application (d’où les problèmes d’encodage)
Différences :
En OSI, une couche ne dépend pas d’une autre.
En TCP/IP, passer de ipv4 à ipv6 a nécessité de mettre à jour la couche transport (TCP / UDP)
en cas d’erreur sur UDP (couche3) le msg d’erreur est un paquet ICMP (couche 2)
Modèle OSI est un modèle idéal pas implémenté ; on utilise en vrai TCP/IP. On a encapsulation, commu. bout-à-bout, une couche parle à une même couche.