Serveurs proxy et reverse proxy : Bienvenue dans le monde de l’informatique !

Les serveurs proxy et reverse proxy pour les débutants

I. Introduction

Les bases des serveurs proxy et reverse proxy

Dans ce tutoriel, nous allons explorer les concepts théoriques des serveurs proxy et reverse proxy. Ces deux notions sont essentielles en informatique et très proches l’une de l’autre. C’est pourquoi nous les aborderons ensemble dans cet article. Il est crucial de comprendre ces deux approches, car elles jouent un rôle majeur dans le fonctionnement de l’internet.

II. Qu’est-ce qu’un proxy ?

Un serveur proxy, également connu sous le nom de serveur mandataire, agit comme un intermédiaire entre un client et un serveur distant. Il se positionne entre les ordinateurs connectés au réseau local d’une entreprise et Internet, et joue le rôle de médiateur. Les serveurs proxy offrent de nombreuses fonctionnalités, telles que le filtrage, le cache, la compression, la journalisation, l’anonymat et les droits d’accès.

  • Le filtrage permet de bloquer certains sites ou catégories de sites.
  • Le cache permet de stocker en mémoire cache les requêtes (par exemple, les pages web) afin de les servir plus rapidement aux postes de travail.
  • La compression réduit la taille des pages avant de les renvoyer aux clients.
  • La journalisation enregistre toutes les requêtes reçues par le serveur proxy.
  • L’anonymat est assuré par le proxy, qui cache l’adresse IP réelle de l’utilisateur.
  • Les droits d’accès permettent au proxy de filtrer les accès au-delà du simple filtrage web.

Par exemple, si vous utilisez un poste de travail configuré pour utiliser un proxy et que vous souhaitez accéder au site “www.it-connect.fr”, votre poste enverra une requête au serveur proxy pour récupérer la page du site. Le proxy se connectera ensuite au site et renverra la page Web à votre poste, sans que le serveur Web ne sache la présence de votre poste. En d’autres termes, le proxy agit comme un intermédiaire qui demande, à votre place, le contenu d’une page web et vous le renvoie.

Les serveurs proxy sont couramment utilisés pour la navigation sur Internet, notamment pour les protocoles HTTP et HTTPS. Il existe également d’autres types de proxy, tels que le Proxy SOCKS pour effectuer des connexions SSH.

A. Proxy et proxy transparent

Dans un environnement d’entreprise, il est courant d’utiliser un serveur proxy, en particulier pour le filtrage web et la sécurisation de la navigation Internet des utilisateurs, notamment dans les établissements scolaires. Il existe deux façons d’intégrer un serveur proxy :

  1. Un proxy classique : Dans ce cas, le poste client doit être configuré pour utiliser le serveur proxy. Sinon, les requêtes seront envoyées directement au serveur distant, contournant ainsi le proxy.

L’intégration du serveur proxy peut se faire de différentes manières. Par exemple, on peut le placer dans une zone démilitarisée (DMZ) afin que les postes clients ne se connectent pas directement à Internet, mais au serveur proxy isolé. Dans certains cas, le pare-feu lui-même remplit le rôle de proxy, ce qui élimine la nécessité d’une DMZ.

  1. Un proxy transparent : Dans ce cas, le proxy est utilisé comme passerelle au niveau de la configuration du poste client, sans nécessiter de configuration spécifique sur le poste lui-même. C’est la configuration idéale pour filtrer le trafic émis par les postes clients. L’utilisation d’un proxy transparent ne nécessite pas d’interaction de la part des utilisateurs.

B. Comment configurer un proxy sur un poste de travail ?

Il existe plusieurs façons de configurer un proxy sur un poste client. La configuration peut se faire au niveau de chaque logiciel, à condition que le logiciel prenne en charge l’utilisation d’un proxy.

Sur Windows 11, vous pouvez configurer un proxy en cliquant sur “Paramètres”, puis “Réseau et Internet”, et enfin “Proxy”. Ensuite, vous devrez cliquer sur “Configurer” dans la section “Utiliser un serveur proxy” et saisir l’adresse du proxy.

Dans Firefox, vous pouvez configurer un proxy en accédant aux options, en cliquant sur l’onglet “Général” et en sélectionnant “Paramètres réseau”. Vous pouvez alors définir les paramètres du proxy.

Il existe également des solutions pour configurer le proxy sur l’ensemble d’un parc informatique sans intervention manuelle :

  • Utiliser une GPO (Stratégie de groupe) pour déployer les paramètres de configuration du proxy sur les postes clients.
  • Utiliser une GPO pour spécifier l’emplacement d’un script d’auto-configuration du proxy (“proxy.pac”) qui contient une fonction JavaScript permettant de déterminer si le navigateur doit accéder au site directement ou passer par le proxy. Le fichier doit avoir l’extension “.PAC” pour “Proxy Automatic Configuration”.

C. Quels logiciels pour mettre en place un proxy ?

Pour mettre en place un serveur proxy, il existe de nombreuses solutions gratuites et payantes. L’une des solutions les plus connues est Squid, un logiciel performant et célèbre. Squid peut être installé sur un serveur Linux, ou intégré à un pare-feu PfSense pour ajouter la fonctionnalité de proxy. Squid-Guard peut être ajouté pour effectuer le filtrage web.

Parmi les solutions payantes, Olfeo et UCOPIA sont bien connues.

D. L’anonymat avec un proxy

Utiliser un serveur proxy permet d’être anonyme vis-à-vis du site visité, mais il est important de savoir que le proxy enregistre toutes les requêtes que vous lui envoyez. Il connaîtra donc tout votre historique de navigation. Pour une véritable anonymisation sur Internet, il est recommandé d’utiliser un service VPN.

E. Les proxies de mise en cache

Un proxy de mise en cache stocke les données sur son disque local. Cela permet de distribuer des mises à jour logicielles de manière plus efficace. Le proxy télécharge la mise à jour une fois depuis Internet et la met en cache, puis la distribue aux postes clients sans qu’ils aient besoin de télécharger la mise à jour individuellement. Par exemple, le logiciel ESET propose une fonctionnalité de mise en cache pour distribuer les mises à jour des signatures antivirus.

La mise en cache peut également améliorer les performances générales de navigation sur Internet.

F. Les ports utilisés par un serveur proxy

Il n’y a pas de port spécifique associé aux serveurs proxy, car le proxy lui-même n’est pas un protocole. Cependant, les ports 3128 et 8080 sont couramment utilisés pour les serveurs proxy. Le port 3128 est le port par défaut de Squid, un logiciel de serveur proxy populaire. Le port 8080 est également souvent utilisé.

Cependant, il est tout à fait possible de configurer un proxy sur un autre port, y compris le port 80 (http) ou le port 443 (https).

G. Contourner les restrictions avec un proxy

Un serveur proxy permet de contourner les restrictions, qu’elles soient liées à la géolocalisation ou appliquées au sein d’un réseau d’entreprise (par exemple, par un pare-feu). Par exemple, si vous avez besoin d’accéder à un site Web bloqué par un pare-feu, vous pouvez utiliser un proxy externe. Votre ordinateur enverra la requête au proxy, qui récupérera le contenu pour vous. Ainsi, la requête ne sera pas bloquée par le pare-feu, car vous contactez le proxy plutôt que le site directement.

Il est important de noter que la possibilité de contourner les restrictions dépend de la configuration du pare-feu et éventuellement du proxy lui-même. Certains pare-feux bloquent les proxies connus utilisés pour contourner les restrictions, tandis que d’autres peuvent bloquer certains ports utilisés par le proxy.

Si vous êtes motivé, vous pouvez même créer votre propre proxy sur le port 80 (http) ou 443 (https) pour l’utiliser comme “rebond”.

III. Qu’est-ce qu’un reverse proxy ?

À la différence du proxy classique, le reverse proxy permet aux utilisateurs externes d’accéder à des ressources internes. Lorsque vous accédez à une ressource protégée par un reverse proxy, vous contactez le reverse proxy qui gère alors la requête. Il communique avec le serveur cible à votre place et vous renvoie la réponse. Le client n’a aucune visibilité sur les serveurs cachés derrière le reverse proxy. Le reverse proxy agit comme une barrière de protection pour les serveurs internes et permet de publier des ressources de manière sécurisée.

Un cas d’utilisation courant du reverse proxy consiste à avoir plusieurs serveurs web cachés derrière celui-ci. Le reverse proxy peut répartir la charge entre ces serveurs, ce qui permet de maintenir un équilibre et de garantir un fonctionnement continu même en cas de panne d’un serveur. Si l’on schématise une infrastructure web avec un reverse proxy intégré au pare-feu, voici à quoi ça ressemble :

[Schéma Reverse Proxy]

Si le reverse proxy est un serveur à part entière, il peut être positionné en DMZ (zone démilitarisée), tandis que les serveurs web sont situés dans le réseau local. Les flux en provenance de l’extérieur (c’est-à-dire des postes clients souhaitant accéder au site web) continuent d’arriver sur le reverse proxy, qui agit comme un intermédiaire.

Le reverse proxy peut également mettre en cache certaines ressources pour soulager les serveurs web et améliorer les performances du site grâce à la compression des données. Par exemple, il peut mettre en cache des fichiers JavaScript statiques.

En résumé, le reverse proxy fonctionne comme un croupier dans un casino, distribuant les cartes (connexions) aux joueurs (serveurs) autour de la table (réseau local) pendant la partie.

A. L’en-tête HTTP et le champ “X-Forwarded-For”

Le proxy peut configurer l’en-tête HTTP “X-Forwarded-For” pour ajouter l’adresse IP du client d’origine. Ainsi, le serveur qui reçoit la requête du reverse proxy peut identifier le client réel, même s’il passe par le proxy. Cette fonctionnalité est importante du point de vue de la sécurité, car elle permet de bloquer spécifiquement un client en cas d’attaque brute sur le serveur Web.

B. Quels logiciels pour mettre en place un reverse proxy ?

Plusieurs solutions open source sont disponibles pour mettre en place un reverse proxy, notamment Apache avec son module mod_proxy, Nginx et le serveur Web Microsoft IIS (Integrated Information Services) intégré à Windows. Ces solutions permettent également de créer des serveurs Web.

HaProxy est un logiciel gratuit et open source spécifiquement conçu pour jouer le rôle de reverse proxy.

Squid, que nous avons déjà mentionné précédemment, peut également être utilisé comme reverse proxy. Si vous utilisez le pare-feu PfSense, vous pouvez ajouter Squid pour ajouter la fonctionnalité de reverse proxy.

En conclusion, les serveurs proxy et reverse proxy sont des éléments clés de l’infrastructure réseau. Ils offrent de nombreuses fonctionnalités et permettent de sécuriser, améliorer les performances et simplifier la gestion des réseaux d’entreprises.

N’hésitez pas à explorer ces concepts plus en profondeur et à expérimenter avec divers logiciels pour mieux comprendre leur fonctionnement.