La sécurisation du fonctionnement des serveurs Web est à la fois un problème et un défi pour les administrateurs réseau. En effet, les services en ligne tels que l'utilisation d'Internet ou du courrier électronique passent nécessairement par un réseau public. Toutefois, cette navigation directe sur Internet risque de faciliter l'attaque des systèmes par les softs malveillants. C'est pourquoi il est recommandé de faire usage, en guise de hedging, d'un composant réseau : le "reverse proxy" ou proxy inverse en français.

Qu'est-ce qu'un reverse proxy ?

Contrairement aux autres formes de proxy, le proxy inverse, comme son nom l'indique, fonctionne en sens inverse, ce qui signifie qu'il permet aux utilisateurs externes d'atteindre les ressources du réseau interne. Au moment où vous demandez l'accès à une ressource protégée par un reverse proxy, vous le contactez et c'est lui qui prend en charge la requête. C'est-à-dire qu'il contacte pour vous le serveur cible à votre place et vous retourne la réponse.

Le client ne dispose pas d'accès au (x) serveur(s) caché(s) derrière(s) le reverse proxy. Le proxy inverse agit comme une couverture contre les serveurs du réseau interne et il permettra de publier la ressource en toute sécurité.

Quels sont les meilleurs reverse proxy ?

Les reverse proxy les plus connus actuellement sont HAProxy, NGINX, Cache HTTP Varnish et Traefik. Voici les points forts de chacun.

HAProxy

HAProxy est un open source software 100 % gratuit. Il comporte un équilibreur de charge instantané et un reverse proxy dédié aux applications TCP et HTTP qui distribuent les requêtes sur plusieurs serveurs. Il est programmé en C et est connu pour être rapide et efficace.

NGINX

NGINX Open Source ou NGINX est un "freeware" de serveur web accompagné d'un reverse proxy programmé par Igor Sysoev en 2002 pour les besoins d'un site web russe avec un trafic énorme. La documentation est proposée en plusieurs langues.

Cache HTTP Varnish

Créé en 2006 sous licence BSD, Varnish est utilisé comme un proxy inverse entre le serveur d'application et le client. Il permet de réduire la pré-charge en mettant en cache leurs données, selon des règles définies par les administrateurs système et les développeurs de sites web. Le but est de servir les requêtes plus rapidement, tout en réduisant la charge sur le serveur.

Traefik

Traefik (prononcé trafic) est un proxy inverse HTTP moderne et un équilibreur de charge qui facilite le déploiement de microservices. Traefik s'intègre à vos composants d'infrastructure existants (Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS, etc.) et fonctionne de manière automatique.

Pointer Traefik vers votre orchestrateur devrait être la seule étape de configuration dont vous avez besoin.

Quel est le meilleur proxy ?

NGINX Plus et NGINX figurent en tête de liste. On les trouve majoritairement sur les plateformes internet à fort trafic tels que Dropbox, Netflix et Zynga. Pas moins de 400 millions de sites Web internationaux s'appuient sur NGINX Plus et NGINX Open Source en vue d'assurer une diffusion de contenu rapide, fiable et sécurisée.

Un reverse proxy est-il assez sécurisé ?

Comme un niveau de sécurité supplémentaire est toujours la bienvenue, les proxys inverses sont efficaces pour protéger le système des vulnérabilités de la toile. Un proxy inverse est placé entre les clients externes et vos services internes, bloquant l'accès direct à votre réseau. Si vous minimisez l'exposition de votre infrastructure informatique, les pirates auront une difficulté pour atteindre vos précieuses données.

En conclusion, il est recommandé de faire usage d'un proxy inverse comme mesure de sécurité supplémentaire. Toutefois, comme un proxy inverse risque de se convertir en http entre l'utilisateur et le serveur Web interne, il ne fournira aucune mesure de la prévention du piratage sur le serveur Web lui-même. En effet, si votre application Web a une faille de sécurité, la présence du proxy sera insignifiante.