Un serveur proxy (traduction française de proxy server, appelé aussi serveur mandataire) est
à l'origine une machine faisant fonction d'intermédiaire entre les ordinateurs d'un réseau local
(utilisant parfois des protocoles autres que le protocole TCP/IP) et internet.
La plupart du temps le serveur proxy est utilisé pour le web, il s'agit alors d'un proxy HTTP. Toutefois il peut exister
des serveurs proxy pour chaque protocole applicatif (FTP, ...).
Le principe de fonctionnement basique d'un serveur proxy est assez 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 à 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 que l'application cliente cherche à joindre et lui transmettre la requête.
Le serveur va ensuite donner sa réponse au proxy, qui va à son tour la transmettre
à l'application cliente.
Désormais, avec l'utilisation de TCP/IP au sein des réseaux locaux, 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.
La plupart des proxys assurent ainsi une fonction de cache (en anglais caching),
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 les leur
fournir le plus rapidement possible. En effet, en informatique, le terme de "cache" désigne un espace
de stockage temporaire de données (le terme de "tampon" est également parfois utilisé).
Un serveur proxy ayant la possibilité de cacher (néologisme signifiant "mettre en mémoire cache")
les informations est généralement appelé "serveur proxy-cache".
Cette fonctionnalité implémentée dans certains serveurs 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.
Toutefois, pour mener à bien cette mission, 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.
D'autre part, grâce à l'utilisation d'un proxy, il est possible d'assurer un suivi des connexions
(en anglais logging ou tracking) via la constitution de journaux d'activité (logs)
en enregistrant systématiquement les requêtes des utilisateurs lors de leurs demandes de connexion à Internet.
Il est ainsi possible de filtrer les connexions à internet en analysant d'une part les requêtes
des clients, d'autre part 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.
Dans la mesure où le proxy est l'intermédiaire indispensable des utilisateurs du réseau
interne 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 à l'aide d'un nom d'utilisateur et d'un
mot de passe par exemple. Il est ainsi aisé de donner l'accès aux ressources externes aux seules personnes
autorisées à le faire et de pouvoir enregistrer dans les fichiers journaux des accès identifiés.
Ce type de mécanisme lorsqu'il est mis en oeuvre pose bien évidemment de nombreux problèmes
relatifs aux libertés individuelles et aux droits des personnes...
On appelle reverse-proxy (en français le terme de relais inverse est parfois employé) 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
d'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. D'autre part, 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" (server accelerator).
Enfin, grâce à des algorithmes perfectionnés,
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", ou en anglais "load balancing".
Le proxy le plus répandu est sans nul doute Squid, un
logiciel libre disponible sur de nombreuses plates-formes dont Windows et Linux.
Sous Windows il existe plusieurs logiciels permettant de réaliser un serveur proxy à moindre coût
pour son réseau local :
- Wingate est la solution la plus courante (mais non gratuite)
- la configuration d'un proxy avec Jana server devient de plus en plus courante
- Windows 2000 intègre Microsoft Proxy Server (MSP), complété par Microsoft Proxy Client, permettant de réaliser cette opération
|