Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Les serveurs mandataires et Squid

Par Jérémy SUINI Publié le 06/11/2016 à 18:52:51 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Squid est un proxy (serveur mandataire en français) libre qui est capable de gérer les protocoles FTP, HTTP, HTTPS et Gopher. C’est un logiciel qui utilise une licence GNU GPL.

Il est souvent utilisé dans certaines entreprises et établissements scolaires pour ses fonctions de filtrage ou pour ses fonctions de mise en cache (nous verrons cela dans notre article).

Mais nous allons tout d’abord voir ce qu’est un serveur mandataire, ce qui nous permettra de mieux comprendre le fonctionnement de Squid.

Mais tout d'abord,qu'est ce qu'un serveur mandataire ?

Le rôle général d’un serveur mandataire est d’effectuer une tâche à la place d’un autre périphérique ou équipement. Nous verrons plus tard ce rôle en détail avec un schéma.

Un serveur mandataire permet de :

• Mettre en cache les données

• Contrôler le trafic vers Internet

• Filtrer le contenu sur Internet

• Journaliser les requêtes émises par les utilisateurs (pour le cache essentiellement).

L’accès à Internet pour certains établissements

Un serveur mandataire est une entité offrant la possibilité de pallier à certaines problématiques, surtout dans le milieu professionnel ou scolaire : Fournir aux utilisateurs un accès souple et rapide pour mener différentes activités. A cela on ajoute bien sûr le fait de contrôler et de limiter les sites auxquels les utilisateurs ont accès.

Si un salarié utilise Internet de façon illégale, cela engage la responsabilité de l’entreprise. Tous les salariés et acteurs d’une entreprise peuvent être poursuivis civilement et pénalement en cas de non-respect de l’utilisation d’Internet. Si l’auteur d’un fait illicite peut être poursuivi, il faut être en mesure de l’identifier de façon précise en mettant en place des mécanismes d’authentification.

Concernant le domaine scolaire, les établissements à caractère scolaire sont obligés de bloquer l’accès à certains sites (sites violents, sites pornographiques, ou sites faisant référence à la drogue ou à l’alcool).

Pour cela, les établissements scolaires et les entreprises doivent filtrer le contenu qu’ils mettent à disposition. Un proxy, en relayant les requêtes, va dans un premier temps analyser le contenu de la requête et en fonction de la demande pouvoir autoriser ou non les accès vers le site demandé.

Pour cela il s’appuie sur des listes de filtrage recensant les sites internet. Les sites internet sont classés par catégorie et il est possible d'interdire l'accès à ceux-ci. Le serveur mandataire garde une trace de chaque requête, ainsi à l’aide de fichiers journaux (requêtes journalières dont nous avons parlé auparavant) on peut identifier pour chaque demande le nom, l’adresse IP, l’heure et le site demandé. Ces fichiers journaux permettent alors de tracer les différents accès des utilisateurs.

Le remplacement d'un autre équipement

Comme nous l’avons indiqué auparavant dans l’introduction, un serveur mandataire a pour objectif de remplacer un autre périphérique, en effectuant une action à la place de ce dernier.

Nous allons prendre pour exemple un ordinateur d’un réseau local qui émet une requête HTTP en passant par un serveur mandataire, ou proxy.

Le serveur mandataire ou proxy va envoyer la demande faite par l’ordinateur du réseau local auprès du serveur web qui doit renvoyer une réponse. Le serveur mandataire est ici client du serveur web.

Lorsque le serveur web répond, il envoie d’abord la réponse au serveur mandataire, qui la retourne enfin au client. Le serveur mandataire sert ici d’intermédiaire et va trier les informations reçues.

Il y a deux manières d’implémenter un serveur mandataire sur un réseau.

La première solution est d’installer les fonctions d’un serveur mandataire sur un équipement du réseau (un routeur par exemple).

Cette solution n’est pas beaucoup utilisée, car elle n’est viable seulement sur de petits réseaux où certains équipements peuvent remplir plusieurs fonctions. Prenons un équipement A, qui dispose des services du serveur mandataire. Si ces services ne marchent plus, cela aurait un impact sur les autres services de cet équipement A. Qui plus est, si l’équipement A subit une forte charge, cela peut perturber les services de filtrage du serveur mandataire installés. Cette solution n’est donc pas la plus optimisée.

La deuxième solution consiste à installer un équipement qui n’a cette fois qu’un seul rôle : le proxy – cache. La seule chose à faire est d’interconnecter l’équipement au réseau de la même manière que tout autre équipement du réseau. Cette solution, plus pratique que la première présentée, est bien plus utilisée.

Il existe différents types de serveur mandataire, précédemment nous avons évoqué le principe du serveur mandataire HTTP, mais ce service peut aussi être implémenté pour d’autres protocoles, par exemple avec le protocole FTP/FTPS (File Transfer Protocol) ou encore RTSP (Real Time Streaming Protocol).

Le cache, comment ça marche ?

La mise en cache

La mise en cache des données va permettre d’optimiser l’utilisation de la bande passante d’accès à Internet. Le serveur mandataire, ou proxy, va stocker les pages et les données les plus utilisées ou consultées, pour pouvoir mieux les transmettre.

On voit sur le schéma en 1 que le client émet une requête HTTP vers le serveur mandataire. En 2 le serveur mandataire analyse la requête, puis la transmet au serveur web qui possède la ressource demandée par le client. En 3 le serveur web transmet les données ou la ressource demandée au serveur mandataire, et en 4 ce dernier va stocker les données ou la ressource dans son cache (il en fait une copie). Et en 5 le serveur mandataire va transmettre les ressources au client.

L’intérêt du cache est là. Nous allons définir un paquet de ressources nommé paquet A.

Une fois que le serveur mandataire a mis en cache les ressources qui constituent ce paquet A, si un client effectue une requête pour accéder à une ou des ressources de ce paquet A, le serveur mandataire va aller chercher les informations dans son cache et n’aura pas besoin de transmettre la demande au serveur web externe.

En d’autres termes, le serveur mandataire va renvoyer au client les ressources sans questionner le serveur web externe.

Regardons sur ce schéma :

Cette mise en cache a donc plusieurs avantages :

• Economiser la bande passante, ce qui permet de réduire le trafic.

• Répondre plus efficacement et rapidement à la demande du client.

Une notion très importante à connaitre est la notion de cache HIT.

Quand un serveur mandataire répond à une requête d’un client en allant chercher l’information dans son cache, on parle de cache HIT. En revanche, si le serveur mandataire doit aller questionner le serveur web externe, on parle de cache MISS. Dans tout réseau, l’objectif est d’atteindre au moins 30% de cache HIT (on parle alors de HIT ratio).

Comme nous l’avons dit auparavant, cette mise en cache possède des atouts considérables, mais il y a bien entendu des inconvénients. Le serveur mandataire effectue donc la copie des ressources dans son cache. Mais il ne possède qu’une copie des données disponibles sur le serveur web externe.

Alors qu’il possède ces données, ces dernières peuvent être mises à jour, ou même supprimées. Il faut donc que ces ressources mises en cache soient souvent vérifiées ou alors supprimées si elles ont été supprimées sur le site web dont elles proviennent.

Les algorithmes de mise en cache

La mise en cache utilise deux composants pour stocker les ressources qui sont la mémoire vive et le disque dur. Au départ, les ressources sont stockées dans la mémoire vive. Lorsque l’espace sur la mémoire vive n’est plus suffisant, les ressources sont alors stockées dans le disque dur. Les ressources mises en cache sont pour la plupart de petite taille, environ 12-13 Kilo-octets.

Lorsque l’espace en mémoire vive n’est plus suffisant, il faut faire appel à un processus qui va basculer les données de la mémoire vive jusqu’au disque dur.

S’il n’y a plus d’espace sur le disque dur, il sera alors nécessaire de mettre en œuvre un mécanisme de remplacement des ressources.

Pour ceci, il existe plusieurs algorithmes, dont les deux principaux sont :

LRU (Least Recently Used), qui va supprimer les ressources les plus anciennes.

MRU (Most Recently Used), qui va garder en mémoire les ressources les plus demandées.

Venons-en à Squid

Maintenant que nous avons présenté ce qu’est un serveur mandataire et toutes ses utilités, parlons de Squid, brièvement présenté en introduction.

Squid est un logiciel libre, qui est une solution de proxy cache crée en 1996 par Duane Wessels, qui dirigeait alors une équipe de développeurs. Squid a été développé en se basant sur le projet Harvest, et est un logiciel qui évolue en permanence, car il a besoin de s’adapter aux différentes versions du protocole HTTP.

Squid supporte aujourd’hui pratiquement tous les standards Internet et utilise comme principaux protocoles comme HTTP, HTTPS et FTP. Il est disponible sur beaucoup de systèmes d’exploitation comme Linux ou Microsoft.

Squid, qui est donc une solution de proxy ou serveur mandataire, va nous permettre d’économiser de la bande passante, d’optimiser les slows links, peut travailler comme une passerelle grâce au protocole ICP (Internet Cache Protocol – crée en Septembre 1997, qui est un protocole Internet qui est utilisé pour coordonner les caches web, son but est de chercher et trouver l’endroit où récupérer une ressource demandée par un client).

Squid permet aussi de limiter et de restreindre les redirecteurs, les fonctions d’Access Control List ainsi que l’authentification et les rewriters (aide).

C’est un proxy que l’on dit « transparent ».

Il existe deux types de proxy : les proxys transparents et les proxys explicites. Les proxys transparents ont besoin de règles de routage sur la passerelle pour fonctionner, et il n’y a aucune authentification utilisateur possible.

Les proxys explicites permettent de configurer les navigateurs et l’authentification utilisateur est possible.

Squid a une licence GNU GPL (General Public License) et est disponible sur le site suivant : http://www.squid-cache.org.

Conclusion

Tout d'abord, merci à tous d'avoir lu cet article, qui retrace les fonctionnalités des serveurs mandataires, qui sont aujourd'hui très utilisés grâce à leur praticité.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels