Proxy

Un proxy est un composant logiciel informatique qui joue le rôle d'intermédiaire en se plaçant entre deux hôtes pour faciliter ou surveiller leurs échanges.

Pour les articles homonymes, voir Proxy (homonymie).

Représentation schématique d'un serveur proxy où l'ordinateur placé au milieu agit comme intermédiaire entre deux autres ordinateurs.

Dans le cadre plus précis des réseaux informatiques, un proxy est alors un programme servant d'intermédiaire pour accéder à un autre réseau, généralement Internet. Par extension, on appelle aussi « proxy » un matériel comme un serveur mis en place pour assurer le fonctionnement de tels services.

Attention : le proxy se situe au niveau de la couche application (HTTP, FTP, SSH, etc. de niveau 7). Une erreur commune est d'utiliser la commande traceroute (ou tracert sous Windows) pour tenter de voir le proxy. Il n'apparaît pas, car cette commande, qui utilise le protocole réseau IP de niveau 3, ne peut pas connaître le proxy.

Patron de conception en programmation

Le concept de « proxy » (patron de conception) peut être utilisé dans n'importe quel programme informatique.

Si deux personnes qui ne parlent pas la même langue veulent communiquer, elles ont besoin d'un interprète. En informatique, deux entités utilisant des technologies différentes peuvent communiquer entre elles grâce à un intermédiaire qui interprète leurs échanges.

Proxy réseau

Principe du proxy réseau.

Dans l'environnement plus particulier des réseaux, un serveur proxy, serveur mandataire[1] ou mandataire[1], est une fonction informatique client-serveur qui a pour fonction de relayer des requêtes entre une fonction cliente et une fonction serveur (couches 5 à 7 du modèle OSI).

Les serveurs proxys sont notamment utilisés pour assurer les fonctions suivantes :

Accès Internet

Les fournisseurs d'accès à Internet (FAI) peuvent proposer des proxys pour la connexion de leurs abonnés. Il faut pour cela que l'abonné paramètre correctement son système (via un logiciel d'installation fourni par le FAI).

Mais il est également possible que le fournisseur d'accès utilise un proxy transparent (sans configuration par l'utilisateur). Ce proxy permet par exemple au fournisseur d'accès de connaître les habitudes de navigation de ses abonnés ou de réduire le nombre d'accès effectifs aux sites distants.

Dans le cadre de la sécurité

L'utilité des serveurs proxys est importante, notamment dans le cadre de la sécurisation des systèmes d'information.

Par exemple, il est presque systématique en entreprise ou dans les établissements scolaires que l'accès Internet se fasse à travers un serveur proxy. L'internaute ne voit pas la différence, sauf quand il tente de naviguer sur un site interdit, auquel cas il pourra recevoir un message d'erreur : un tel proxy est appelé proxy filtrant. Il se peut aussi qu'une boite de dialogue s'ouvre et demande un identifiant et un mot de passe avant de pouvoir surfer sur Internet.

À l'inverse, un proxy peut aussi servir à contourner les filtrages. Supposons le cas d'un pays qui bloque l'accès à certains sites considérés comme « subversifs », mais qui effectue ce filtrage uniquement en se basant sur l'adresse du site que l'on souhaite visiter. Dans ce cas, en utilisant un proxy comme intermédiaire (situé dans un autre pays donc non affecté par le filtrage), on peut s'affranchir du filtrage (sauf bien sûr si l'adresse du proxy est elle-même interdite).

Le principe fonctionne également dans l'autre sens. Supposons qu'un site web n'accepte que les internautes d'un certain pays (exemple concret : un site de campagne présidentielle américain qui n'accepte que les connexions venant des États-Unis). Dans ce cas, en passant par un proxy situé aux États-Unis, un internaute français pourra visiter le site.

Un troisième rôle du proxy est de compliquer la remontée vers l'internaute (anonymisation). Dans l'exemple précédent, on a trompé le site américain qui n'était pas capable de remonter jusqu'à l'internaute à travers le proxy. Certaines techniques avancées permettent de remonter à travers le proxy. Dans ce cas, un internaute pourra utiliser de nombreux proxys en chaîne comme le réseau Tor et stopper la connexion avant que ceux qui le traquent ne soient remontés jusqu'à lui.

Proxy web

Exemple de proxy web.

Normalement, l'utilisation d'un proxy complet se fait en configurant son navigateur ou son ordinateur. Mais il existe une catégorie de proxy beaucoup plus simple d'utilisation : les proxys web. Il s'agit d'un simple site web dont la page offre un champ permettant de taper l'adresse du site que l'on souhaite visiter. Une fois saisie, la page demandée est affichée à l'intérieur de la première page. Mais l'adresse qui apparaît dans la barre d'adresse est toujours celle du proxy.

Ce type de proxy est moins puissant qu'un proxy normal. En effet, les pages utilisant des techniques avancées pour se mettre à jour elles-mêmes (AJAX) ne « savent » pas qu'elles passent par un proxy, et donc tentent d'atteindre leurs serveurs directement. Si ce serveur était interdit, alors la requête échoue. Par exemple, le proxy web Glype ne permet pas de consulter des sites comme Facebook ou YouTube. La plupart des proxys web ne permettent pas non plus d'utiliser des sites sécurisés utilisant HTTPS, comme les banques par exemple.

De nombreux proxys web sont disponibles gratuitement sur Internet, principalement pour permettre à des internautes de contourner les protections de leurs lieux de surf (entreprise, école, comme expliqué précédemment). La plupart se financent en affichant de la publicité en plus de la page demandée. Mais certains peuvent aussi essayer de capturer les mots de passe ou toute autre information sensible (numéro de carte bancaire) ou même rediriger l'internaute vers un faux site. Il faut donc être extrêmement prudent avant d'utiliser un proxy gratuit sur Internet.

Le principe des proxys web est utilisé par les bibliothèques universitaires pour permettre à leurs usagers d'accéder à des ressources en ligne pour lesquelles elles disposent d'un abonnement. L'adresse IP du serveur proxy est déclarée auprès du prestataire qui donne accès au contenu aux usagers passant à travers le proxy et se présentant donc avec l'adresse IP autorisée. Le système le plus utilisé pour cet usage est EZproxy.

Quelques serveurs proxy logiciels

Pour HTTP
  • Squid : serveur open source le plus utilisé[Quand ?].
  • Nginx est un serveur et proxy HTTP libre très rapide et très utilisé.
  • Gatejs : serveur et proxy HTTP open source avec comme objectif la performance, la simplification et la factorisation des codes informatique.
  • Privoxy : serveur open source dont l'objectif est la protection des informations personnelles des utilisateurs. Le nom « Privoxy » vient de la contraction de « privacy » et « proxy ».
  • FreeProxy (en) : serveur permettant une navigation anonyme et sécurisée sur le Web.
  • JanusVM : serveur permettant une navigation anonyme et sécurisée sur le Web.
  • JonDonym (auparavant nommé JAP pour Java Anon Proxy) : logiciel populaire et open source pour connecter aux chaînes des anonymiseurs.
  • Ghost navigator : navigateur web pré-configuré pour se connecter à plusieurs serveurs proxys répartis dans plusieurs pays.
  • TcpCatcher : serveur proxy TCP et HTTP gratuit à but éducatif.
  • Microsoft Forefront Threat Management Gateway (en) : logiciel proposant un proxy et un pare-feu.
  • Varnish : serveur proxy simple et efficace.
  • Proxy Olfeo : logiciel proposant un proxy en SaaS.

Programmés en PHP :

Pour SSH
Pour IMAP
Pour SMTP
  • SMAP : serveur proxy pour le protocole SMTP.
Multi-protocoles
  • DeleGate (networking) (en) : serveur proxy multiplateforme multi-usage mandaté au niveau applicatif ou au niveau session.


Proxychains

Proxychains est un outil open-source pour le system Linux. Il permet de lancer un programme à travers un serveur proxy ou encore de chainer les proxys afin de cacher son identité.

Un attaquant peut utiliser une chaine de proxy pour anonymiser sa connexion, en se connectant à travers un proxy qui lui se connecte à un autre proxy et ainsi de suite… Il est donc difficile de remonter jusqu’à l’attaquant. Il faudrait des accords juridiques pour enquêter dans un autre pays, il serait encore plus difficile de le remonter jusqu’à l’attaquant, s’il utilise un proxy venant d’un autre pays.


Proxychains peut être utilisé pour contourner les pares-feux pour accéder à internet ou lancer des applications tels que Telnet, SSH, wget ou Nmap. Il permet également d’accéder à des réseaux interne en utilisant la méthode du « pivot ». L’attaquant compromet un serveur web puis l’utilise comme proxy pour atteindre le réseau interne.

Historique

Historiquement, la première référence au concept de proxy remonte à Marc Shapiro, à l'International Conference on Distributed Computing Systems (en) (ICDCS) de 1986[4].

Notes et références

  1. « serveur mandataire », Le Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le )
  2. (en) PHProxy - SourceForge.net
  3. (en) Glype - Site officiel
  4. (en) Marc Shapiro, Structure and Encapsulation in Distributed Systems: the Proxy Principle, ICDCS, Cambridge, États-Unis, 1986, pp. 198-204 [lire en ligne] [PDF]

Annexes

Articles connexes

  • Portail des réseaux informatiques
  • Portail de la sécurité informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.