Les reverse proxys, ou proxys inverses en français, sont utilisés comme com­po­sants réseau in­ter­mé­diaires pour sécuriser les serveurs des services publics en ligne. Pour ce faire, ils reçoivent les requêtes des clients et les trans­met­tent aux serveurs.

Comment fonc­tionne un reverse proxy ?

Fon­da­men­ta­le­ment, un serveur proxy fonc­tionne comme une interface de com­mu­ni­ca­tion sur le réseau, qui reçoit les requêtes et les transmet à un serveur cible par pro­cu­ra­tion. Un reverse proxy est toujours placé entre les clients (par exemple, les na­vi­ga­teurs Web) et les serveurs dorsaux ou backend (par exemple, les serveurs Web, les serveurs de base de données ou les ap­pli­ca­tions). Dès qu’une requête client est envoyée, il in­ter­vient et décide si elle doit être transmise et vers quel composant serveur interne. Voici les quatre étapes de base de ce processus :

  1. Réception de la requête du client : le reverse proxy accepte les requêtes HTTP, HTTPS, ou d’autres requêtes comme FTP ou WebSocket.
  2. Analyse de la requête : le proxy vérifie si la requête est valide, si elle présente des risques de sécurité et s’il existe une version mise en cache.
  3. Renvoi vers le serveur approprié : si la demande ne peut pas être sa­tis­faite à partir du cache, le reverse proxy envoie la demande à l’un des serveurs internes.
  4. Réponse au client : le reverse proxy reçoit la réponse du serveur dorsal, la traite si né­ces­saire (par exemple avec un chif­fre­ment) et la renvoie au client qui a fait la demande.
Image: Représentation schématique d’un reverse proxy
Le reverse proxy et le serveur Web se trouvent sur un réseau interne commun.
Note

Les reverse proxys sont gé­né­ra­le­ment installés sur un réseau privé ou une zone dé­mi­li­ta­ri­sée (DMZ) et sécurisés par un pare-feu.

Quelle est la dif­fé­rence avec les forward proxys ?

Alors que les reverse proxys sont placés entre les clients et les serveurs backend, les forward proxys sont placés entre les clients et Internet.

Un forward proxy canalise toutes les requêtes des clients et les transmet avec sa propre adresse d’ex­pé­di­teur aux serveurs cibles sur Internet. Les réponses des serveurs at­teig­nent d’abord le proxy avant d’être dis­tri­buées aux appareils clients cor­res­pon­dants. Ceux-ci restent donc anonymes, à moins qu’il ne s’agisse d’un proxy trans­pa­rent.

Alors qu’un forward proxy protège les clients sur le réseau interne contre les menaces externes, un reverse proxy sécurise les serveurs sur un réseau public et optimise leur ac­ces­si­bi­lité.

Les reverse proxys offrent ainsi des avantages évidents pour les struc­tures de serveurs grâce à des fonc­tion­na­li­tés telles que le load balancing et diverses fonctions de sécurité, les forces des forward proxys résident dans la pro­tec­tion des clients.

Image: Représentation schématique d’un forward proxy
Con­trai­re­ment au reverse proxy, le forward proxy se trouve sur un réseau interne partagé avec les clients.
Note

Les forward proxys sont souvent utilisés pour contrôler l’accès à Internet dans les réseaux d’en­tre­prise. Ils sont également utilisés pour l’ano­ny­mi­sa­tion dans les services VPN et pour con­tour­ner le géo­blo­cking.

Domaines d’ap­pli­ca­tion d’un reverse proxy

Le re­grou­pe­ment des requêtes des clients permet un contrôle élevé du trafic entrant grâce aux reverse proxys. Cela permet notamment de mettre à dis­po­si­tion plusieurs serveurs sous la même URL, de répartir les requêtes de manière égale sur dif­fé­rents serveurs et d’accélérer la ré­cu­pé­ra­tion des données grâce au caching. Les prin­ci­paux domaines d’uti­li­sa­tion d’un serveur reverse proxy sont énumérés ci-dessous.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avan­ta­geux et cœurs dédiés per­for­mants
  • Sans en­ga­ge­ment pour plus de flexi­bi­lité
  • As­sis­tance par des experts 24h/24 et 7j/7 incluse

Load balancing (équi­li­brage de charge)

Grâce à un reverse proxy placé en amont, il est possible de lier une URL à divers serveurs sur le réseau privé. Cela permet de répartir les requêtes entrantes sur plusieurs serveurs. Ce load balancing prévient la surcharge de certains systèmes et sert de solution de secours en cas de panne. Si un serveur est inac­ces­sible en raison d’une dé­fail­lance ma­té­rielle ou lo­gi­cielle, le module de load balancing du proxy re­dis­tri­bue les requêtes entrantes sur les serveurs restants. La dis­po­ni­bi­lité des services du serveur continue ainsi d’être assurée même en cas de panne.

Caching (mise en cache)

Pour accélérer la vitesse des services de serveur, les reverse proxys peuvent offrir une fonction per­met­tant de mettre en cache le contenu fré­quem­ment consulté. Cela permet au serveur proxy de répondre lui-même aux requêtes ré­pé­ti­tives, soit in­té­gra­le­ment, soit par­tiel­le­ment. Les contenus statiques tels que les images ou les feuilles de style CSS sont conservés dans le cache du proxy. Ainsi, il n’y a pas ou beaucoup moins de données à récupérer auprès du serveur dorsal, ce qui accélère con­si­dé­ra­ble­ment le taux d’accès aux services Web. Cependant, comme il n’est pas toujours possible de s’assurer que le cache du proxy contient la version la plus récente des contenus qui changent ra­pi­de­ment, il peut arriver que les clients reçoivent des in­for­ma­tions obsolètes.

Mesures de pro­tec­tion et de sécurité

Un reverse proxy agit comme une sorte de bouclier pour les serveurs dorsaux et peut, dans ce rôle, offrir dif­fé­rentes fonctions de sécurité :

  • Pro­tec­tion contre les DDoS : les reverse proxys peuvent détecter et bloquer le trafic suspect ou anor­ma­le­ment élevé dans le cadre d’attaques DDoS avant qu’il n’atteigne les serveurs dorsaux.
  • Pare-feu ap­pli­ca­tif Web (WAF) : de nombreux reverse proxys incluent un WAF qui peut filtrer les requêtes mal­veil­lantes telles que les in­jec­tions SQL ou le cross-site scripting (XSS).
  • Liste blanche et liste noire d’adresses IP : le proxy peut, si né­ces­saire, bloquer certaines adresses IP ou n’autoriser que les con­nexions provenant de certains réseaux.
  • Masquage des serveurs backend : le proxy empêche que les adresses IP internes des serveurs backend soient pu­bli­que­ment visibles, ce qui rend les attaques plus dif­fi­ciles.

Chif­fre­ment

Afin de soulager les serveurs backend, les serveurs reverse proxy peuvent également être utilisés pour le chif­fre­ment. Dans ce cas, ils dé­chiffrent la requête SSL/TLS du client (par exemple une connexion HTTPS), trans­met­tent les données dé­chif­frée aux serveurs backend et renvoient la réponse au client sous forme chiffrée. La com­mu­ni­ca­tion interne peut être chiffrée ou non.

Ano­ny­mi­sa­tion

Un reverse proxy peut également être utilisé pour ano­ny­mi­ser le trafic en masquant les adresses IP ori­gi­nales des clients ou en les rem­pla­çant par d’autres adresses IP. De cette manière, la vie privée des clients peut être protégée, puisque les adresses IP réelles ne sont alors pas visibles dans les journaux. De plus, cela permet le geo load balancing : les requêtes peuvent être re­di­ri­gées vers le serveur le plus proche en fonction de l’em­pla­ce­ment géo­gra­phique de l’uti­li­sa­teur.

Com­pres­sion

Avec un logiciel approprié, un reverse proxy peut être utilisé pour com­pres­ser les données entrantes et sortantes. Un logiciel populaire pour la com­pres­sion de sites Web est gzip, souvent utilisé en com­bi­nai­son avec les serveurs Web Apache ou NGINX.

Aller au menu principal