Fondamentaux

Reverse proxy et load balancer

Un reverse proxy reçoit les requêtes à la place d'une application et les transmet au bon service interne. Un load balancer répartit le trafic entre plusieurs instances. Ces composants sont essentiels en production.


Reverse proxy

Internet

Reverse proxy

Application interne

Exemples :

  • Nginx
  • Apache
  • HAProxy
  • Traefik
  • Caddy

Un reverse proxy peut gérer TLS, les headers, les logs, la compression, le cache, les limites de requêtes et certaines règles de filtrage.


Load balancer

Un load balancer répartit les requêtes vers plusieurs serveurs.

Client

Load balancer
  ├── App 1
  ├── App 2
  └── App 3

Cela améliore la disponibilité, la performance et les déploiements progressifs.


TLS termination

TLS termination signifie que le proxy termine la connexion HTTPS, puis transmet la requête à l'application.

Client -- HTTPS --> Proxy -- HTTP ou HTTPS --> Application

Si le trafic interne est en HTTP, il faut comprendre et accepter ce risque selon le contexte réseau. Dans les environnements sensibles, on chiffre aussi le trafic interne.


Headers importants

HeaderRôle
HostDomaine demandé
X-Real-IPIP originale du client
X-Forwarded-ForChaîne d'IP traversées
X-Forwarded-ProtoProtocole original
ForwardedStandard plus général

Une application derrière proxy doit être configurée pour faire confiance uniquement aux proxies légitimes.


Risques fréquents

  • mauvaise gestion de l'IP client
  • headers X-Forwarded-* acceptés depuis Internet
  • redirections HTTPS incorrectes
  • limite de taille absente
  • timeout trop long
  • application interne exposée directement
  • logs insuffisants
  • configuration TLS trop faible

Bonnes pratiques

  • exposer seulement le proxy sur Internet
  • filtrer l'accès aux applications internes
  • définir des timeouts
  • limiter la taille des requêtes
  • journaliser les accès
  • configurer les headers de proxy proprement
  • activer HSTS lorsque HTTPS est stable
  • tester les redirections HTTP vers HTTPS

À retenir

Un reverse proxy est une frontière. Sa configuration influence la sécurité, les logs, les redirections, TLS et la façon dont l'application voit les clients.

Précédent
Wireshark et tcpdump