Logo du site un pigeon rissa assie sur un caillou pianontant sur un ordinateur dans le noirLogo du site un pigeon rissa assie sur un caillou pianontant sur un ordinateurLibérer les connaissances

Passage de OpenVPN à un tunnel SSH (ethernet)

Categories:
  • VPN
  • OpenVPN
  • Serveur Web
  • Optimisation
  • SSH
Tags:

Dans cet article je vais vous parler de la mise en place d'un VPN pour votre serveur avec simplement ssh.

Préambule:

J'ai constaté que beaucoup d'entre vous, ne savent pas ce qu'est un VPN ou confonde avec un certain SudVPN qui n'en est pas un. Avant de commencer, je tiens à préciser quelques petites choses: VPN signifie Virtual Private Network. Cela peut paraitre anodin, mais SudVPN n'est PAS UN VPN au sens initial du terme.
Un VPN a pour but de créer un réseau privé, c'est-à-dire un réseau dans le réseau. Normalement en ce connectant à un VPN on accède à tout un réseau qui n'est potentiellement qu'accessible uniquement par ce VPN.
Il permet de protéger l'accès à ce réseau privé en cryptant la communication... OU PAS (Cela dépend du protocole et généralement de son ancienneté)

Coup de gueule:

SudVPN N'EST PAS UN VPN: c'est juste un service qui "cache" votre IP. Il remplace seulement votre emplacement géographique. Mais en aucun cas il vous fait accéder à un autre réseau (C'est toujours internet.) et en aucun cas il vaut protection de votre connexion, car il ne remplace pas les sécurités que les services internet mettent en place pour protéger la connexion TLS qui circule entre vous.
Son seul atout est de vous anonymiser sur internet SI ET SEULEMENT SI, vous n'êtes pas dans un pays possédant des certificats racine en leur nom et si vous ne laissez aucune autre trace numérique de l'autre. Pour le 1ᵉʳ, comme pour le 2ᵉ cas: vous pouvez utiliser Tor qui est tout aussi efficace et fait pour vous anonymiser.

BREF

Projet et raison:

J'ai choisi de changer de OpenVPN à un simple tunnel SSH, car OpenVPN est extrêmement lourd pour seulement se connecter à des services privés. Je ne l'utilise pas pour changer d'adresse IP et sécuriser mes connexions vers l'extérieur.

De plus, cela fait un programme en moins à gérer, et les clés de SSH sont extrêmement simples.
Contrairement à OpenVPN qui a l'inconvénient de devoir se munir d’easyRSA pour gérer une PKI entière même lorsqu'il n'y a que très peu d'utilisateur.

L'inconvénient que je connais avant de commencer, ça sera de gérer les tunnels SSH sur mon téléphone. Mais je m'en occuperai plus tard.

Fonctionnement et mise en pratique:

Les tunnels SSH sont déjà inclus dans sshd, il n'y a rien à installer. Vous pouvez même utiliser votre configuration actuelle.
Il est quand même conseillé de se munir d'une paire de clé privée/public.

auto tun0
iface tun0 inet manual
	pre-up ip tuntap add tun0 mode tun user MonUser
	pre-up ip link set tun0 up
	pre-up ip addr add 10.0.0.1/32 peer 10.0.0.10 dev tun0
	post-down ip link del dev tun0

Ce fichier permettra de créer une interface tun avec les droits pour MonUser, il attribuera une adresse ip (ici, 10.0.0.1) et indique avec quelle adresse ip il va être appareillé (ici, 10.0.0.10)

Et pour la partie serveur, c'est terminé.

Ensuite il faut configurer le client, si vous avez un linux (Debian/Ubuntu), ce sera d'une simplicité sans nom:

Et normalement vous avez terminé. Votre serveur fonctionne avec un tunnel SSH et vous avec accès à tous vos services privés/personnels.

P.S.: Je mettrai à jour l'article lorsque j'aurais configuré le tunnel SSH sur Windows et Android.

Ou pas:

Update du 27 Avril 2020:

Après avoir testé Wireguard, je déconseille totalement le tunnel SSH. Wireguard est un VPN avec des applications pour tous les OS sans avoir besoin d’adapter des configurations pour chaque client.
(Voir article)


Licence Creative Commons
Passage de OpenVPN à un tunnel SSH (ethernet) de Clément Cachinho est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International.
Fondé(e) sur une œuvre à https://blog.noknow.ovh/article/Passage-de-OpenVPN-en-Tunnel-SSH.html.