Un proxy - serveur mandataire en français - est un serveur informatique qui a pour fonction de relayer des requêtes entre un poste client et un serveur.
Un proxy est donc un mandataire, un intermédiaire « proxy : manda », « by proxy : par procuration ».
C’est à l’origine une machine faisant fonction d’intermédiaire entre les ordinateurs d’un réseau local - utilisant parfois d’autres protocoles que le TCP/IP - et internet.
Le concept a été inventé par le CERN en 1994.
Il a été pensé originellement pour relier à Internet des réseaux locaux n’utilisant pas le protocole TCP/IP.
La plupart du temps, le serveur proxy est utilisé pour le web, il s’agit alors d’un proxy HTTP.
Le principe de fonctionnement basique d’un serveur proxy est simple, il s’agit d’un serveur « mandaté » par une application pour effectuer une requête sur Internet à sa place.
Ainsi, lorsqu’un utilisateur se connecte à l’internet à l’aide d’une application cliente configurée pour utiliser un serveur proxy, celle-ci va se connecter en premier lieu au serveur proxy et lui donner sa requête.
Le serveur proxy va alors se connecter au serveur de l’application cliente à joindre et lui transmettre la requête (souvent une connexion à un site web).
Le serveur va ensuite donner sa réponse au proxy, qui va à son tour transmettre à l’application cliente.
En tapant une adresse http://yahoo.fr/, votre ordinateur va se connecter sur le serveur de yahoo.fr et lui demander la page correspondante.
Avec un proxy, quand vous tapez http://yahoo.fr/ votre ordinateur va se connecter au proxy et lui demander d’aller chercher la page sur yahoo.fr
Désormais avec l’utilisation de TCP/IP au sein des réseaux, le rôle de relais du serveur proxy est directement assuré par les passerelles et les routeurs.
Pour autant les serveurs proxy sont toujours d’actualité, grâce à un certain nombre d’autres fonctionnalités.
L’utilité des serveurs mandataires est importante, notamment dans le cadre de la sécurisation des systèmes d’information.
Le serveur mandataire générique sert à relayer uniquement certaines requêtes, sur un port donné, comme les requêtes HTTP ou FTP.
Exemple de serveur mandataire public générique (réservé aux utilisateur du réseau Free) : proxy.free.fr sur le port logiciel 3128.
Le serveur mandataire SOCKS permet de relayer tout type d’informations, que ce soit des données relatives au Web, au courriel ou même aux messageries instantanées.
Ce serveur mandataire, plus intéressant en terme d’informations disponibles, est beaucoup moins répandu.
Les serveurs mandataires sont notamment utilisés pour assurer les fonctions suivantes :
mémoire cache
La plupart des proxys assurent ainsi une fonction de cache (caching en anglais), c’est-à-dire la capacité à garder en mémoire, en « cache » les pages les plus souvent visitées par les utilisateurs du réseau local afin de pouvoir leur fournir le plus rapidement possible.
Le terme de « cache » désigne un espace de stockage temporaire de données.
(Le terme « tampon » est également utilisé parfois).
Un serveur proxy ayant la possibilité de cacher (néologisme signifiant « mettre en mémoire cache » les informations est généralement dénommé « serveur proxy-cache ».
Cette fonctionnalité implémentée dans certains serveur proxy permet d’une part de réduire l’utilisation de la bande passante vers internet, ainsi que de réduire le temps d’accès aux documents pour les utilisateurs., en effet le proxy vous donnera immédiatement la page demandée , sans aller la chercher au serveur concerné.
Dans ce dernier cas, il est nécessaire que le proxy compare régulièrement les données qu’il stocke en mémoire cache avec les données distantes afin de s’assurer que les données en cache sont toujours valides.
Autrefois, lorsque la connexion s’effectuait par une facturation à la durée ou au volume transmis, le gain financier était appréciable, de même lorsque la connexion au Net se fait par un lien à faible débit, le gain en temps peut également être considérable.
La journalisation des requêtes (« logging » ou « tracking »)
Grâce à l’utilisation d’un proxy, il est possible d’assurer un suivi des connexions via la constitution de journaux d’activités (logs), en enregistrant systématiquement les requêtes des utilisateurs lors de leur demandes de connexions à internet.
Il est ainsi possible de filtrer les connexions à internet en analysant les requêtes des clients, ainsi que les réponses des serveurs.
Lorsque le filtrage est réalisé en comparant la requête du client à une liste de requêtes autorisées, on parle de liste blanche.
Lorsqu’il s’agit d’une liste de sites interdits, on parle de liste noire.
Enfin, l’analyse des réponses des serveurs conformément à une liste de critères (mots-clés,...) est appelé filtrage de contenu.
Ce type de mécanisme, lorsqu’il est mis en oeuvre pose de nombreux problèmes relatifs aux libertés individuelles et aux droit des personnes., en effet, le proxy grade en mémoire les sites visités, ainsi que les mots de passes (sauf à utiliser un protocole tel que https/ssl, où les informations sont cryptées)
La sécurité du réseau local
Dans la mesure où le proxy est l’intermédiaire indispensable des utilisateurs du réseau internet pour accéder à des ressources externes, il est parfois possible de l’utiliser pour authentifier les utilisateurs, c’est-à-dire de leur demander de s’identifier, par exemple, à l’aide d’un nom d’utilisateur et d’un mot de passe.
Il est ainsi aisé de donner accès aux ressources externes aux seules personnes autorisées à le faire et de pouvoir enregistrer les fichiers journaux des accès identifiés.
Le filtrage et l’anonymat
Le proxy peut vous protéger en vous autorisant à vous connecter à l’extérieur et interdire au ordinateurs de la toile de venir se connecter au vôtre.
Cette fonction de protection du proxy est souvent incluse dans les firewalls,
Certains proxys peuvent être configurés pour censurer des sites.
Le proxy peut masquer les informations concernant votre ordinateur, en effet quand vous surfez, tous les sites web peuvent savoir de quel site vous venez, quel navigateur vous utilisez, quel est votre système d’exploitation, votre adresse ip...
Les proxys anonymes (ou encore proxys anonymiseurs) masquent et/ou modifient ces informations.
Les serveurs contactés ne peuvent que connaître difficilement l’adresse IP de la machine cliente, ils ne « voient » que l’adresse du serveur anonymiseur, par contre ce dernier la connaît et peut l’enregistrer - rendant par là la notion d’anonymat toute relative.
Les serveurs génériques, quant à eux, transmettent l’adresse IP du client en même temps que la leur (champ HTTP X-Forwarded-For généralement).
Les proxys anonymes publics – gratuits – sont peu nombreux.
Les reverse-proxy
On appelle reverse-proxy (relais inverse), un serveur proxy-cache « monté à l’envers », c’est-à-dire un serveur proxy permettant non pas aux utilisateurs d’accéder au réseau internet, mais aux utilisateurs internet d’accéder indirectement à certains serveurs internes.
Le reverse-proxy sert ainsi de relais pour les utilisateurs d’internet souhaitant accéder à un site web interne en lui transmettant indirectement les requêtes.
Grâce au reverse-proxy, le serveur web est protégé des attaques directes de l’extérieur, ce qui renforce la sécurité du réseau interne.
La fonction de cache du reverse-proxy peut permettre de soulager la charge du serveur pour lequel il est prévu, c’est la raison pour laquelle un tel serveur est parfois appelé « accélérateur » (serveur accelerator).
Le reverse-proxy peut servir à répartir la charge en redirigeant les requêtes vers différents serveurs équivalents, on parle alors de répartition de charge (en anglais load balancing).