Les proxys inverses


L’objectif de cet article est d’expliquer ce qu’est un proxy inverse en partant d’un exemple relativement simple.

On se place dans la situation du schéma ci-dessous:

Les règles du pare-feu font que les utilisateurs du LAN peuvent accéder aux serveurs virtuels de l’ESX dans la DMZ. Par exemple, pour accéder au serveur de média Jellyfin, l’utilisateur peut taper http://10.33.0.4:8096 ou encore http://jellyfin.test.local:8096 (si le serveur DNS possède cet enregistrement).

Cependant, ces méthodes ne marchent qu’en local, alors quid d’un accès depuis internet avec le domaine fictif test.com ?

C’est ici que les choses se corsent… Les services web présents sur les serveurs utilisent beaucoup de ports que l’on devrait ouvrir au niveau du routeur, et il n’est pas très pratique de spécifier le port chaque fois que l’on veut charger un site. C’est ici que les proxys inverses (plus souvent appelés par leur nom anglais reverse proxy) trouvent tous leurs intérêts.

Son rôle (en tout cas dans notre exemple) est de servir de passerelle unique à tous les services web, permettant ainsi une réécriture des ports et un accès aux différents services à partir d’une seule et même adresse IP.

Prenons un exemple pour que cela soit plus clair: On suppose que l’adresse IP publique de notre exemple est 86.198.25.120. Si l’on veut accéder au serveur mattermost, on peut taper dans la barre de navigation http://86.198.25.120:8065 qui devrait nous renvoyer sur la page de connexion de Mattermost si le port 8065 est ouvert. Avec un reverse proxy, il suffit (si notre domaine possède cet enregistrement A) de créer l’enregistrement http://mattermost.test.com -> http://10.33.0.6:8065 et l’on devrait tomber sur la page de connexion en demandant http://mattermost.test.com. C’est magique…

De fait, les seuls ports à ouvrir sont les port 80 et 443 au proxy, cela ajoute donc une couche supplémentaire de sécurité à votre infrastructure dont la topologie sera plus dure à déterminer.

Mais les reverse proxys n’ont pas qu’une corde à leur arc d’outil indispensable en web. Ils peuvent servir de proxy de terminaison TLS, c’est à dire que la liaison entre le serveur et le proxy se fait en HTTP et la liaison entre le proxy et internet en HTTPS (en admettant que vous ayez des certificats TLS valides, ce qu’il est assez facile d’obtenir gratuitement grâce à Let’s Encrypt).

Si l’on en revient a notre exemple, lorsque l’on demandera d’accéder à l’url https://mattermost.test.com, le trafic entre le serveur sur 10.33.0.6, port 8065, et le reverse proxy se fera en HTTP, mais le trafic entre le reverse proxy et le navigateur web destinataire (le site peut être éventuellement mandaté (proxied) chez cloudflare, mais cela ne change pas grand chose à l’affaire) se fera de manière sécurisée.


2 réponses à “Les proxys inverses”

  1. Hi I am so delighted I found your webpage, I really found you by error, while
    I was searching on Yahoo for something else, Regardless I am here now and would just like
    to say many thanks for a marvelous post and a all round thrilling
    blog (I also love the theme/design), I don’t have time to
    browse it all at the moment but I have book-marked it and also included your
    RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the superb b.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *