# VPN par SSH

**URL:** <https://www.debian-fr.org/t/vpn-par-ssh/83859>\
**Category:** Support Debian\
**Created:** [Janvier 29, 2021, 9:02 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859 "2021-01-29T09:02:05Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Janvier 29, 2021, 9:02 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/1 "2021-01-29T09:02:05Z")

</div>

Bonjour,

J’avais configuré un VPN avec openVPN, mais c’est assez lent à cause du chiffrement.

> [@OpenVPN est lent](https://www.debian-fr.org/t/openvpn-est-lent/82557):
>
> Bonjour, J’ai actuellement plusieurs liaisons OpenVPN actives entre mes machines. Mais, je me suis rendu compte d’un truc un peu gênant, bien qu’ayant des connexion assez rapide, la liaison par le VPN ne dépasse pas 30Mbps : ┌ (gilles@Stardust + 0) (26/07/20 - 11:55:25) (0.78 - 0%) (~) └% iperf3 -c nut.almtesh.net Connecting to host nut.almtesh.net, port 5201 [5] local 2001:bc8:3335:1::2 port 51822 connected to 2001:bc8:3335:: port 5201 [ID] Interval Transfer Bitrate R…

Du coup, ce que j’ai fait, c’est que j’ai viré le chiffrement espérant avoir un débit plus élevé, ça a été le cas, mais on passe de 20-30 Mbits/s à 60-70 Mbits/s, c’est pas fifou et en plus le traffic n’est plus chiffré ni authentifié.  
Je viens de tester le débit via un tunnel SSH et j’ai un débit mesuré de 170 Mbits/s, SSH avec chiffrement. J’envisage donc sérieusement de changer de VPN, de passer de openVPN à SSH.

Pour ce faire, j’ai remarqué l’option `-w` de ssh :

```plaintext
     -w local_tun[:remote_tun]
             Requests tunnel device forwarding with the specified tun(4) devices between the client (local_tun) and the server (remote_tun).

             The devices may be specified by numerical ID or the keyword “any”, which uses the next available tunnel device. If remote_tun is not specified, it defaults to “any”. See also the Tunnel and TunnelDevice directives in ssh_config(5).

             If the Tunnel directive is unset, it will be set to the default tunnel mode, which is “point-to-point”. If a different Tunnel forwarding mode it desired, then it should be specified before -w.

```

mais je ne trouve pas comment mettre en œuvre ça.

Pour info, un machine est sous Debian 10 et l’autre est sous Raspbian 10, les deux sont joignables directement sur Internet, peu importe qui sera le client et qui sera le serveur.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Janvier 29, 2021, 12:56 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/2 "2021-01-29T12:56:48Z")

</div>

Pour info, encapsuler du trafic VPN dans TCP n’est pas une bonne idée.

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Janvier 29, 2021, 2:09 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/3 "2021-01-29T14:09:49Z")

</div>

Oui, je le sais ça, parce que ça fait deux couches de TCP qui gèrent les retransmissions de la même façon en même temps, mais ce n’est pas la question de savoir si c’est une bonne idée, je veux retrouver le chiffrement et avoir un débit plus élevé. D’après mes mesures, openSSH est mieux que openVPN.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 29, 2021, 2:15 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/4 "2021-01-29T14:15:55Z")

</div>

As-tu essayer de monter un VPN avec Wireguard ? voir aussi du côté de Tinc …

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Janvier 29, 2021, 3:08 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/5 "2021-01-29T15:08:45Z")

</div>

En fait la bonne question est plutôt de savoir quel traffic tu fais passer dans ton lien virtuel.  
openSSH et openVPN n’ont pas la même finalité. Ce n’est pas les mêmes fonction.  
openVPN créé un réseau virtuel privé, openSSH créé un shell chiffré.

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Janvier 29, 2021, 6:46 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/6 "2021-01-29T18:46:29Z")

</div>

> [@Clochette](#):
>
> As-tu essayer de monter un VPN avec Wireguard ?

Wireguard n’est pas disponible sur Raspbian.

> [@Clochette](#):
>
> voir aussi du côté de Tinc

Je ne connais pas, je me note ça. Le nom me dit quelque chose…

> [@Zargos](#):
>
> openSSH créé un shell chiffré

Oui, mais ça ne fait pas que ça, on peut passer énormément de choses via un tunnel SSH.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 29, 2021, 7:53 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/7 "2021-01-29T19:53:17Z")

</div>

> [@Almtesh](#):
>
> Wireguard n’est pas disponible sur Raspbian.

Ah bon oO ?

On trouve des tutoriels assez récents expliquant la mise en place depuis les dépôts testing à voir si les dépôts backport de Debian ne contiennent pas non plus le nécessaire 😉 :

> **[WireGuard on Raspberry Pi OS (Bullseye)](https://www.sigmdel.ca/michel/ha/wireguard/wireguard_02_en.html)**

---

<div class="post-metadata">

**Author:** ![anon90668717](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/3e96dc/32.png) [@anon90668717](https://www.debian-fr.org/u/anon90668717)\
**Post date:** [Janvier 30, 2021, 4:23 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/8 "2021-01-30T04:23:56Z")

</div>

Pour ceux qui ne connaissent pas Wireguard (désolé c’est en anglais)

[![](https://img.youtube.com/vi/88GyLoZbDNw/maxresdefault.jpg "WireGuard: Next Generation Secure Network Tunnel") ](https://www.youtube.com/watch?v=88GyLoZbDNw)

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Janvier 30, 2021, 11:41 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/9 "2021-01-30T11:41:38Z")

</div>

> [@Almtesh](#):
>
> on peut passer énormément de choses via un tunnel SSH.

Le tunnel ssh est une autre utilisation de openSSH en effet, mais nécessite d’avoir établi une connexion permanente, alors que SSH s’utilise le plus couramment en listener.

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Janvier 30, 2021, 7:16 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/10 "2021-01-30T19:16:35Z")

</div>

> [@Clochette](#):
>
> On trouve des tutoriels assez récents expliquant la mise en place depuis les dépôts testing

Ah, oui, je confirme, l’installation est faite, maintenant, il faut le configurer, il faut juste que je trouve comment…  
Pour le lien que tu as fourni, merci beaucoup, ça m’a permis de l’installer, mais la mise en œuvre ne semble pas correspondre au besoin. Je dois faire un pont entre deux réseaux, le tutoriel semble indiquer comment joindre des clients au réseau du serveur.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 30, 2021, 9:35 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/11 "2021-01-30T21:35:16Z")

</div>

Une fois tes machines connecté tu pourrais via iptables interconnecté tes réseaux ?  
C’est pas des plus propre mais ça a déjà fonctionné sur un lab pour ma part 😉

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Janvier 30, 2021, 9:41 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/12 "2021-01-30T21:41:30Z")

</div>

iptables ne sert pas à interconnecter des réseaux mais à filtrer et modifier les paquets IP.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 31, 2021, 8:41 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/13 "2021-01-31T08:41:45Z")

</div>

> [@PascalHambourg](#):
>
> iptables ne sert pas à interconnecter des réseaux mais à filtrer et modifier les paquets IP.

Oui en effet sémantiquement parlant ce que j’ai dit est faux.

> [@Almtesh](#):
>
> Pour le lien que tu as fourni, merci beaucoup, ça m’a permis de l’installer, mais la mise en œuvre ne semble pas correspondre au besoin. Je dois faire un pont entre deux réseaux, le tutoriel semble indiquer comment joindre des clients au réseau du serveur.

J’ai retrouvé un article pas trop vieux assez intéressant :

> **[Wireguard sur Debian 9 - Blog de dada](https://www.dadall.info/article656/wireguard-debian-9)**

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Janvier 31, 2021, 1:48 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/14 "2021-01-31T13:48:39Z")

</div>

Après installation, j’ai mis ce fichier `/etc/wireguard/nut2lookout.conf` sur Nut :

```nohighlight
[Interface]
Address = 10.255.255.1
Address = 2001:bc8:3335:ff00::1
PrivateKey = <clef privée Nut>
ListenPort = 11000
Postup = /bin/systemctl restart dnsmasq

[Peer]
PublicKey = <clef publique Lookout>
Endpoint = 2a01:e0a:12c:3940:::11000
AllowedIPs = 10.255.255.2/32
AllowedIPs = 2001:bc8:3335:ff00::2/128
AllowedIPs = 10.255.1.0/24
AllowedIPs = 2a01:e0a:12c:3941::/64
AllowedIPs = 10.255.2.0/24
AllowedIPs = 2a01:e0a:12c:3942::/64

```

et ce fichier `/etc/wireguard/lookout2nut.conf` sur Lookout :

```nohighlight
[Interface]
Address = 10.255.255.2
Address = 2001:bc8:3335:ff00::2
PrivateKey = <clef privée Lookout>
ListenPort = 11000
Postup = /bin/systemctl restart dnsmasq

[Peer]
PublicKey = <clef publique Nut>
Endpoint = 2001:bc8:6005:1c:208:a2ff:fe0c:686c:11000
AllowedIPs = 10.255.255.1/32
AllowedIPs = 2001:bc8:3335:ff00::1/128
AllowedIPs = 10.255.0.1/24
AllowedIPs = 2001:bc8:3335::/48

```

et ça marche ! Voilà iperf :

```nohighlight
┌ (gilles@Lookout + 0) (31/01/21 - 14:45:45) (0.13 - 0%) (~)
└% iperf3 -c nut.almtesh.net
Connecting to host nut.almtesh.net, port 5201
[5] local 2001:bc8:3335:ff00::2 port 59920 connected to 2001:bc8:3335:: port 5201
[ID] Interval Transfer Bitrate Retr Cwnd
[5] 0.00-1.00 sec 25.8 MBytes 216 Mbits/sec 0 598 KBytes       
[5] 1.00-2.00 sec 28.8 MBytes 242 Mbits/sec 0 663 KBytes       
[5] 2.00-3.00 sec 29.3 MBytes 246 Mbits/sec 0 766 KBytes       
[5] 3.00-4.00 sec 33.1 MBytes 278 Mbits/sec 0 887 KBytes       
[5] 4.00-5.00 sec 35.5 MBytes 298 Mbits/sec 0 979 KBytes       
[5] 5.00-6.00 sec 35.5 MBytes 298 Mbits/sec 0 983 KBytes       
[5] 6.00-7.00 sec 34.9 MBytes 293 Mbits/sec 0 1.01 MBytes       
[5] 7.00-8.00 sec 35.2 MBytes 295 Mbits/sec 0 1.06 MBytes       
[5] 8.00-9.00 sec 36.7 MBytes 308 Mbits/sec 0 1.06 MBytes       
[5] 9.00-10.00 sec 35.1 MBytes 294 Mbits/sec 0 1.06 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ID] Interval Transfer Bitrate Retr
[5] 0.00-10.00 sec 330 MBytes 277 Mbits/sec 0 sender
[5] 0.00-10.02 sec 327 MBytes 274 Mbits/sec receiver

iperf Done.
┌ (gilles@Lookout + 0) (31/01/21 - 14:47:46) (0.70 - 0%) (~)
└% iperf3 -c nut.almtesh.net -R
Connecting to host nut.almtesh.net, port 5201
Reverse mode, remote host nut.almtesh.net is sending
[5] local 2001:bc8:3335:ff00::2 port 59924 connected to 2001:bc8:3335:: port 5201
[ID] Interval Transfer Bitrate
[5] 0.00-1.00 sec 24.0 MBytes 201 Mbits/sec                  
[5] 1.00-2.00 sec 21.5 MBytes 180 Mbits/sec                  
[5] 2.00-3.00 sec 20.5 MBytes 172 Mbits/sec                  
[5] 3.00-4.00 sec 20.2 MBytes 169 Mbits/sec                  
[5] 4.00-5.00 sec 21.6 MBytes 182 Mbits/sec                  
[5] 5.00-6.00 sec 24.0 MBytes 201 Mbits/sec                  
[5] 6.00-7.00 sec 20.9 MBytes 175 Mbits/sec                  
[5] 7.00-8.00 sec 23.0 MBytes 193 Mbits/sec                  
[5] 8.00-9.00 sec 23.6 MBytes 198 Mbits/sec                  
[5] 9.00-10.00 sec 25.5 MBytes 214 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ID] Interval Transfer Bitrate Retr
[5] 0.00-10.02 sec 227 MBytes 190 Mbits/sec 157 sender
[5] 0.00-10.00 sec 225 MBytes 189 Mbits/sec receiver

iperf Done.
┌ (gilles@Lookout + 0) (31/01/21 - 14:48:04) (1.86 - 0%) (~)
└%

```

Par contre, juste avant, @Clochette, la clef me semble très courte, par rapport à celles d’openVPN, c’est normal ?

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 31, 2021, 3:58 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/15 "2021-01-31T15:58:19Z")

</div>

> [@Almtesh](#):
>
> Par contre, juste avant, @Clochette, la clef me semble très courte, par rapport à celles d’openVPN, c’est normal ?

C’est pas une clé rsa, cela s’appuie sur du _Curve25519_ les clé sont tout comme avec la génération d’une clé ed25519 via ssh-keygen bien plus courte que de la rsa 256/512 mais bien plus sûr.

> **[Curve25519](https://fr.wikipedia.org/wiki/Curve25519)**
>
> Curve25519 est une courbe elliptique offrant 128 bits de sécurité et conçue pour être utilisée par le protocole d'échange de clés Diffie-Hellman basé sur les courbes elliptiques (ECDH). C'est une courbe elliptique permettant des performances très élevées, n'étant protégée par aucun brevet connu et moins affectée par les générateurs de nombres pseudo-aléatoires défaillants. Le brouillon original Curve25519, le définissait comme une fonction Diffie–Hellman (DH). Daniel J. Bernstein a depuis proposé...

Donc oui ça me surprends pas qu’elles donnent une impression d’être plus light, mais il n’en est rien 😉

On dirait bien que les perfs sont meilleurs ^^

PS : à moins d’avoir une obligation particulière lié à du matériel ou à l’infrastructure je n’utilise plus que des clé ed25519 pour le SSH et j’évite quant c’est possible les connexions via certificat pour le ftp/ssh/vpn.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Janvier 31, 2021, 7:35 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/16 "2021-01-31T19:35:32Z")

</div>

Le truc c’est que wireguard a moins de choix pour le chiffrement par rapport à openvpn, ce qui rend openvpn plus difficile que wireguard à configurer sur ce point.

Quand aux meilleures performances de wireguard, c’est parce qu’il est lié au noyau (kernel).

Dans les deux cas, il n’y a pas de protection de votre intimité (privacy).

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Février 1, 2021, 6:31 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/17 "2021-02-01T18:31:15Z")

</div>

> [@Zargos](#):
>
> Dans les deux cas, il n’y a pas de protection de votre intimité (privacy).

Pas grave, ce n’est pas pour aller sur Internet, c’est juste pour joindre deux réseaux qui ont accès à Internet. Je ne sais pas si c’est de ça dont tu parles…

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 1, 2021, 7:58 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/18 "2021-02-01T19:58:09Z")

</div>

Je pense plutôt que Zargos reproche le manque d’isolation en cas de multiple tunnel via Wireguard, mais ce n’est clairement pas le problème ici 😉

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 2, 2021, 7:04 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/19 "2021-02-02T19:04:22Z")

</div>

Non aucunement, la plupart des gens croient que le fait que le tunnel est chiffré que cela rend leurs machines sécurisées ce qui n’est absolument pas le cas. Et pour la privacy (le sens anglais est un peu plus large que le mot intimité en français) il n’y a pas de protection (en clair on identifie toujours où vous êtes, etc…

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 2, 2021, 7:35 UTC](https://www.debian-fr.org/t/vpn-par-ssh/83859/20 "2021-02-02T19:35:55Z")

</div>

Du coup je comprends pas ton retour dans le sujet, un VPN n’est pas fait pour ça.

[Page suivante](https://www.debian-fr.org/t/vpn-par-ssh/83859.md?page=2)
