Serveurs proxy et tunnels

Grégory Hénique — 01/09/2021

Lorsqu’on navigue sur les différents réseaux d’internet, les serveurs proxy et les tunnels HTTP facilitent l’accès au contenu du World Wide Web.

Voici quelques notions de base sur les proxys et quelques options de configuration

Il existe 2 types de proxys

Proxys directs

Un forward proxy, ou passerelle, ou simplement « proxy », fournit des services de proxy à un client ou à un groupe de clients.

Il existe probablement des centaines de milliers de forward proxies ouverts sur internet. Ils stockent et transmettent des services internet (comme le DNS ou les pages Web) afin de réduire et de contrôler la bande passante utilisée par le groupe.

Proxy et tunnel

Les forward proxies peuvent également être des proxies anonymes et permettent aux utilisateurs de cacher leur adresse IP lorsqu’ils naviguent sur le Web ou utilisent d’autres services Internet.

TOR (The Onion Router), achemine le trafic internet à travers plusieurs proxies pour assurer l’anonymat.

Proxys inverses

Comme son nom l’indique, un proxy inverse fait l’inverse de ce que fait un proxy direct : Un proxy direct agit au nom des clients (ou des hôtes demandeurs).

➽ Les reverse proxies ont plusieurs cas d’utilisation

Comment transférer les informations du client à travers des proxies

Les serveurs mandataires peuvent faire en sorte que les demandes semblent provenir de l’adresse IP du serveur mandataire. Cela peut être utile si un proxy est utilisé pour assurer l’anonymat du client, mais dans d’autres cas, les informations de la demande originale sont perdues.

L’adresse IP du client d’origine est souvent utilisée pour :

Le tunneling HTTP

Le tunneling transmet les données et les informations de protocole du réseau privé à travers le réseau public en encapsulant les données.

Le tunneling HTTP consiste à utiliser un protocole de niveau supérieur (HTTP) pour transporter un protocole de niveau inférieur (TCP).

➽ Le protocole HTTP spécifie une méthode de demande appelée CONNECT

Elle lance une communication bidirectionnelle avec la ressource demandée et peut être utilisée pour ouvrir un tunnel.

C’est ainsi qu’un client situé derrière un proxy HTTP peut accéder à des sites Web utilisant le protocole SSL (HTTPS, port 443).

HTTP Proxy

Notez toutefois que tous les serveurs proxy ne prennent pas en charge la méthode CONNECT ou la limitent au port 443 uniquement.

Auto-configuration du proxy (PAC)

Un fichier PAC (Proxy Auto-Configuration) est une fonction JavaScript qui détermine si les requêtes du navigateur Web (HTTP, HTTPS et FTP) vont directement à leur destination ou sont transmises à un serveur proxy Web.

Le fichier d’autoconfiguration doit être enregistré dans un fichier portant l’extension .pac (proxy.pac) et le type MIME défini à :

application/x-ns-proxy-autoconfig

Le fichier consiste en une fonction appelée FindProxyForURL. L’exemple ci-dessous fonctionnera dans un environnement où le serveur DNS interne est configuré de manière à ne pouvoir résoudre que les noms d’hôtes internes, et où l’objectif est d’utiliser un proxy uniquement pour les hôtes qui ne sont pas résolubles :

function FindProxyForURL(url, host) {
if (isResolvable(host))
return « DIRECT »;
else
return « PROXY proxy.mydomain.com:8080 »;
}