VpnHood!

Placer votre serveur derrière un reverse proxy

Un réseau bloquant l'adresse IP de votre serveur ne peut pas intercepter les applications qui ne s'y connectent pas directement. Derrière un reverse proxy comme Cloudflare, les applications se connectent au proxy, qui relaie ensuite la connexion vers votre serveur.

Fonctionnement

Votre nom de domaine pointe vers le proxy et non vers votre serveur. Les applications résolvent le domaine et se connectent au proxy, qui déchiffre la connexion — comme pour n'importe quel site web — puis la rechiffre vers votre serveur. Le trafic transite via WebSocket, pris en charge par Cloudflare. Tout autre reverse proxy convient également s'il gère WebSocket et communique avec votre serveur via TLS.

Les applications joignent votre serveur via le proxy Les applications de vos utilisateurs résolvent votre domaine et se connectent au reverse proxy, comme Cloudflare, qui relaie la connexion vers votre serveur. L'accès direct à l'adresse IP de votre serveur étant bloqué, les applications contournent la restriction. Reverse proxy comme Cloudflare Votre domaine app.example.com 203.0.113.10 bloqué Vos utilisateurs VpnHood! CLIENT Votre serveur VpnHood! SERVER Le proxy permet aux applications de contourner le blocage
Les applications joignent votre serveur via le proxy Les applications de vos utilisateurs résolvent votre domaine et se connectent au reverse proxy, comme Cloudflare, qui relaie la connexion vers votre serveur. L'accès direct à l'adresse IP de votre serveur étant bloqué, les applications contournent la restriction. Reverse proxy comme Cloudflare Votre domaine app.example.com 203.0.113.10 bloqué Vos utilisateurs VpnHood! CLIENT Votre serveur VpnHood! SERVER Le proxy permet aux applications de contourner le blocage

Les applications ne résolvent le domaine que si leur clé l'inclut en tant que nom de confiance, ce qui nécessite un certificat délivré par une autorité de certification.

Une clé peut également contenir l'adresse directe de votre serveur. Les applications peuvent alors utiliser les deux voies : le proxy assure la continuité si l'adresse est bloquée, mais toute personne possédant la clé peut voir l'adresse. Une clé sans adresse directe force toutes les applications à passer par le proxy.

Points à garder à l'esprit

  • Blocage : un réseau peut toujours bloquer votre domaine ou les adresses du proxy inverse. Cependant, bloquer les adresses de Cloudflare a un coût élevé, car elles hébergent de nombreux autres sites.
  • DNS : les applications résolvent votre domaine via le DNS du réseau avant de se connecter. Si le réseau bloque ou altère la réponse, elles basculent sur les adresses de leur clé : une clé contenant uniquement le domaine ne pourra alors pas se connecter.
  • Confidentialité : le proxy inverse voit l'activité du tunnel au même titre que votre serveur : destinations de connexion et données non chiffrées. Le trafic HTTPS reste quant à lui totalement chiffré. Choisissez un proxy inverse de confiance.
  • TCP uniquement : votre serveur ne propose pas ses ports UDP et QUIC aux applications passant par le proxy.
  • Conditions d'utilisation : vérifiez que votre fournisseur autorise le trafic VPN. Un usage restreint (environ 50 utilisateurs ou moins) ne pose généralement aucun problème.

Avant de commencer

  • Un domaine ou sous-domaine avec un certificat émis par une autorité de certification sur votre serveur : le guide Utiliser un nom de domaine et un certificat de confiance vous montre la marche à suivre. Effectuez cette étape en premier, tant que l'enregistrement DNS pointe directement vers le serveur.
  • Un seul serveur associé au domaine. Si un enregistrement pointe vers deux serveurs, les connexions d'une même session risquent d'être réparties entre eux, ce qui interrompt la session.
  • Le serveur doit écouter sur le port TCP 443, ou sur un autre port relayé par le proxy. Cloudflare ne relaie le trafic HTTPS que sur 443, 2053, 2083, 2087, 2096, 8443.

Activer le proxy

  1. Dans Cloudflare, ouvrez les enregistrements DNS de votre domaine et passez celui qui pointe vers votre serveur sur Proxied (faites de même pour son enregistrement AAAA le cas échéant).
  2. Dans SSL/TLS, définissez le mode de chiffrement sur Full (strict). Cloudflare se connectera ainsi à votre serveur via TLS et vérifiera son certificat. Le mode Flexible utiliserait du HTTP non chiffré, ce que le serveur refuse.

VpnHood! MANAGER renouvelle ses certificats en HTTP standard sur le port TCP 80 via le domaine, et Cloudflare relaie cette requête à votre serveur. Sur un serveur géré, désactivez Always Use HTTPS : cela redirigerait la requête vers HTTPS et ferait échouer le renouvellement.

Sur un serveur géré

Vérifiez le certificat du domaine pour la ferme : sous Signature, il doit indiquer CA Signed, et sa Visibility doit être PublicInToken. Les clés incluront alors le domaine, que les applications pourront résoudre.

Pour faire passer toutes les applications par le proxy, retirez les adresses propres au serveur des clés dans Access Points :

  1. Désactivez Automatic Configuration.
  2. Modifiez chaque adresse et réglez son Mode sur Private.
  3. Laissez Listen sur Yes afin que le serveur continue d'écouter et permette au proxy de s'y connecter.
Points d'accès d'un serveur dans VpnHood! MANAGER configurés pour un proxy inverse : Configuration automatique désactivée (1), chaque adresse en Mode Privé (2) et Écoute Oui (3)
Les deux adresses du serveur sont retirées des clés, et le serveur reste à leur écoute.

MANAGER n'autorise les clés sans adresse que lorsque le certificat indique CA Signed. La section Définir les adresses IP de votre serveur détaille chaque paramètre.

En conservant PublicInToken, les adresses restent dans les clés, et les applications utilisent indifféremment celles-ci ou le proxy. Le proxy permet ainsi à vos utilisateurs de rester connectés si une adresse est bloquée.

Les applications disposant d'une ancienne clé reçoivent automatiquement la nouvelle lors de leur prochaine connexion, car Push token to clients est activé par défaut.

Le domaine redirige vers un serveur unique. Ainsi, au sein d'un cluster de plusieurs serveurs, chaque application passant par le proxy atteint toujours le même serveur.

Sur un serveur autonome

Vérifiez que le serveur utilise bien le certificat du domaine, avec IsValidHostName défini sur true : le guide Utiliser un nom de domaine et un certificat approuvé vous montre comment faire. Les clés créées ensuite intègrent le domaine, que les applications interrogent directement.

Un serveur autonome inclut systématiquement ses propres adresses dans ses clés, aux côtés du domaine ; les applications utilisent donc indifféremment l'un ou l'autre. Le proxy assure la continuité de connexion de vos utilisateurs si une adresse est bloquée, mais toute personne possédant une clé peut voir l'adresse.

Étapes suivantes