Proxy inverse - Reverse proxy

Un serveur proxy connectant Internet à un réseau interne.
Exemple de scénario : Un client sur Internet ( cloud à gauche ) fait une requête à un serveur proxy inverse ( ovale rouge au milieu ). Le proxy inspecte la requête, détermine qu'elle est valide et qu'il n'a pas la ressource demandée dans son propre cache. Il transmet ensuite la demande à un serveur Web interne ( ovale à droite ). Le serveur interne renvoie la ressource demandée au proxy, qui à son tour la remet au client. Le client sur Internet ne connaît pas le réseau interne et ne peut pas dire s'il communique avec un proxy ou directement avec un serveur Web.

Dans les réseaux informatiques , un proxy inverse est un type de serveur proxy qui récupère les ressources au nom d'un client à partir d'un ou plusieurs serveurs . Ces ressources sont ensuite renvoyées au client, apparaissant comme si elles provenaient du serveur proxy inverse lui-même. Il est principalement utilisé pour équilibrer la charge .

Les grands sites Web et réseaux de diffusion de contenu utilisent des proxys inverses, ainsi que d'autres techniques, pour équilibrer la charge entre les serveurs internes. Les proxys inverses peuvent conserver un cache de contenu statique, ce qui réduit encore la charge sur ces serveurs internes et le réseau interne. Il est également courant que les proxys inverses ajoutent des fonctionnalités telles que la compression ou le cryptage TLS au canal de communication entre le client et le proxy inverse.

Les proxys inverses sont généralement détenus ou gérés par le service Web et sont accessibles par les clients à partir de l'Internet public. En revanche, un proxy de transfert est généralement géré par un client (ou son entreprise) qui est limité à un réseau interne privé, sauf que le client peut demander au proxy de transfert de récupérer des ressources sur l'Internet public au nom du client.

Les serveurs proxy inverses sont implémentés dans des serveurs Web open source populaires tels que Apache , Nginx et Caddy . Ce logiciel peut inspecter les en-têtes HTTP, ce qui lui permet par exemple sur une même adresse IP de relayer les requêtes vers différents serveurs internes en fonction du nom de domaine de la requête HTTP. Des serveurs proxy inverses dédiés tels que les logiciels open source HAProxy et Squid sont utilisés par certains des plus grands sites Web sur Internet. Les fournisseurs commerciaux populaires de serveurs proxy inverses incluent Cloudflare et Imperva .

Les usages

  • Les proxys inversés peuvent masquer l'existence et les caractéristiques des serveurs d'origine .
  • Les fonctionnalités de pare-feu applicatif peuvent protéger contre les attaques Web courantes, comme les attaques par déni de service (DoS) ou les attaques par déni de service distribué (DDoS). Sans proxy inverse, la suppression des logiciels malveillants ou le lancement de retraits , par exemple, peut être difficile.
  • Dans le cas de sites Web sécurisés , un serveur Web peut ne pas effectuer lui-même le cryptage TLS , mais décharger la tâche sur un proxy inverse qui peut être équipé d' un matériel d' accélération TLS . (Voir proxy de terminaison TLS .)
  • Un proxy inverse peut répartir la charge des requêtes entrantes sur plusieurs serveurs, chaque serveur prenant en charge son propre domaine d'application. Dans le cas de serveurs Web de proxy inverse, le proxy inverse peut devoir réécrire l' URL dans chaque requête entrante afin de correspondre à l'emplacement interne pertinent de la ressource demandée.
  • Un proxy inverse peut réduire la charge sur ses serveurs d'origine en mettant en cache le contenu statique et le contenu dynamique , ce que l'on appelle l'accélération Web . Les caches proxy de ce type peuvent souvent satisfaire un nombre considérable de demandes de sites Web, réduisant considérablement la charge sur le ou les serveurs d'origine.
  • Un reverse proxy peut optimiser le contenu en le compressant afin d'accélérer les temps de chargement.
  • Dans une technique appelée « alimentation à la cuillère », une page générée dynamiquement peut être produite en une seule fois et envoyée au proxy inverse, qui peut ensuite la renvoyer au client petit à petit. Le programme qui génère la page n'a pas besoin de rester ouvert, libérant ainsi les ressources du serveur pendant le temps éventuellement prolongé dont le client a besoin pour terminer le transfert.
  • Les proxys inversés peuvent fonctionner partout où plusieurs serveurs Web doivent être accessibles via une seule adresse IP publique. Les serveurs web écoutent sur des ports différents sur la même machine, avec la même adresse IP locale ou, éventuellement, sur des machines différentes avec des adresses IP locales différentes. Le proxy inverse analyse chaque requête entrante et la transmet au bon serveur au sein du réseau local .
  • Les proxys inversés peuvent effectuer des tests A/B et des tests multivariés sans placer de balises ou de code JavaScript dans les pages.
  • Un proxy inverse peut ajouter une authentification d'accès HTTP de base à un serveur Web qui n'a aucune authentification.

Des risques

  • Un proxy inverse peut suivre toutes les adresses IP effectuant des requêtes via celui-ci et il peut également lire et modifier tout trafic non crypté. Ainsi, il peut enregistrer des mots de passe ou injecter des logiciels malveillants, et peut le faire s'il est compromis ou exécuté par une partie malveillante.
  • Lorsque le trafic de transit est crypté et que le proxy inverse doit filtrer/mettre en cache/compresser ou modifier ou améliorer le trafic, le proxy doit d'abord décrypter et recrypter les communications. Cela nécessite que le proxy possède le certificat TLS et sa clé privée correspondante, ce qui augmente le nombre de systèmes pouvant avoir accès aux données non cryptées et en fait une cible plus précieuse pour les attaquants.
  • La grande majorité des violations de données externes se produisent soit lorsque les pirates parviennent à abuser d'un proxy inverse existant qui a été intentionnellement déployé par une organisation, soit lorsque les pirates parviennent à convertir un serveur Internet existant en un serveur proxy inverse. Les systèmes compromis ou convertis permettent aux attaquants externes de spécifier où ils souhaitent que leurs attaques soient relayées, leur permettant d'accéder aux réseaux et systèmes internes.
  • Les applications qui ont été développées pour l'usage interne d'une entreprise ne sont généralement pas durcies par rapport aux normes publiques et ne sont pas nécessairement conçues pour résister à toutes les tentatives de piratage. Lorsqu'une organisation autorise l'accès externe à de telles applications internes via un proxy inverse, elle peut involontairement augmenter sa propre surface d'attaque et inviter des pirates.
  • Si un proxy inverse n'est pas configuré pour filtrer les attaques ou s'il ne reçoit pas de mises à jour quotidiennes pour maintenir à jour sa base de données de signatures d'attaques, une vulnérabilité zero-day peut traverser sans filtre, permettant aux attaquants de prendre le contrôle du ou des systèmes qui sont derrière le serveur proxy inverse.
  • L'utilisation du proxy inverse d'un tiers (par exemple Cloudflare , Imperva) place toute la triade de la confidentialité, de l'intégrité et de la disponibilité entre les mains du tiers qui exploite le proxy.
  • Si un proxy inverse fait face à de nombreux domaines différents, sa panne (par exemple par une mauvaise configuration ou une attaque DDoS) pourrait faire tomber tous les domaines frontés.
  • Les proxys inversés peuvent également devenir un point de défaillance unique s'il n'y a pas d'autre moyen évident d'accéder directement au serveur principal.

Voir également

Les références