Les proxy et reverse proxy

Introduction

Concrètement un proxy c’est un serveur à qui l’on demande deux choses :

  1. Effectuer un certains nombre d’actions à notre place
  2. Nous renvoyer le résultat de ces actions
Pour ce faire, il vient se placer au milieu du flux de communication qui relie un client d’une ressource et le serveur publiant cette ressource. Ça revient un peu à un Man-in-the-Middle à des fins légitimes.

Les avantages du système

Les trois gros avantages du système sont les suivants :

  1. Les deux extrémités, que sont le client et serveur cible, ne sont jamais en relation directe. Ceci est particulièrement intéressant lorsque la confiance envers le serveur de ressource n’est pas établie (par exemple un serveur web public que vous ne maîtrisé pas). De plus on peut considérer que si le proxy ou le reverse proxy est compromis ce n’est pas dramatique d’un point de vue « Intégrité » dans le sens où il n’est pas sensé stocker d’informations puisqu’il est simplement un relais, sauf s’il fait office de cache.

    Notice

    Attention toutefois, d’un point de vue « Confidentialité », un proxy ou un reverse proxy compromis constitue une grosse faille de sécurité. Tout dépend de ce que vous faites avec.
  2. Le proxy étant celui fera les requêtes vers le serveur cible, nous avons la possibilité de contrôler la conformité de celles-ci. Il en va de même pour les résultats des requêtes. Ainsi il est possible d’effectuer une analyse anti-virus pour sur les flux http, du filtrage sur la consultation de page web, les application sont nombreuses…

L’exemple du proxy web

Le cas du proxy web est sûrement le plus fréquent et le plus parlant, voici ce qu’il se passe concrètement :

  1. Le client envoie une requête pour l’url http://www.google.fr au proxy web.
  2. Le proxy vérifie la conformité de cette requête. Fait-elle l’objet d’une règle de filtrage d’URL par exemple ? etc…
  3. Le proxy envoie la requête aux serveurs de google à la place du client.
  4. Les serveurs de google renvoient le contenu de la page au proxy.
  5. Le proxy analyse le contenu de la page. Fait-elle l’objet d’une règle de filtrage de contenu ? Contient-elle un virus ? etc…
  6. Le proxy renvoie le contenu de la page au client.

Le reverse proxy

C’est simple, c’est le même principe, sauf que dans ce cas là c’est le serveur publiant la ressource que l’on cherche à protéger et non plus les clients.

Le reverse proxy, parce qu’il vient de se placer en coupure du flux, permet également d’apporter certaines couches de sécurité supplémentaires. Lorsque l’on publie une ressource, il est évidemment préférable de la sécuriser à la base mais ce n’est pas toujours facile ou possible, dans ce cas le reverse proxy peut être un bon palliatif.

Une des sociétés pour lesquelles je travaillais publiait un portail web en HTTP depuis un serveur Tomcat directement sur Internet, et ils souhaitaient le passer en HTTPS. Je leur ai donc proposé de le publier au travers d’un reverse proxy apache qui au passage chiffrait le flux en SSL vers l’extérieur. La solution a permis de répondre au besoin rapidement sans toucher à la plateforme d’origine (qui n’était vraiment super stable…) avec l’avantage d’avoir peu d’effets de bord et de permettre un retour en arrière simple et rapide en cas de problème.

L’exemple du reverse proxy web

Comme pour le proxy, le reverse proxy web est l’application la fréquente du reverse proxy, voici ce qu’il se passe concrètement :

  1. Un client sur Internet souhaite consulter l’URL http://www.mon-entreprise.fr. La requête est redirigée par mon firewall vers mon reverse proxy web.
  2. Votre reverse proxy web analyse la requête. Le http-referer est-il correct ? Le User-agent est-il conforme à vos attente ? etc…
  3. Votre reverse proxy web envoie la requête vers votre serveur web interne.
  4. Votre serveur web interne renvoie le contenu de la page demandée.
  5. Votre reverse proxy web appliquer certains traitements sur la réponse http comme cacher ou modifier la valeur du paramètre « Server » qui indique le nom et la version de votre serveur web (je parle du logiciel et non matériel).
  6. Votre reverse proxy web renvoie le contenu de la page vers le client.

Conclusion

Vous savez maintenant dans les grandes lignes comment fonctionnent les proxy et reverse proxy et ce qu’il peuvent vous apporter en terme de sécurité. Les deux exemples présenté portent sur des flux http, mais ces principe peuvent très bien s’appliquer à d’autre protocoles comme SMTP, POP3, IMAP, FTP, RDP, etc…

A noter qu’aujourd’hui on parle beaucoup de « Firewall Applicatif », ceux ne sont ni plus ni moins que des reverse proxy avec un système de règles très poussé.

1 commentaire

  1. Christophe

    il est important d’adopter une politique de sécurité permettant de comprendre et d’identifier les dangers pour que l’employé en prenne lui-même conscience. Adopter les bons gestes et responsabiliser l’ensemble des acteurs afin de se protéger juridiquement devient le maître mot de la sécurité en entreprise.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


trois × 5 =

Vous pouvez utiliser les balises HTML suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>