Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🔄 Proxy – Forward, Reverse, Caching & SĂ©curitĂ©

Guide complet IDEO-Lab sur les proxys, médiateurs essentiels du réseau (L7).

1.1

Définition (Proxy)

Médiateur (intermédiaire) de Couche 7.

Proxy Couche 7 Médiateur
1.2

vs. NAT & VPN

Proxy (L7) vs NAT (L3/L4) vs VPN (Tunnel L3/L4).

Proxy NAT VPN
1.3

Forward vs. Reverse

La distinction clé (Client vs Serveur).

Forward Proxy Reverse Proxy
2.1

Forward Proxy (Sortant)

Le proxy "au nom du client" (filtrage, anonymat).

Client-side Filtrage
2.2

Usage : Caching (Forward)

Mise en cache (Squid) pour économiser la bande passante.

Caching Squid
2.3

Usage : Filtrage (Forward)

ContrĂŽle d'accĂšs entreprise (blocage URL/Contenu).

Filtrage ContrĂŽle
3.1

Usage : Anonymat

Masquage de l'adresse IP du client.

Anonymat IP
3.2

Types : Transparent

Non-anonyme (X-Forwarded-For), souvent forcé (FAI).

Transparent X-Forwarded-For
3.3

Types : Anonymous & Elite

Anonyme (cache l'IP) vs Elite (cache l'IP & son existence).

Anonymous Elite
4.1

Reverse Proxy (Entrant)

Le proxy "au nom du serveur" (façade).

Server-side Nginx
4.2

Usage : Load Balancing

Répartition de charge (Round Robin, Least Conn).

Load Balancing HA
4.3

Usage : SSL Offloading

Terminaison SSL (HTTPS -> HTTP). (Performance).

SSL Offloading TLS
5.1

Usage : WAF

Web Application Firewall (Filtrage L7, anti-XSS/SQLi).

WAF Sécurité OWASP
5.2

Usage : Caching (Reverse)

Cache statique/dynamique (Varnish, Nginx).

Caching Varnish
5.3

Outil : Nginx

Le standard de facto pour le Reverse Proxy.

Nginx HAProxy
6.1

Protocoles : HTTP vs SOCKS

HTTP (L7, web) vs SOCKS (L4/L5, tout TCP/UDP).

HTTP Proxy SOCKS5
6.2

Outil : Squid

Le standard de facto pour le Forward Proxy (Cache/Filtre).

Squid Open Source
6.3

Cheat-sheet

Résumé Forward vs Reverse (Usages).

Checklist Résumé
1.1 Définition (Proxy)
Le Médiateur (Intermédiaire)

Un Proxy (Serveur mandataire) est un serveur (un appareil ou une application) qui agit comme intermĂ©diaire pour les requĂȘtes des clients (ex: votre navigateur) cherchant des ressources auprĂšs d'autres serveurs (ex: un site web).

Il opĂšre principalement Ă  la Couche 7 (Application) du modĂšle OSI. Il "comprend" le protocole (ex: HTTP) et peut analyser, modifier, et mettre en cache le trafic.

La Double Connexion

Un proxy brise la connexion directe. Il établit deux connexions distinctes :

  1. Connexion 1 : Le Client se connecte au Proxy.
  2. Connexion 2 : Le Proxy se connecte au Serveur (au nom du client).
[CLIENT] <---- (Connexion 1) ----> [PROXY] <---- (Connexion 2) ----> [SERVEUR WEB]
1.2 Distinction : Proxy vs. NAT vs. VPN

Ces trois technologies masquent l'IP, mais sont fondamentalement différentes.

CritĂšreProxyNAT (PAT)VPN
Niveau OSICouche 7 (Application)Couche 3/4 (Réseau/Transport)Couche 3/4 (Tunnel)
FonctionMédiateur (Intermédiaire)Traducteur (IP/Port)Tunnel (Encapsulation)
Conscience (Client)Conscient (Le client *doit* ĂȘtre configurĂ© pour utiliser le proxy).Transparent (Le client ne sait pas que le NAT existe).Conscient (Le client *doit* lancer un logiciel VPN).
ProtocoleSpécifique (HTTP, SOCKS)Agnostique (Tout trafic IP)Agnostique (Tout trafic IP)
ChiffrementNon (par défaut)NonOui (Objectif principal)
ExempleFiltrage web (Squid), NginxVotre Box Internet (Routeur)OpenVPN, WireGuard
1.3 La Distinction Clé : Forward vs. Reverse

C'est le concept le plus important. La technologie est la mĂȘme, mais le "propriĂ©taire" et l'objectif changent.

Forward Proxy (Proxy Sortant)

"Agit au nom du CLIENT."

Un proxy utilisé par un (ou plusieurs) client(s) pour accéder à Internet. Le serveur web externe ne voit que l'IP du proxy.

[CLIENT 1] ──â–ș [FORWARD PROXY] ──â–ș [Internet]
[CLIENT 2] ──â–ș                   (IP: 80.1.2.3)
(Réseau Interne)
  • Qui le gĂšre ? L'entreprise (client), ou l'utilisateur.
  • Objectifs :
    • Filtrage de contenu (ContrĂŽle parental/Entreprise).
    • Anonymat (Masquer l'IP du client).
    • Caching (Économiser la bande passante).
Reverse Proxy (Proxy Inverse)

"Agit au nom du SERVEUR."

Un proxy utilisĂ© par un (ou plusieurs) serveur(s) pour recevoir les requĂȘtes d'Internet. Le client ne sait pas qu'il parle Ă  un proxy ; il pense parler au serveur web final.

[Internet] ──â–ș [REVERSE PROXY] ──â–ș [Serveur Web 1]
               (IP: 80.1.2.3)  ──â–ș [Serveur Web 2]
                               (Réseau Interne)
  • Qui le gĂšre ? L'administrateur systĂšme (serveur).
  • Objectifs :
    • Load Balancing (RĂ©partition de charge).
    • SSL Offloading (Terminaison HTTPS).
    • SĂ©curitĂ© (WAF) (Filtrage des attaques).
    • Caching (Mise en cache du contenu du serveur).
2.1 Forward Proxy (Sortant)

Le Forward Proxy est l'intermédiaire cÎté client. Il est explicitement configuré dans le navigateur du client ou au niveau de l'OS.

Il intercepte toutes les requĂȘtes HTTP/HTTPS/FTP du client et dĂ©cide s'il faut les autoriser, les bloquer, ou les servir depuis son cache.

Usages principaux
  • Entreprise/École : C'est le cas d'usage le plus courant. Le proxy est la seule porte de sortie vers Internet. Il permet Ă  l'administrateur de filtrer (bloquer les rĂ©seaux sociaux, la pornographie) et de surveiller (logger) le trafic web des employĂ©s/Ă©tudiants.
  • Anonymat (Public) : (Voir 3.1) Un utilisateur se connecte Ă  un proxy public pour masquer son IP d'origine.
  • Contournement : UtilisĂ© pour contourner les gĂ©o-restrictions (ex: se connecter Ă  un proxy US pour voir un site US).
2.2 Usage : Caching (Forward Proxy)

Historiquement, c'était l'un des rÎles majeurs des Forward Proxies (ex: FAI, universités) : économiser la bande passante (lente et chÚre).

Logiciel type : Squid.

Exemple de Flux (Cache)
1. [User 1] demande "google.com/logo.png"
2. [Proxy Squid] ne l'a pas en cache.
3. [Proxy Squid] -> [Google] : "Donne-moi logo.png"
4. [Google] -> [Proxy Squid] : (Envoie logo.png)
5. [Proxy Squid] stocke "logo.png" dans son cache disque.
6. [Proxy Squid] -> [User 1] : (Envoie logo.png)

--- (Plus tard) ---

7. [User 2] demande "google.com/logo.png"
8. [Proxy Squid] l'a en cache.
9. [Proxy Squid] -> [User 2] : (Envoie logo.png depuis son cache)
   (Aucune connexion vers Internet n'est établie)

Note : C'est beaucoup moins efficace aujourd'hui à cause du HTTPS. Le trafic étant chiffré, le proxy ne peut pas "voir" ce qui est demandé (google.com/logo.png) ni le mettre en cache. (Sauf s'il effectue une interception SSL/MITM, ce qui est courant en entreprise).

2.3 Usage : Filtrage (Forward Proxy)

C'est le cas d'usage n°1 en entreprise. Le Forward Proxy (associé à un logiciel comme SquidGuard) agit comme un filtre de contenu.

Types de Filtrage
  • Filtrage URL : (Le plus simple) Bloquer l'accĂšs Ă  une liste de domaines (ex: facebook.com, youtube.com).
  • Filtrage par CatĂ©gorie : Utilisation de listes noires (Blacklists) (ex: bloquer les catĂ©gories "Adulte", "Jeux d'argent", "RĂ©seaux Sociaux").
  • Filtrage par Mots-clĂ©s : Analyser le contenu des pages (HTTP) Ă  la recherche de mots-clĂ©s interdits.
  • Filtrage d'Authentification : Exiger une authentification (ex: Active Directory) pour accĂ©der au web.
3.1 Usage : Anonymat (Masquage IP)

Un des usages grand public du Forward Proxy est de masquer l'adresse IP d'origine du client.

Le serveur web de destination (ex: Google) ne voit que l'adresse IP du Proxy dans ses logs. Il ne voit pas l'adresse IP réelle du client.

Cependant, le "niveau" d'anonymat dĂ©pend de la configuration du proxy et des en-tĂȘtes HTTP qu'il ajoute (ou supprime).

3.2 Types d'Anonymat : Transparent
Proxy Transparent

Un proxy "transparent" n'est pas anonyme. Il est souvent utilisé par les FAI ou les entreprises pour le caching ou le filtrage sans que le client n'ait à configurer quoi que ce soit (le trafic est "intercepté").

Il s'identifie lui-mĂȘme (ex: Via: 1.1 proxy.fai.com) et, surtout, il ajoute l'en-tĂȘte X-Forwarded-For (XFF) qui contient l'adresse IP rĂ©elle du client.

RequĂȘte reçue par le serveur (de la part du Proxy) :

GET / HTTP/1.1
Host: www.example.com
X-Forwarded-For: 1.2.3.4  (IP réelle du Client)
Via: 1.1 proxy.fai.com
3.3 Types d'Anonymat : Anonymous & Elite
Proxy Anonyme (Simple)

Objectif : Cacher l'IP du client.

Il ne transmet pas l'en-tĂȘte X-Forwarded-For (ou le remplace par sa propre IP).

Mais : Il s'identifie quand mĂȘme comme un proxy (ex: Via: ProxyServer).

Le serveur de destination sait que vous utilisez un proxy, mais il ne connaĂźt pas votre IP.

Proxy Elite (Haut Anonymat)

Objectif : Cacher l'IP du client ET cacher le fait qu'il utilise un proxy.

Il ne transmet aucun en-tĂȘte d'identification (ni XFF, ni Via).

Le serveur de destination pense qu'il reçoit une connexion directe de la part d'un client normal (qui est en fait le proxy).

4.1 Reverse Proxy (Entrant)

Le Reverse Proxy (Proxy Inverse) est l'inverse du Forward Proxy. Il est placé cÎté serveur et agit "au nom du serveur".

Les clients (Internet) ne se connectent jamais directement aux serveurs d'application (Back-end). Ils se connectent tous au Reverse Proxy, qui est la seule façade (Gateway) publique.

Usages Principaux (La pile "moderne")
  • Load Balancing (RĂ©partition de charge) : Distribuer le trafic sur plusieurs serveurs back-end.
  • SSL Offloading (Terminaison SSL) : GĂ©rer le HTTPS Ă  la place des serveurs back-end.
  • SĂ©curitĂ© (WAF) : Filtrer les attaques (SQLi, XSS) avant qu'elles n'atteignent l'application.
  • Caching Statique : Servir les images/CSS/JS (Varnish, Nginx).
  • Routing : (/api -> Serveur Node.js, /blog -> Serveur WordPress).

Outils : Nginx, HAProxy, Caddy, Varnish.

4.2 Usage : Load Balancing (Répartition de Charge)

C'est l'un des rÎles majeurs du Reverse Proxy (Nginx, HAProxy). Il permet la Haute Disponibilité (HA) et la Scalabilité Horizontale.

Il gĂšre un "pool" de serveurs back-end et distribue les requĂȘtes entrantes parmi eux.

Algorithmes de Répartition
  • Round Robin (Tourniquet) : (DĂ©faut) 1er clic -> Srv A, 2e clic -> Srv B, 3e clic -> Srv A... (Simple).
  • Least Connections (Moins de Connexions) : Envoie la requĂȘte au serveur ayant actuellement le moins de connexions actives (plus Ă©quitable).
  • IP Hash : Assigne un client (basĂ© sur son IP) au mĂȘme serveur (utile pour les sessions "sticky").
Health Checks

Le Load Balancer "ping" (teste) en permanence ses serveurs back-end. S'il détecte qu'un serveur (ex: Srv B) ne répond plus, il le retire automatiquement du pool et n'envoie du trafic qu'aux serveurs sains.

4.3 Usage : SSL Offloading (Terminaison)

SSL Offloading (ou Terminaison TLS) est une fonction du Reverse Proxy oĂč il gĂšre 100% des opĂ©rations de chiffrement/dĂ©chiffrement.

Le Flux

Le trafic est chiffré (HTTPS) sur Internet, mais en clair (HTTP) sur le LAN interne.

[CLIENT] <--- (Connexion 1 : HTTPS - Cryptée) ---> [REVERSE PROXY (Nginx)]
                                                        │ (Port 443)
                                                        │ (DĂ©chiffre)
                                                        │
         <--- (Connexion 2 : HTTP - Non cryptée) ---> [Serveur App 1]
                                                        │ (Port 80)
                                                        │
         <--- (Connexion 2 : HTTP - Non cryptée) ---> [Serveur App 2]
                                                          (Port 80)
Avantages
  • Performance : Le chiffrement est lourd (CPU). Les serveurs d'application (PHP, Node) sont "dĂ©chargĂ©s" (offloaded) de cette tĂąche.
  • Centralisation : Un seul endroit oĂč gĂ©rer (installer, renouveler) les certificats SSL, au lieu de 10 serveurs.
  • SimplicitĂ© : Les serveurs back-end n'ont mĂȘme pas besoin de savoir que le HTTPS existe.
5.1 Usage : WAF (Web Application Firewall)

Un WAF est un type spécifique de Reverse Proxy (Couche 7) axé sur la sécurité applicative.

Il se place devant le serveur web et inspecte le contenu des requĂȘtes HTTP (URLs, Headers, Body) Ă  la recherche de signatures d'attaques (ex: OWASP Top 10).

Exemple de rĂšgle WAF
Client envoie :
GET /login.php?user=' OR '1'='1'

1. [WAF] (ex: ModSecurity) reçoit la requĂȘte.
2. Il analyse le paramĂštre "user".
3. Il détecte la signature d'une Injection SQL.
4. Il bloque (Drop) la requĂȘte.
5. Il logge l'attaque et bannit l'IP.

(Le trafic n'atteint jamais le serveur applicatif vulnérable).

Il protĂšge contre : Injection SQL, XSS, SSRF, LFI/RFI...

5.2 Usage : Caching (Reverse Proxy)

Similaire au Caching "Forward", mais cÎté serveur. Le Reverse Proxy met en cache le contenu (statique ou dynamique) de ses serveurs back-end pour réduire la charge.

Exemple (Nginx / Varnish)
1. [User 1] demande "/blog/article-1"
2. [Proxy Cache] ne l'a pas.
3. [Proxy Cache] -> [Serveur App (PHP)] : "GénÚre-moi /blog/article-1"
4. [Serveur App] (génÚre la page) -> [Proxy Cache]
5. [Proxy Cache] stocke le HTML de la page (ex: pour 60 sec).
6. [Proxy Cache] -> [User 1] (Envoie la page)

--- (10 sec plus tard) ---

7. [User 2] demande "/blog/article-1"
8. [Proxy Cache] l'a en cache.
9. [Proxy Cache] -> [User 2] (Envoie la page depuis son cache)
   (Le serveur PHP n'est jamais contacté).

Outils : Varnish (spécialisé), Nginx (trÚs bon).

5.3 Outil : Nginx

Nginx (prononcé "Engine-X") est le logiciel open-source leader du marché pour le Reverse Proxy. (Il est aussi un excellent serveur web statique).

Il est réputé pour sa haute performance (architecture "event-driven", non bloquante) et sa faible consommation mémoire.

Configuration (Exemple de Reverse Proxy)
# /etc/nginx/sites-available/default

# Définir le pool de serveurs back-end
upstream my_app {
    server 10.0.0.1:8080;  # App 1
    server 10.0.0.2:8080;  # App 2
}

server {
    listen 80;
    server_name www.ideolab.com;

    # Caching statique
    location ~* \.(jpg|css|js)$ {
        root /var/www/static;
        expires 30d;
    }

    # Reverse Proxy
    location / {
        proxy_pass http://my_app; # Envoie le trafic au pool
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
6.1 Protocoles : HTTP vs. SOCKS

La plupart des "Forward Proxies" utilisent l'un de ces two protocoles.

HTTP(S) Proxy (L7)

C'est le plus courant. Il opĂšre Ă  la Couche 7 (Application).

  • SpĂ©cialisĂ© : Il ne comprend que le trafic HTTP, HTTPS (via CONNECT) et parfois FTP.
  • Intelligent (L7) : Il peut lire et comprendre les requĂȘtes HTTP (headers, URL). C'est ce qui lui permet de faire du caching ou du filtrage d'URL.
SOCKS Proxy (L4/L5)

(Surtout SOCKS5, qui gĂšre l'authentification et l'UDP).

Il opĂšre plus bas, aux Couches 4/5 (Transport/Session).

  • Agnostique : Il ne comprend pas le HTTP. Il se contente de relayer n'importe quel trafic TCP ou UDP.
  • Usage : Permet de "proxyfier" des applications non-web (SSH, SMTP, BitTorrent, jeux en ligne).
6.2 Outil : Squid

Squid est le logiciel open-source historique et le plus connu pour le Forward Proxy (HTTP/HTTPS).

Il est extrĂȘmement robuste et configurable (via son fichier squid.conf).

Fonctions Principales
  • Proxy Caching : (Son rĂŽle historique) Mettre en cache le contenu web pour les FAI/Entreprises.
  • Filtrage : Agit comme proxy de sortie.
    • SquidGuard / DansGuardian : Des plugins populaires pour Squid qui gĂšrent le filtrage d'URL (listes noires) et de contenu.
  • Authentification : Peut s'intĂ©grer Ă  LDAP/Active Directory pour authentifier les utilisateurs avant de leur donner accĂšs au web.
6.3 Cheat-sheet : Proxy
TypePosition"Agit au nom du..."Usages ClésOutils
Forward Proxy (Sortant)CÎté Client (Dans le LAN)ClientFiltrage de contenu, Caching (Bande passante), Anonymat (Masquage IP).Squid, Proxys Web
Reverse Proxy (Entrant)CÎté Serveur (Façade Internet)ServeurLoad Balancing, SSL Offloading, Sécurité (WAF), Caching (Serveur).Nginx, HAProxy, Varnish