OpenVPN : Partager le port 80 avec port-share

I. Présentation

Il arrive souvent que seuls les ports comme 80 et 443 soient autorisés, pour des raisons de sécurité (filtrage), et ainsi cela devient rapidement un casse-tête pour lancer notre instance OpenVPN qui nous permettrait de nous libérer de ces restrictions, pour tout simplement relever ses mails avec son client mail préféré.

Mais Il est possible que vous ayez déjà un serveur web qui fonctionne sur le port 80 ou 443, sur le même serveur. Vous avez de la chance, figurez-vous qu’OpenVPN possède l’option « port-share ». Cette option va vous permettre de partager un port avec une autre application comme Apache ou Ngnix.

II. Explication

Il n’est pas possible que deux applications utilisent le même port car cela mènerait à un conflit, en effet seule l’application s’exécute en premier pourrait l’utiliser.

Ce que dit la documentation d’OpenVPN à ce propos :

--port-share host port :

"When run in TCP server mode, share the OpenVPN port with another application, such as an HTTPS server. If OpenVPN senses a connection to its port which is using a non-OpenVPN protocol, it will proxy the connection to the server at host:port. Currently only designed to work with HTTP/HTTPS, though it would be theoretically possible to extend to other protocols such as ssh."

Ce qui veut dire que lorsque le serveur est exécuté en mode TCP, il est possible de partager le port d’OpenVPN avec une autre application qui s’appuierai sur du HTTPS. Si OpenVPN détecte une connexion sur son port que ne correspond pas à son protocole, OpenVPN agira en tant que proxy pour effectuer la connexion au serveur de la façon « Hôte : port ». Actuellement, il est uniquement conçu pour fonctionner avec HTTP et HTTPS, même s’il est théoriquement possible de l’étendre à d’autres protocoles comme le SSH.

III. Configurer le port-share

Pour mettre en pratique la notion de port-share, voici ce que nous allons faire.

On va prendre l’exemple d’un serveur web qui est sur le port 80 à l’origine, et on va le passer sur le port 8080. Malgré tout, il restera accessible sur le port 80 grâce à OpenVPN qui fera office de relais.

Il faut commencer par modifier le port d’écoute de notre serveur web sur un port différent. Pour Apache, il faut modifier le fichier « ports.conf » dans « /etc/apache2/ ».

Par la suite il faut modifier le listen et le NameVirtualHost pour qu’ils correspondent à votre « site », comme ceci :

openvpn-port-share-1

- Maintenant on peut modifier le fichier de configuration d’OpenVPN qui se trouve dans « /etc/openvn/server.conf » :

openvpn-port-share-2

On modifie donc le protocole en TCP, le port en 80 et on ajoute la ligne « port-share 127.0.0.1 :8080 »

Maintenant il vous suffit d’aller sur votre site web comme auparavant et vous pouvez désormais aussi utiliser votre VPN sur le port 80. Sympa, non ?

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Jérémy Truche

Passionné par les nouvelles technologies, par le bidouillage et geek à mes heures perdues, je suis ici pour vous faire partager mes connaissances, mes découvertes tout en apprenant de nouvelles choses.

    jeremy has 9 posts and counting.See all posts by jeremy

    Une pensée sur “OpenVPN : Partager le port 80 avec port-share

    • Exemple encore plus pertinent, mise en place du VPN sur le port 443 🙂
      Le trafic sécurisé d’OpenVPN aura un look moins suspect sur ce port.

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

     

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.