# Proxy

Un proxy (litt. « mandataire ») 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.
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 du modèle OSI). 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 utilise le protocole réseau IP de niveau 3 et ne peut donc 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

Dans l'environnement plus particulier des réseaux, un serveur proxy, serveur mandataire ou mandataire, 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élération de la navigation : mémoire cache, compression de données ;
* historique (logs) : journalisation des requêtes ;
* la sécurité du réseau local ;
* le filtrage : restrictions de sites, blocage des publicités ou des contenus lourds (Java, Flash) ;
* l'anonymat ;
* la répartition de charge ;

### 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

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é.
* 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 : 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 :
* Proxys mis en œuvre sur un serveur web, par exemple PHProxy ou Glype.

### Pour SSH

* SSH Proxy : serveur proxy open source pour le protocole SSH.

### Pour IMAP

* ImapProxy : serveur proxy open source pour le protocole 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.

### Proxy résidentiel

Un proxy résidentiel est un intermédiaire qui utilise une adresse IP réelle fournie par un Fournisseur d'accès à Internet (FAI) avec des appareils physiques tels que les mobiles et les ordinateurs des utilisateurs finaux. Au lieu de se connecter directement à un serveur, les utilisateurs proxy résidentiels se connectent à la cible via des adresses IP résidentielles. La cible les identifie alors comme des internautes organiques. Il ne laisse aucun outil de suivi identifier la réaffectation de l'utilisateur. Tout proxy résidentiel peut envoyer n'importe quel nombre de demandes simultanées et les adresses IP sont directement liées à une région spécifique. Contrairement aux proxys résidentiels classiques, qui cachent la véritable adresse IP de l'utilisateur derrière une autre adresse IP, les proxys résidentiels tournants, également appelés proxys de backconnect, cachent la véritable adresse IP de l'utilisateur derrière un pool de proxys. Ces procurations basculent entre elles à chaque session ou à intervalles réguliers.

## 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.