jeudi 29 octobre 2015

Les bases pour comprendre le Web - Episode 2

Cet article est le second d'une série de 3 articles. La lecture du premier article est un pré-requis :
Les bases pour comprendre le web - Episode 1

Si vous ne comprenez pas la notion d'OS (Operating System, Système d'exploitation), je vous invite également en pré-requis à lire cet article. Sa portée est plus large que la seule notion d'OS puisqu'il est question d'assemblage d'ordinateurs mais vous pouvez sauter directement à la section qui explique rapidement ce qu'est un système d'exploitation.


Introduction

Après avoir étudié dans notre premier article les bases de l'informatique distribuée, nous allons maintenant parler des bases de la technologie internet (aka tcp/ip) sur laquelle est basée le réseau Internet.

Cet article est largement plus technique que le précédent car il y a malheureusement un minimum de détails de mise en oeuvre à communiquer. Cependant, nous avons essayé de limiter le plus possible la complexité, et surtout nous déroulons les sujets dans un ordre logique qui devrait permettre de bien appréhender les choses.

Focus sur TCP/IP

Initialisation du réseau

Nous avons expliqué dans l'article précédent que l'informatique distribuée était basée sur une communication réseau, entre un client et un serveur, exprimée selon un certain protocole, que cette communication était gérée par un logiciel qui fait partie du système d'exploitation, et que ce logiciel est une implémentation de la spécification TCP/IP (implémenté par tous les systèmes d'exploitation courants).

Ce logiciel s'initialise automatiquement lors du démarrage de votre système d'exploitation. Pour ce faire, il doit obtenir quelques informations qui lui sont indispensables.

Ces informations peuvent être lues localement depuis le disque de la machine dans le cas d'une configuration manuelle effectuée directement sur la machine. Cependant, ceci n'est pas le cas de fonctionnement le plus simple ni le plus courant.

En effet, le logiciel se débrouille habituellement pour détecter automatiquement la présence d'un logiciel serveur spécifique qui va lui fournir ses données de configuration. Pour ce faire, il envoie un message à toutes les machines du réseau (broadcast) et voit qui lui répond. Une fois qu'il a identifié le serveur qui va bien (celui qui a répondu à son appel général), il entame un dialogue avec lui (modèle client/serveur, notre logiciel est le client) et obtient ainsi les données requises.

Le serveur en question s'appelle un serveur DHCP : Dynamic Host Configuration Protocol : le nom est assez parlant (Protocole de Configuration Dynamique d'une machine hôte, l'hôte c'est votre ordinateur qui est en train de s'initialiser).

Si vous avez suivi, vous devez vous demander d'où il sort ce fameux serveur DHCP. Hé bien, il tourne tout simplement sur votre Box Internet (hé oui, votre Box Internet est un ordinateur, sous  le système d'exploitation Linux en général, et exécute divers programmes).

Nous verrons au fil de l'eau certaines des informations fournies par ce serveur DHCP.

Adresse IP privée

Donc, l'informatique distribuée est basée sur une communication réseau, entre un client et un serveur, exprimée selon un certain protocole.

Alors mettons nous 2 secondes à la place d'un client quelconque qui veut envoyer une requête à un serveur.

Il va avoir besoin de savoir à quelle adresse envoyer sa requête afin que le logiciel réseau puisse l'acheminer au bon destinataire ; exactement comme vous avez besoin du numéro de téléphone de quelqu'un pour lui téléphoner.

Il y a donc le besoin de disposer d'un système d'adressage, c'est à dire d'un système qui attribue une adresse distincte et unique a chaque ordinateur au sein d'un réseau local. Et ça tombe bien, ce système existe et est pris en charge par la technologie TCP/IP. Ainsi donc, au sein d'un réseau local basé sur la technologie internet, chaque machine dispose d'une adresse unique appelée adresse IP privée.

Nous avons dit que chaque ordinateur avait une adresse IP privée. En fait, pour être plus précis, c'est chaque interface réseau (prise réseau RJ45) qui a une adresse. La majorité des machines ayant une seule prise réseau ça revient généralement au même, mais dès lors qu'un ordinateur a plusieurs prises réseau, il dispose de plusieurs adresses.

L'adresse IP privée est généralement obtenue à l'initialisation du système lors de l'appel au serveur DHCP.

Adresse IP publique

L'adresse IP privée est unique au sein d'un réseau local et permet aux machines au sein de ce réseau de communiquer entre elles.

Mais dès lors qu'on interconnecte des réseaux, il faut également pouvoir permettre à certaines machines, celle qu'on souhaite exposer (rendre visibles et joignables) depuis l'extérieur du réseau local, d'être contactées depuis n'importe quelle autre machine appartenant à un des réseaux interconnectés (donc dans le contexte du réseau Internet, n'importe quelle machine sur la planète).

Pour cela on (on, c'est l'administrateur du réseau) attribue une adresse IP Publique aux machines en question (ces machines doivent disposer de deux cartes réseau). Dès lors qu'une machine a une IP Publique, elle peut être contactée par n'importe quelle machine de n'importe quel réseau interconnecté.

Sans trop rentrer dans les détails, il faut savoir que l'obtention d'une IP Publique est PAYANTE et que si il est bien sur possible d'avoir plusieurs machines disposant d'une IP publique sur un même réseau local, ce n'est pas vraiment simple ni intéressant financièrement pour un particulier. En tant que particulier disposant d'une Box Internet, vous disposez d'une seule IP Publique (dynamique ou statique selon votre FAI et vos options, notion expliquée un peu plus loin) et elle est attribuée à votre Box (qui est donc un routeur -  notion expliquée un peu plus loin -  et dispose de deux interfaces réseau).

IP v4, IP v6

Il existe deux versions de la technologie IP.

Celle qui est massivement utilisée est la v4 (IP v4) et une adresse est une série de 4 chiffre.

Le nombre d'adresses distinctes qu'on peut exprimer avec ce format s'est cependant avéré insuffisant compte tenu de l'explosion d'Internet : le nombre de réseaux interconnectés a augmenté continuellement depuis 20 ans, on a maintenant de plus en plus de périphériques connectés (Smart TV, Smartphones ...) et une explosion des ventes d'objets connectés s'annonce qui ne va rien arranger (on appelle ça IOT, Internet Of Things, Internet des objets en Français).

Du coup, on passe progressivement depuis plusieurs années déjà à la norme v6 (IP v6) dans laquelle l'adresse IP est représentée d'une façon différente ce qui permet d'avoir plus de numéros (de la même façon qu'on est passé des numéros de téléphone à 6 puis 8 puis 10 chiffres).

On peut espérer que les adresses IP publiques seront plus aisées à obtenir et moins coûteuse dans l'avenir grâce à IP v6 (qui permet d'exprimer un nombre d'adresse très élevé, contrairement à IP v4 qui avait été conçu à une époque où on n'imaginait pas une telle explosion de la technologie).

IP Fixe, IP Dynamique, NAT

Une adresse IP, qu'elle soit publique ou privée, peut être fixe ou dynamique.

Si elle est fixe, elle ne variera pas dans le temps, ce sera toujours la même (une même machine aura toujours la même adresse). Si elle est dynamique, elle est susceptible de changer sans préavis (mais pas systématiquement) à l'occasion d'un redémarrage de l'ordinateur.

Le choix d'une adresse privée fixe ou dynamique relève de votre responsabilité. Par défaut, elle sera dynamique mais il est possible de faire en sorte qu'elle soit fixe par de la configuration.

Le choix d'un adresse publique fixe ou dynamique (pour votre Box) relève de votre FAI. Certains ne vous laissent pas le choix et vous imposent une adresse dynamique. D'autres vous donnent la possibilité d'avoir une adresse fixe sur demande, moyennant éventuellement un surcoût.

Une IP Fixe est souhaitable en particulier si vous hébergez (faites tourner) un serveur (logiciel) sur un serveur (un ordinateur). Remarque : le terme serveur est ambigu car il peut désigner un élément logiciel comme un élément matériel ; ce n'est pas un problème quand on connait car on voit bien de quoi on parle, mais je vais essayer d'apporter la précision le plus souvent possible dans cet article (mais pas systématiquement, se serait très pénible).

En effet, dans le modèle client/serveur, le client contacte le serveur grâce à son adresse (plus précisément, l'adresse de la machine sur laquelle il s'exécute). Celle ci doit donc être constante dans le temps. Imaginez que vous vouliez contacter par téléphone quelqu'un qui change sans cesse de numéro...

Si votre serveur est appelé uniquement depuis votre réseau local, seule l'adresse IP privée a besoin d'être fixe.

Si votre serveur doit pouvoir être appelé depuis Internet, il doit avoir une IP publique fixe. Ceci pose un problème car nous nous avons vu que seul la Box pouvait avoir une IP publique dans le cadre d'une Box grand public... Et il faut donc recourir à un tour de passe passe : c'est bel et bien votre Box qui sera appelé en premier lieu (car elle seule a une IP publique et elle seule peut être appelée depuis Internet) mais elle se chargera de relayer la requête vers le serveur sur votre réseau local qu'elle contactera via son IP privée (qui devra donc être fixe) en se basant sur des règles de mise en correspondance configurées sur la box par vos soins (la box héberge le routeur - qui est chargé de relayer le trafic réseau entre le réseau local et Internet - et une application web qui permet de configurer le routeur, et parmi d'autres choses de déclarer ces règles de translation). Quand le serveur local lui fournira une réponse, elle se chargera de la relayer vers le client Internet à l'origine de la requête initiale. On appelle ce mécanisme le NAT, Network Adress Translation, Translation d'adresse réseau, le terme est clair je pense.

Une IP Fixe peut également être requise pour d'autres raisons, même si vous n'exposez pas de serveur sur Internet. Par exemple, vous pouvez être amenés pour diverses raisons à configurer certains équipements ou logiciels dont vous disposez en précisant l'adresse d'une machine de votre réseau, et dès lors il faut que cette adresse soit constante pour que votre configuration reste valable. Ne pas respecter ceci c'est s'exposer à des pannes aléatoires quand un ordinateur a rebooté (redémarré) pour une raison X ou Y et a changé d'adresse IP (si elle est dynamique).

Enfin sachez qu'il existe des contournements dans le cas où vous auriez absolument besoin d'une IP publique fixe (hébergement d'un serveur dans votre réseau local et qui doive être joignable depuis Internet) et que votre FAI ne vous autorise pas les IP publique fixes. Nous en parlerons un peu plus loin (dyndns).

Numéro de port

Désolé, je n'ai pas pu résister au jeu de mot (port, porc) et un peu de détente peut faire du bien après toute cette lecture.

Alors, un port TCP/IP ça ne sert pas à faire de la bonne charcuterie mais c'est une valeur numérique entière (tiens au hasard, 80 par exemple) qu'on associe à une adresse IP afin de pouvoir héberger plusieurs serveurs (logiciel) sur un serveur (une machine).

Jusqu'à présent j'ai expliqué qu'un client qui voulait parler avec un serveur le contactait grâce à son adresse IP. Mais en fait, ce n'est pas vrai, le serveur est contacté grâce à un couple de coordonnées constitué de son adresse ip ET de son numéro de port. C'est un peu comme si l'adresse IP était l'adresse d'un immeuble et que le numéro de port était le numéro de l'appartement au sein de l'immeuble (et dans cette analogie l'immeuble est le serveur - matériel - sur lequel s'exécute le serveur - logiciel - ).

Quand un logiciel serveur démarre et se met en écoute, il se met en écoute sur un numéro de port précis déterminé par sa configuration, et les clients qui veulent l'appeler devront préciser ce numéro de port (en plus de l'adresse IP).

Comme les informaticiens sont fainéants par nature, ils ont imaginé un système associant un numéro de port par défaut à chaque protocole couramment utilisé. Ceci permet de ne pas le préciser dans la plupart des cas (quelques caractères de moins à saisir, c'est toujours ça de gagné). Nous détaillerons ce point plus loin.

Routeur

Dans tout réseau internet, il y a un serveur (logiciel) particulier qui constitue le point d'interconnexion avec les autres réseaux locaux (et par là, le point d'accès vers et depuis Internet). On appelle ce serveur un routeur.

Il peut s'agir d'un routeur purement logiciel, un simple logiciel installé sur un ordinateur quelconque , ou d'un matériel dédié (appliance).

Dans la plupart des cas pour un usage domestique, ce logiciel est fréquemment confondu avec la Box Internet car le routeur s'exécute sur la Box. En effet la Box est un ordinateur et à ce titre exécute divers logiciels, à commencer par le routeur.

Lors de la configuration de TCP/IP, généralement via un appel DHCP, chaque ordinateur obtient l'adresse IP privée de ce routeur, souvent appelé "passerelle par défaut".


Autres pré-requis, normes, outils

La technologie réseau internet (TCP/IP) est la brique de base d'Internet. Vous savez maintenant la plupart des choses à savoir.

Sur cette base ont été construites d'autres technologies ou normes qui jouent un rôle important et qu'il faut connaitre pour comprendre Internet et le Web.

DNS, FQDN, Ports par défaut (IANA)

Les clients contactent les serveurs via leur adresse IP et leur numéro de port.. C'est acquis.

Une adresse IP c'est une série de 4 chiffres séparés par des points. Rien de ceci n'est très agréable à mémoriser.

Pour rendre tout ceci plus agréable, il a été créé un système d'annuaire qui met en relation un nom simple à retenir, constitué de texte facilement mémorisable (par exemple : www.facebook.com) avec une adresse IP. C'est le système DNS : Domain Name Server, serveur de noms de domaines. On peut tout à fait faire le parallèle avec un annuaire téléphonique qui met en correspondance un Nom+Prénom avec un numéro de ligne.

Il nous faut donc expliquer ce qu'est un nom de domaine. Un nom de domaine est par exemple facebook.com, gouv.fr, yahoo.fr etc. C'est en quelque sorte une marque déposée. Pour détenir un nom de domaine, il faut déjà qu'il soit libre, et ensuite il faut le réserver auprès d'un bureau d'enregistrement (registrar en Anglais, la plupart des FAI fournissent ce service), et enfin il faut payer une redevance annuelle dépendant du TLD. Le TLD, Top Level Domain, c'est la fameuse extension .org, .fr, .com etc.

Donc en admettant que vous vouliez monter un site Internet, il vous faut commencer par définir un nom de domaine, vous assurer qu'il est disponible, puis vous enregistrer et payer. Pour l'exemple on va imaginer que vous allez prendre le domaine lesupersitequidechire.com

Une fois que ceci sera fait, vous aurez la possibilité de définir des alias (raccourci, synonyme) vers des ressources de votre domaine. Par exemple, il est fort probable que vous aurez quelque part sur une machine un serveur web qui hébergera les pages de votre site. Cette machine aura bien sur une adresse IP publique fixe, par exemple 87.230.168.82. Et comme vous ne voulez pas que vos utilisateurs tapent http://87.230.168.82 dans leur navigateur mais un truc plus sexy comme http://www.lesupersitequidechire.com, vous allez configurer le système DNS pour spécifier que la machine www du domaine lesupersitequidechire.com a l'IP 87.230.168.82. Comme ça vos utilisateurs pourront taper http://www.lesupersitequidechire.com dans leur navigateur.

Si vous le souhaitez, vous pouvez découper votre domaine en sous-domaines tout simplement en ajoutant un texte devant votre domaine. Par exemple : compta.lesupersitequidechire.com, sav.lesupersitequidechire.com, etc. Attention ici compta et sav ne sont pas un alias IP, quand on voudra adresser une machine dans ces sous domaines on aura son nom avant le sous domaine, par exemple www.compta.lesupersitequidechire.com et www.sav.lesupersitequidechire.com. Conclusion, l'alias DNS c'est la totalité du texte et ça s'appelle un FQDN : Fully Qualified Domain Name (nom de domaine complètement décrit, en bon Français).

Première remarque : j'ai appelé le serveur web www, ce n'est en rien une obligation, juste une habitude. J'aurais pu mettre toto ou serveurdefichier ou n'importe quoi d'autre.

Seconde remarque : pour l'explication, j'ai pris un exemple où vous hébergez vous même votre site. La plupart des personnes utilisent les services d'un hébergeur professionnel qui héberge pour elles les ressources de leur domaine (le serveur web en premier lieu - généralement mutualisé pour de nombreux domaines -, les pages html bien sur, et bien souvent un moteur de script PHP pour les sites dynamiques), et ne voient généralement rien de ces détails techniques (le nom de domaine étant souvent loué chez l'hébergeur, c'est lui qui se charge de configurer le DNS pour faire pointer l'adresse de votre site sur leur infrastructure).

Troisième remarque : j'ai dis que vos utilisateurs allaient pouvoir joindre votre site en tapant http://www.lesupersitequidechire.com, ceci suppose que votre serveur web tourne sur son port par défaut (le port par défaut d'un serveur web, c'est à dire implémentant le protocole http, est 80), et donc qu'il a été configuré pour écouter sur le port 80. Si pour une raison X ou Y, vous aviez décidé de le faire tourner sur le port 90, vos utilisateurs auraient dû taper http://www.lesupersitequidechire.com:90. Ceci est simplement une application de ce que nous avons expliqué plus haut.

L'IANA est une autorité régulatrice d'Internet qui est en charge d'attribuer un numéro de port par défaut aux différents protocoles utilisés sur le réseau Internet. Ce sont ces ports par défaut qui permettent de ne pas devoir systématiquement préciser un numéro de port en plus d'une adresse IP (ou d'un Alias DNS) ; ce n'est obligatoire que si le serveur tourne sur un port différent de la convention par défaut.

Le DNS a d'autres usages que le fait de définir des alias pour les adresses IP des machines installées pour faire tourner les services associés à un domaine. En fait, on associe à un nom de domaine toute une série d'entrées à divers usages (notamment la messagerie). Le type d'entrée correspondant à un alias IP est "CNAME". C'est une différence avec notre annuaire téléphonique où on n'a qu'une seule information (numéro de ligne) en face d'un nom+prénom (pour continuer sur notre analogie).

L'adresse du serveur DNS primaire et secondaire (si le primaire est en panne) utilisé par votre ordinateur est obtenu à l'initialisation de tcp/ip, habituellement par un appel DHCP. Ce serveur DNS est opéré par votre FAI (c'est lui qui l'a installé et qui s'assure de son fonctionnement).

Il existe probablement des centaines de millions de noms de domaines de par le monde, il s'en crée de nouveaux à une fréquence élevée et d'autres disparaissent aussi vite (un domaine a une date de péremption, si on ne paye pas la redevance annuelle, il redevient disponible). Gérer tout ceci sur un seul serveur DHCP poserait un problème de charge (le serveur serait appelé en permanence du monde entier et nécessiterait une puissance colossale) et de sécurité (il suffirait à quelqu'un de mal intentionné de faire tomber ce serveur pour qu'Internet soit en panne sur toute la planète de façon instantanée). Pour cette raison, il n'y a pas un mais des milliers de serveurs DHCP de par le monde qui gèrent chacun un sous ensemble des domaines et qui diffusent leurs mises à jour (nouveaux domaines, modification de domaines, domaines périmés) aux autres serveurs DHCP de par le monde. Pour cette raison, une mise à jour d'un serveur DNS peut requérir jusque 24H (pendant 24H, certains serveurs DNS seront déjà à jour et d'autres pas encore, du coup l'accès à votre site sera aléatoire selon le serveur DNS utilisé par la machine d'un utilisateur, ceci dépendant généralement de son fournisseur d'accès).

DynDns

DynDns est le nom d'un service dît de DNS Dynamique. Ce n'est pas le seul mais sans doute le plus ancien et le plus connu.

Ce type de service est indispensable dans le cas suivant :
  • vous voulez héberger un serveur exposé sur Internet dans votre réseau local
  • votre FAI ne vous permet pas d'avoir une IP publique FIXE (uniquement dynamique)

Etant donné que vous n'avez pas d'IP fixe, vous ne pouvez pas de façon réaliste associer un nom de domaine à une IP dans le système DNS. En effet, votre IP changeant régulièrement (à priori toutes les 24H), il vous faudrait mettre à jour manuellement tous les jours le DNS, or le délai de prise en compte de ce type de changement dans le système DNS mondial est de 24 Heures.

DynDns propose de surveiller automatiquement (via un logiciel installé sur un ordinateur de votre réseau local, et très souvent pré-installé sur votre Box Internet) votre IP publique afin de détecter tout changement et aller mettre à jour automatiquement la correspondance entre votre IP et un nom de machine (un alias) qui vous est alloué dans leur domaine (dyndns.org ou un truc du genre). La prise en compte est immédiate. Vous pouvez ainsi contourner l'absence d'IP fixe mais vous n'avez pas le choix du nom de domaine.

URL

URL, facile ! Tout le monde connait... pas si sur à mon avis, et à la lumière des explications précédentes vous devriez comprendre un peu mieux à qui ça correspond précisément.

URL est un acronyme pour Uniform Resource Locator, c'est donc une norme qui permet d'exprimer de façon Uniforme (toujours de la même façon) la localisation (Locator) d'une ressource. Par exemple, complètement au hasard, une page web. Mais il existe bien d'autres ressources : des images (ben oui, il y a des images dans vos pages web, elles viennent bien de quelque part), des programmes (quand vous validez un formulaire sur une page web, vous appelez généralement sans le savoir un programme quelque part sur Internet), des serveurs (www.facebook.com est un serveur), et bien d'autres choses encore.

Une URL est composée de plusieurs parties (version simplifiée)

  • Le protocole utilisé pour accéder à la ressource : http: si on accède à la ressource par le protocole HTTP, ftp: si on accède à la ressource par le protocole FTP etc.
  • L’adresse IP du serveur chargé de fournir la ressource. Cette adresse est généralement remplacée par le FQDN du serveur (ex : www.google.com)
  • De façon facultative un « : » et le numéro de port utilisé pour établir la connexion avec le serveur. Si il n’est pas précisé, c’est le numéro de port par défaut associé au protocole qui est utilisé (voilà pourquoi on ne tape pas http://www.google.com:80)
  • Le nom complet de la ressource incluant son chemin d’accès (ex:/livres/sf/1984.pdf)
  • Eventuellement des données supplémentaires précédées par le caractère « ? » et respectant une certaine forme (nom=valeur, séparateur « & » dans le cas où il y a plusieurs données, codification des valeurs suivant une règle précise)


Jouons à décrypter une URL :
http://www.sousdomaine2.sousdomaine1.sitedelamortquitue.com:90/page/accueil

On va établir une communication réseau avec un serveur (logiciel) qui tourne sur un serveur (machine) dont l'adresse IP va être obtenue en interrogeant un serveur DNS (dont l'adresse a été obtenue lors de l'initialisation de tcp/ip par un appel au serveur DHCP) qui va renvoyer l'ip correspondant à l'entrée CNAME de valeur "www" en correspondance avec le sous domaine "sousdomaine2" de "sousdomaine1" du domaine "sitedelamortquitue.com". Cette communication sera établie sur le port 90 (le serveur ne tourne pas sur le port par défaut). Cette communication se fera selon le protocole http. Le serveur nous renverra le fichier (http est un protocole dont le but et de permettre la lecture de fichiers distants, généralement des pages html - tout ceci est expliqué dans le 3éme article de cette série) que le serveur connaît sous le nom "accueil" et dont le chemin d'accès (par exemple, un nom de répertoire sur le disque du serveur) est "/page" (donc par exemple ici, un répertoire page à la racine du répertoire où le serveur web range les fichiers pour le site sousdomaine1.sousdomaine2.sitedelamortquitue).

Alors ici j'ai pris un exemple avec le protocole http car c'est ce qui est le plus connu, mais on peut avoir des url en ftp://... nntp://... et tout un tas d'autres protocoles Internet moins connus du grand public.


Proxy, Firewall


Bon j'ai entendu tellement de conneries sur ce sujet, en particulier dans les films, que je me sent obligé d'en parler rapidement même si ce n'est pas indispensable.

Proxy

Alors Proxy en anglais ça veut dire "Intermédiaire". Un Proxy est un serveur qui va venir s'interposer dans une communication entre une machine de votre réseau local et une machine sur Internet. En fait, quand vous allez demander (enfin pas vous directement on est d'accord, mais le logiciel que vous utilisez, par exemple votre navigateur) à établir une connexion, elle va être établie avec le Proxy, puis le Proxy va appeler pour vous la machine sur Internet, va recevoir sa réponse, et vous la re-fournir en retour.

Ceci permet différents choses :
  • accélérer les accès  : le proxy peut mettre en cache la réponse du serveur. Si un autre client du réseau local demande la même chose, il la renvoie directement de son cache au lieu de rappeler le serveur et c'est ainsi plus rapide (mais pose des problèmes si le proxy est mal configuré)
  • filtrer les accès : le proxy peut décider d'autoriser ou d'interdire l'accès à Internet selon le client qui le contacte. C'est utilisé par certaine entreprises pour donner accès à certains postes et pas à d'autres. Il peut autoriser les accès au web et interdire l'accès à d'autres types de serveurs (ftp, nntp, p2p ...)
  • filtrer les sites accessibles : certains sites sont dangereux (virus), d'autres sont illégaux (pédophilie), d'autres simplement interdits par l'entreprise car sans rapport avec l'activité (jeu en ligne). Le proxy peut décider d'autoriser ou d'interdire l'accès à un site selon une politique définie par l'entreprise
  • tracer les accès : le proxy peut (et il le fait en général) tracer (conserver une trace dans un fichier journal, aka log) un appel. Tel personne a appelé tel site tel jour à telle heure. L'exploitation ultérieure de ces informations peut s'avérer utile (virer quelqu'un qui passe son temps sur des sites X, voir qui est le crétin qui a ramené le virus qui a paralysé l'entreprise pendant 48H ...)

Le Proxy est donc un élément de la politique de sécurité. Son bon fonctionnement est critique car il constitue un nœud d'étranglement, si il est saturé ou en panne, c'est l'accès de tous les postes à Internet qui est compromis

Sur un réseau local domestique, vous n'aurez pas de proxy (sauf si vous décidez d'en installer un). Certains utilisent des proxy publics (disponibles sur Internet) pour diverses raisons (par exemple pour essayer d'anonymiser leur navigation et ne pas être reconnus via leur IP par les sites qu'ils consultent). Les proxy se rencontrent par contre souvent en entreprise (où ils posent souvent des soucis pour cause d'administrateurs incompétents mais c'est une autre histoire).

Firewall

Le Firewall comme le proxy (ou le routeur) intervient dans toute mise en communication entre une machine du réseau local et une machine sur Internet (et fréquemment, il peut également jouer dans la communication entre deux réseaux locaux dans les entreprises pour des raisons de sécurité et de cloisonnement).

Son rôle consiste à autoriser ou interdire une communication en se basant sur des règles de permission ou d'autorisation. Ces règles sont définies par l'administrateur réseau (vous, quand vous êtes à votre domicile).

Il permet par exemple d'autoriser ou d'interdire l'accès à certaines adresses, depuis certaines adresses, en fonction du port utilisé par la communication. Certains plus sophistiqués savent reconnaître le protocole utilisé (pas le cas dans les Box), voire analyser la nature de l'échange.

Le firewall est un élément important de la politique de sécurité. Son bon fonctionnement est critique car il constitue un nœud d'étranglement, si il est saturé ou en panne, c'est l'accès de tous les postes à Internet qui est compromis

Toutes les Box Internet comportent un firewall. Il est généralement configuré avec des règles satisfaisantes pour un usage courant. La sécurité est correctement assurée en interdisant les appels depuis l'extérieur à un certain nombre de services souvent ouverts par défauts sur vos ordinateurs sans que vous en ayez conscience (un gros défaut de Windows est de démarrer par défaut des services souvent non indispensables et qui constituent des trous béants de sécurité que les pirates détectent et exploitent avec une grande facilité pour infecter vos machines), tout en autorisant un usage classique d'Internet. Par contre, vous aurez besoin d'y mettre les mains pour des usages un peu avancés.


Box Internet, petite synthèse

Votre Box Internet est un ordinateur.

Cet ordinateur exécute généralement un système d'exploitation Linux

Le système d'exploitation fait tourner différents services (serveurs) :
  • serveur DHCP (contacté par les machines de votre réseau local pour obtenir leur configuration)
  • routeur (qui assure notamment les opérations de NAT)
  • serveur web qui héberge l'application de configuration de votre Box
  • un firewall pour configurer des règles de sécurité
  • souvent, un client DynDns 
La Box fait également office de Switch (sans que je sache dire si c'est implémenté au niveau hardware ou au niveau logiciel).

Les box depuis quelques années (en France) fournissent de multiples services :
  • téléphonie par IP (le service de téléphone gratuit)
  • réception de la télévision
  • services multimédia divers (DLNA en particulier)
On appelle ces box triple-play : Internet, téléphone, télévision.

Le Box fournit également le matériel et le logiciel pour assurer les communications réseau avec votre opérateur (FAI) qui vous interconnecte avec Internet. Là on tombe dans le domaine des télécoms, un domaine affreusement compliqué - pour moi en tout cas -, et je rend la main.


Conclusion (temporaire)

Vous disposez maintenant de toute la connaissance requise pour comprendre le fonctionnement d'Internet. Avec ces bases, vous pouvez même vous lancer dans la lecture de ressources beaucoup plus techniques, vous devriez pouvoir vous en sortir.

Attention, je parle bien d'Internet et pas du Web. La confusion entre Web et Internet est fréquente dans l'esprit du grand public car le Web est l'application la plus connue d'Internet et celle qui en a popularisé l'utilisation. Pour autant ce sont deux choses bien distinctes :

  • Internet est simplement une interconnexion au niveau mondial de milliers de réseaux locaux fonctionnant sous la norme tcp/ip
  • Internet offre de nombreuses applications : le courrier électronique, la messagerie instantanée, la diffusion de flux vidéos (le fameux streaming), des tonnes d'autres, et bien sur le Web
  • Le Web n'est qu'une application possible parmi d'autres


Pour comprendre le Web, il nous faut encore expliquer quelques éléments : http, html, javascript, rôle et fonctionnement d'un navigateur, et un peu de cryptographie pour les plus courageux.

Tout ceci sera expliqué dans le 3éme et dernier article de cette série