Quantcast
Viewing all articles
Browse latest Browse all 515

OpenVPN sur le port 443 partagé avec un serveur web

Par défaut, un serveur OpenVPN écoute sur le port UDP 1194 et un serveur web sur les port TCP 80 et 443.
Le port UDP 1194 peut être bloqué par certains proxy entreprise, d’école ou autre réseau privé ce qui peut empêcher l’accès à son serveur VPN. Pour outre passer cette restriction, le serveur VPN peut être configurer sur le port TCP 443. Mais, si le serveur héberge aussi un serveur web écoutant aussi sur le port 443 cela ne va pas être possible en l’état car un seul port réservé pour un service.

Sur le blog, il a déjà été vue comment partager le port 443 entre SSH et un serveur web avec SSLH. Ici sera utilisé une option native à OpenVPN : port-share.

De plus, le fait de passer sur le protocole TCP cela apporte une meilleur stabilité de la connexion pour les faibles débits et évite l’erreurs du type :

Error: « Replay-window backtrack occurred« 

ensuite cette erreur créée les erreurs suivantes :
read UDP [EHOSTUNREACH]: No route to host (code=113)
write UDP []: Network is unreachable (code=101)
État du réseau : not connected

Dans le cas présent, c’est OpenVPN qui fait office de multiplexeur et suivant si la requête est une demande d’accès au VPN sur le port 443 ou au serveur web sur le port 1443 (ou autre).

Partager le port 443 entre OpenVPN et un serveur web

  • Éditer le fichier de configuration du serveur, exemple un OpenVPN sous Yunohost :
    nano /etc/openvpn/yunohost.conf
    • Modifier le protocole UDP part TCP :
    proto tcp
  • Indiquer le port :
port 443
  • Ajouter la directive port-share :
  • port-share 127.0.0.1 1443
  • Éditer le fichier de configuration du client VPN (toujours dans le cas de Yunohost) :
    nano var/www/openvpn/domaine.tld.ovpn 
    • Changer le port d’écoute :
    remote domaine.tld 443
  • Changer le port d’écoute pour le serveur web :
    • Nginx :
    sed -i -e "s/443/1443/g" /etc/nginx/conf.d/*.conf
  • Apache2 :
  • sed -i -e "s/443/1443/g" /etc/apache2/ports.conf
  • Relancer les services :
    • Serveur web Nginx :
    systemctl restart nginx
  • Serveur web Apache2 :
  • systemctl restart apache2
  • Serveur OpenVPN :
  • systemctl restart openvpn
  • ou pour Yunohost :
  • systemctl restart openvpn@yunohost.service

    Test de connexion du serveur OpenVPN et du serveur web sur le port 443

    • Test du serveur OpenVPN :
    sudo openvpn domaine.tld.ovpn

    Image may be NSFW.
    Clik here to view.
    openvpn

  • Test du serveur web, aller sur l’url du site.

  • Viewing all articles
    Browse latest Browse all 515

    Trending Articles