La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours réseau Julien Bourgeois Année Spéciale SRC

Présentations similaires


Présentation au sujet: "Cours réseau Julien Bourgeois Année Spéciale SRC"— Transcription de la présentation:

1 Cours réseau Julien Bourgeois Année Spéciale SRC
IUT Belfort-Montbéliard Bureau recherche Numérica Bureau Enseignement Département R&T Certains transparents de Didier Donsez sur HTTP

2 [Biblio/webo]graphie
www-adele.imag.fr/users/Didier.Donsez/cours/http.pdf

3 Objectifs Votre métier repose sur les technologies réseau
Donner une idée des technologies réseau pour : Avoir un socle commun pour dialoguer avec les autres Comprendre un minimum ce qui se passe au niveau physique Etre capable de se débrouiller pour certaines opérations (Serveur web, DNS, serveur FTP, etc.)

4 Objectifs (1)

5 ? Objectifs (2) Que veut-elle comme service ? www.google.com
Où trouver ? ? Que faut-il lui envoyer ?

6 ? Objectifs (2) Que veut-elle comme service ? www.google.com
Où trouver ? ? Que faut-il lui envoyer ?

7 Où trouver www.google.com ?
Internet Contient des liaisons WAN (Wide area networks) Le LAN (Local Area Network) ou réseau local

8 ( L’adressage IP Toute machine connectée à internet a une adresse IP (Internet Protocol) C’est une adresse composée de 4 chiffres (0-255) séparés par des points Par exemple : Serveur web SRC, Serveur web pôle, Serveur R&T,

9 L’adressage IP (2) Adresse réseau 194 .57 .85 .209 194 .57 .85 .210
Adresse réseau Adresse machine

10 Masque de sous-réseau Comment différencier l’@ réseau de l’@ machine ?
A est associé un masque de sous-réseau (netmask) seule ne suffit donc pas ! Le netmask sert à éliminer machine de IP

11 Masque de sous-réseau (2)
Ces trois adresses ont le même netmask Adresse réseau Adresse machine

12 Masque de sous-réseau (3)
On obtient que réseau, mais à quoi ça sert ? & &

13 Classes d’adresses IP Classe Début Fin Notation CIDR Netmask associé
Classe A      /8 Classe B /16 Classe C /24

14 Classes d’adresses IP (2)
Nombre de réseaux Nombre d’adresses par réseau Classe A     128     16,777,214 Classe B     16,384     65,534 Classe C     2,097,152     254

15 Où trouver www.google.com ?
Internet Contient des liaisons WAN (Wide area networks) @IP Le LAN (Local Area Network) ou réseau local @IP

16 Où trouver www.google.com ?
On sait que : Les réseaux sont structurés en LAN/WAN Chaque appareil connecté à internet possède une adresse IP et un netmask Problème : n’est pas une adresse IP…

17 ( Le DNS Domain Name System
Protocole de communication Ensemble de serveurs Permet de faire la conversion entre un nom alphabétique et une adresse IP Important notamment quand on créé son site web car on doit référencer son adresse auprès des DNS !

18 Le DNS (2) Host (linux) ou nslookup (windows) affichent la correspondance Démarrer -> Exécuter -> cmd, puis : C:/>nslookup Serveur : tharradin.pu-pm.univ-fcomte.fr Address: Réponse ne faisant pas autorité : Nom : Addresses: , , Aliases: @IP

19 Le DNS (2) L'inverse est aussi possible… … et on l’appelle reverse DNS
C:/>nslookup Serveur : tharradin.pu-pm.univ-fcomte.fr Address: Nom : nf-in-f147.google.com Address: L'inverse est aussi possible… … et on l’appelle reverse DNS

20 Le DNS, format des noms Au début de l'Internet : espace à plat (fichier HOSTS.TXT) taille énorme conflits de noms Actuellement : espace hiérarchique Format des noms : (x1.x2...xN).y.z Avec au minimum 2 mots, et <63 carac. Exemple : google.com, pu-pm.univ-fcomte.fr non sensible à la casse (case insensitive)

21 Le DNS, format des noms (2)
Format des noms : (x1.x2...xN).y.z Valeurs de z : com, org, net, gov, eu, ... : international fr, ro, es, uk, de, ... : par pays vous pouvez donner un nom en .ro à votre site alors qu'il est hébergé en Suisse (et que vous habitez en France) !

22 … Le DNS, les registrars gTLD : Generic Top Level Domain
Noms gTLD ICANN ccTLD Autorité nationale Registrar (joker.com) Registrar (gandi.net) Registrar (fc-net.fr) gTLD : Generic Top Level Domain ccTLD : Country Code Top Level Domain

23 Le DNS, les registrars Noms gTLD ICANN ccTLD Autorité nationale Registrar (joker.com) Registrar (gandi.net) Registrar (fc-net.fr) Internet Corporation for Assigned Names and Numbers (ICANN) pour les gTLD AFNIC pour les domaines .fr et .re

24 ) Le DNS, les registrars Source www.webhosting.info Rank Registrar
Market Share Total Domains 1 GO DADDY 20.871% 18,559,935 2 ENOM 8.455% 7,518,947 3 NETWORK SOLUTIONS 7.458% 6,631,901 4 TUCOWS 6.563% 5,836,391 5 MELBOURNE IT 5.119% 4,551,823 6 SCHLUND+PARTNER 3.856% 3,428,759 7 REGISTER.COM 3.021% 2,686,328 8 WILD WEST DOMAINS 2.732% 2,429,031 9 MONIKER 2.501% 2,223,701 10 PUBLIC DOMAIN REGISTRY 1.930% 1,716,135 11 DOMAINDOORMAN.COM 1.679% 1,492,807 12 BELGIUMDOMAINS.COM 1.669% 1,484,046 13 CAPITOLDOMAINS.COM 1.660% 1,475,874 14 DIRECTNIC 1.439% 1,279,830 15 KEY-SYSTEMS 1.343% 1,194,699 Source

25 Où trouver www.google.com ?
Internet Contient des liaisons WAN (Wide area networks) @IP = Le LAN (Local Area Network) ou réseau local @IP

26 Où trouver www.google.com ?
On sait que : Les réseaux sont structurés en LAN/WAN Chaque appareil connecté à internet possède une adresse IP et un netmask L’adresse IP de s’obtient en interrogeant le DNS Problème : Où trouver l’adresse sur internet ?

27 Où trouver 64.233.183.99 ? Adresse LAN ou WAN ? C:\>netstat -r
Table de routage =========================================================================== Liste d'Interfaces 0x MS TCP Loopback interface 0x a 5d Broadcom 440x 10/100 Integrated Controller 0x a 09 f Intel(R) PRO/Wireless 3945ABG Network Connection Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique Passerelle par défaut :

28 Où trouver 64.233.183.99 ? Adresse LAN ou WAN ?
C:\>netstat -r Table de routage =========================================================================== Liste d'Interfaces 0x MS TCP Loopback interface 0x a 5d Broadcom 440x 10/100 Integrated Controller 0x a 09 f Intel(R) PRO/Wireless 3945ABG Network Connection Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique Passerelle par défaut : Pour y arriver je dois passer par… Si je veux aller là… La prochaine étape est…

29 Où trouver 64.233.183.99 ? Adresse LAN ou WAN ?
C:\>netstat -r Table de routage =========================================================================== Liste d'Interfaces 0x MS TCP Loopback interface 0x a 5d Broadcom 440x 10/100 Integrated Controller 0x a 09 f Intel(R) PRO/Wireless 3945ABG Network Connection Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique Passerelle par défaut : Pour y arriver je dois passer par mon loopback Si je veux aller sur ma machine La prochaine étape est mon loopback

30 Où trouver 64.233.183.99 ? Adresse LAN ou WAN ?
C:\>netstat -r Table de routage =========================================================================== Liste d'Interfaces 0x MS TCP Loopback interface 0x a 5d Broadcom 440x 10/100 Integrated Controller 0x a 09 f Intel(R) PRO/Wireless 3945ABG Network Connection Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique Passerelle par défaut : Pour y arriver je dois passer par mon interface WiFi Si je veux aller sur mon LAN La prochaine étape est mon routeur interne

31 Où trouver 64.233.183.99 ? Adresse LAN ou WAN ?
C:\>netstat -r Table de routage =========================================================================== Liste d'Interfaces 0x MS TCP Loopback interface 0x a 5d Broadcom 440x 10/100 Integrated Controller 0x a 09 f Intel(R) PRO/Wireless 3945ABG Network Connection Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique Passerelle par défaut : Pour y arriver je dois passer par mon interface WiFi Si je veux aller n’importe où ailleurs La prochaine étape est mon routeur externe

32 C’est le sens de la passerelle par défaut !
Où trouver ? Adresse LAN ou WAN ? C:\>netstat -r Table de routage =========================================================================== Liste d'Interfaces 0x MS TCP Loopback interface 0x a 5d Broadcom 440x 10/100 Integrated Controller 0x a 09 f Intel(R) PRO/Wireless 3945ABG Network Connection Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique Passerelle par défaut : C’est le sens de la passerelle par défaut !

33 Où trouver www.google.com ?
On sait que : Les réseaux sont structurés en LAN/WAN Chaque appareil connecté à internet possède une adresse IP et un netmask L’adresse IP de s’obtient en interrogeant le DNS L’adresse n’est pas sur notre LAN Problème : Comment trouver son chemin sur internet ?

34 Où trouver www.google.com ?
Internet Contient des liaisons WAN (Wide area networks) @IP = Envoi à @IP

35 Où trouver www.google.com ?
@IP = Routeurs

36 Où trouver www.google.com ?
@IP = @IP ?

37 Routage SRC 26 routeurs Google Source : VisualRoute

38 Où trouver www.google.com ?
@IP = Routage dynamique @IP ?

39 Les couches ISO Codage et décodage du signal
Application Couche 1 : Interfacage avec le support physique Présentation Session Codage et décodage du signal Gestion début et fin des trames Conversion données en signaux Transport Réseau Liaison Physique

40 Les couches ISO Appareil réseau : Concentrateur (Hub)
Application Couche 1 : Interfacage avec le support physique Présentation Session Appareil réseau : Concentrateur (Hub) Renvoie à tous le monde tous les paquets Topologie physique en étoile, topologie logique en bus Transport Réseau Liaison Physique

41 Les couches ISO Medium Access Control
Application Couche 2 : sous-couche MAC Présentation Medium Access Control Conversion des données en trames adaptées au support Gestion des adresses physiques (adresses MAC) Session Transport Réseau MAC Liaison LLC Physique

42 Les couches ISO Medium Access Control
Application Couche 2 : sous-couche MAC Présentation Medium Access Control Conversion des données en trames adaptées au support Gestion des adresses physiques (adresses MAC) Session Transport Réseau MAC Liaison LLC Physique

43 Les couches ISO Appareil réseau : commutateur (switch)
Application Couche 2 : sous-couche LLC Présentation Appareil réseau : commutateur (switch) Utilise les adresses MAC pour router les paquets Session Transport Réseau MAC Liaison LLC Physique

44 Les couches ISO IP (Internet Protocol) Adresse unique pour une machine
Application Couche 3 : Adressage, nommage et routage Présentation IP (Internet Protocol) Adresse unique pour une machine Conversion physique/logique Routage, choix de la destination des paquets Session Transport Réseau Liaison Physique

45 Les couches ISO Appareil réseau : routeur Utilise les adresses réseaux
Application Couche 3 : Adressage, nommage et routage Présentation Appareil réseau : routeur Utilise les adresses réseaux Utilise des protocoles de routage (RIP, OSPF, BGP, etc.) Session Transport Réseau Liaison Physique

46 Les couches ISO TCP (Transport Control Protocol)
Application Couche 4 : Transport TCP (Transport Control Protocol) Reséquencement des paquets Etablissement, maintien et fermeture des liaisons Contrôle de flux et d'erreur UDP (User Datagram Protocol) Mode non-connecté Pas de contrôle de flux, etc. Présentation Session Transport Réseau Liaison Physique

47 Sur un LAN de Google Plusieurs centaines de milliers de serveurs
Choix du serveur par un load-balancer

48 ( Culture web Qui est le leader des serveurs web ?
Apache Quelle est sa part de marché en 2007 ? 57% D’où vient son nom ? A patchy serveur

49 Les serveurs web

50 A patchy server (Apache)
Modularité Fiabilité égale aux produits commerciaux (0.53 erreur par 100 lignes de code) Open source (tuning possible) Multi plate-formes Mauvais départ de IIS principal concurrent Performances

51 ) Apache : Les modules httpd_core mod_access mod_auth mod_dir
mod_log_config mod_mime

52 Comment communiquer ? ? @IP

53 Comment communiquer ? On sait comment trouver le serveur web
On peut lui envoyer des informations Mais comment lui demander une page web ?

54 HTTP HyperText Transfer Protocol
Protocole basé sur des messages en texte Facilement compréhensible Permet de dialoguer avec un serveur web Stable et éprouvé Historique : HTTP/0.9 : T. Berners-Lee, 1991 RFC 1945 : HTTP/1.0. T. Berners-Lee, R. Fielding, H. Frystyk. 6/1996. RFC 2068 : HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee. 1/1997. RFC 2616 : HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T Berners-Lee. 6/1999. RFC 2817 : Upgrading to TLS Within HTTP/1.1. R. Khare, S. Lawrence. May 2000. RFC 2616bis : HTTP/1.1, 1/2008

55 HTTP N’importe quel outil réseau peut dialoguer en HTTP
Netcat, telnet, … Il suffit de connaître les commandes HTTP … et de savoir déchiffrer les réponses du serveur

56 HTTP : Exemple avec netcat
Commande netcat à taper C:\>nc -v 80 [ ] 80 (http) open GET / HTTP/1.1 Host: HTTP/ OK Date: Tue, 28 Aug :12:33 GMT Server: Apache Last-Modified: Tue, 28 Aug :12:41 GMT ETag: W/"248d6-e6ad-46d3e0cf" Accept-Ranges: bytes Content-Length: Connection: close Content-Type: text/html; charset=iso X-Pad: avoid browser bug <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>Bienvenue sur Free :)</title> … </body></html> Réponse de netcat Commande HTTP à taper Tapez 2x entrée pour envoyer la commande Réponse au format HTTP de suivi du code HTML de la page demandée

57 HTTP : Les commandes GET GET ou POST PUT, DELETE, LINK, UNLINK HEAD
Récupération d ’un document GET ou POST Soumission d ’un formulaire PUT, DELETE, LINK, UNLINK Envoi de Document et Gestion de Site HEAD Récupération des informations sur le document

58 HTTP : Les commandes (2) OPTIONS TRACE CONNECT
Demande des options de communication disponibles TRACE Retourne le corps de la requête intacte (déboguage) CONNECT

59 Format de requête Du client vers le serveur
<Méthode> <URI> HTTP/<Version> [<Champ d ’entête>: <Valeur>] [<tab><Suite Valeur si >1024>] ligne blanche [corps de la requête pour la méthode POST] Exemple GET / HTTP/1.1 Host: Ligne blanche (tapez 2x entrée)

60 Format de la réponse Du serveur vers le client Exemple
HTTP/<Version> <Status> <Commentaire Status> Content-Type: <Type MIME du contenu> [< Champ d ’entête >: <Valeur>] [<tab><Suite Valeur si >1024>] Ligne blanche Document Exemple HTTP/ OK Content-Type: text/html; charset=iso <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>Bienvenue sur Free :)</title> </body></html>

61 Statuts des réponses HTTP
Informationnel 100 : Continue (le client peut envoyer la suite de la requête), ... Succès de la requête client 200: OK, 201: Created, 204 : No Content, ... Redirection de la Requête client 301: Redirection, 302: Found, 304: Not Modified, 305 : Use Proxy, ... Requête client incomplète 400: Bad Request, 401: Unauthorized, 403: Forbidden, 404: Not Found Erreur Serveur 500: Server Error, 501: Not Implemented, 502: Bad Gateway, 503: Out Of Resources (Service Unavailable)

62 Place du serveur web Internet Internet DMZ
Routeur avec filtrage niveau 3 et 4 Firewall avec filtrage applicatif Authentification Filtrage sélectif Détection des intrusions DMZ FTP IDS HTTP AAA

63 Sécurisation d’Apache
Cacher des informations ServerTokens Prod ServerSignature Off Redéfinir une page 404 C’est la base mais la plupart des serveurs ne le font pas !!!!

64 Sécurisation d’Apache
Accès aux répertoires <directory /> order deny,allow deny from all </directory> <directory «/chroot/www/»/> order allow,deny allow from all

65 Sécurisation d’Apache
Exécuter apache avec les bons droits Création d’un groupe et d’un utilisateur apache But : Empêcher (ou retarder…) la propagation d’un exploit

66 Sécurisation d’Apache : chroot
Commande Unix : change root Exécute une commande avec un répertoire racine spécifique But : Emprisonner un programme dans son arborescence

67 chroot : les étapes (à la main)
Création d’une arborescence Vérification des dépendances (ldd) Recopie des librairies Recopie des fichiers de configs et spéciaux

68 chroot : les étapes (automatisées)
Utilisation de debootstrap Permet d’installer une debian de base Evite les recopies fastidueuses Mais prend plus de place !

69 Valider les entrées On se place dans le cas d’utilisateurs ou de programmes mal intentionnés Technique du cheval de Troie Entrée camouflée Lors de l’exécution, prise de contrôle de l’application (affichage d’informations confidentielles, exécution de scripts, …)

70 Valider les entrées Niveau administration des services
Bloquer certaines fonctionnalités Imposer des limites (CPU, mémoire, etc.) Linux PAM : Pluggable Authentication Modules Niveau programmation Filtrage des entrées

71 Valider les entrées Les noms de fichier
Empêcher le changement de répertoire Interdire /, .. ou ~ Empêcher la divulgation d’informations Interdire le globbing (*, ?, [], {}) (ex: ftp) Ex : ftp> ls *../*/../*../ Filtrer les noms de fichiers --, caractères de controle, espace, encodage exotique, <, “, etc.

72 Valider les entrées HTML
Cause majeure de trou de sécurité Possibilité d’HTML sont énormes : Cross-site scripting Javascript … tout autre langage (flash, java, …) Dans les pages HTML, mais surtout dans les mails (pas de sandbox) ! L’utilisateur charge une page sans connaitre son contenu !

73 Valider les entrées HTML
Filtrer les caractères de contrôles des pages HTML Définir une liste de balises sûres… <p>, <b>, <i>, <em>, <strong>, <pre>, <br> … et éliminer les autres <script>, <applet>, <embed>, <bgsound>, …

74 Valider les entrées HTML
Eliminer de manière intelligente : <script> </comment> <!-- --> --> Ou <_a<script> <<script>

75 Valider les entrées HTML
<a href="javascript#[code]"> <div onmouseover="[code]"> <img src="javascript:[code]"> <img dynsrc="javascript:[code]"> [IE] <input type="image" dynsrc="javascript:[code]"> [IE] <bgsound src="javascript:[code]"> [IE] &<script>[code]</script> &{[code]}; [N4] <img src=&{[code]};> [N4] <link rel="stylesheet" href="javascript:[code]"> <iframe src="vbscript:[code]"> [IE] <img src="mocha:[code]"> [N4] <img src="livescript:[code]"> [N4] <a href="about:<script>[code]</script>"> <meta http−equiv="refresh" content="0;url=javascript:[code]"> <body onload="[code]"> &{[code]}; [N4] [N4]

';
Annonces Google