Projet

Général

Profil

Comparatif VPN » Historique » Version 15

Matthieu Herrb, 21/05/2019 10:29

1 7 Baptiste Jonglez
{{>toc}}
2 7 Baptiste Jonglez
3 15 Matthieu Herrb
h1. Comparatif VPN
4 1 Laurent GUERBY
5 4 Baptiste Jonglez
Comparaison de différentes solutions de VPN, selon plusieurs critères (facilité de mise en place, performance, sécurité, etc).  L'usage considéré est celui de transport d'IP publiques (collecte virtuelle), voir [[Partage ADSL OpenVPN]].
6 4 Baptiste Jonglez
7 4 Baptiste Jonglez
Pour des benchmarks détaillés sur des petits routeurs OpenWRT, voir [[Benchmark VPN]].
8 4 Baptiste Jonglez
9 6 Baptiste Jonglez
Overview OpenWRT : http://wiki.openwrt.org/doc/howto/vpn.overview
10 6 Baptiste Jonglez
11 4 Baptiste Jonglez
h2. OpenVPN
12 4 Baptiste Jonglez
13 4 Baptiste Jonglez
Avantages :
14 4 Baptiste Jonglez
15 4 Baptiste Jonglez
* simple à mettre en place, éprouvé, documenté
16 4 Baptiste Jonglez
* standard de fait, existe pour tous les OS décents
17 4 Baptiste Jonglez
* chiffrement (optionnel)
18 4 Baptiste Jonglez
* authentification forte (certificat SSL, secret partagé, ...)
19 5 Baptiste Jonglez
* transport UDP ou TCP (passe bien le NAT, voire les firewalls restrictifs)
20 5 Baptiste Jonglez
* fragmentation intégrée (mais peut aussi poser problème niveau performances)
21 4 Baptiste Jonglez
22 4 Baptiste Jonglez
Inconvénients :
23 1 Laurent GUERBY
24 4 Baptiste Jonglez
* faible performance sur des petits routeurs (même sans chiffrement) → raison : tunnel userspace
25 5 Baptiste Jonglez
* maintenabilité : obligé de configurer un nouveau tunnel point-à-point pour chaque connexion VPN (alternative : mode serveur multi-client, mais peu pratique pour faire du routage un peu complexe)
26 4 Baptiste Jonglez
27 4 Baptiste Jonglez
Liens :
28 4 Baptiste Jonglez
29 4 Baptiste Jonglez
* [[OpenVPN]]
30 1 Laurent GUERBY
* [[Partage_ADSL_OpenVPN]]
31 1 Laurent GUERBY
32 5 Baptiste Jonglez
h2. GRE
33 5 Baptiste Jonglez
34 11 Laurent GUERBY
http://en.wikipedia.org/wiki/Generic_Routing_Encapsulation
35 11 Laurent GUERBY
36 5 Baptiste Jonglez
Avantages :
37 5 Baptiste Jonglez
38 5 Baptiste Jonglez
* extrêmement simple à mettre en place, disponible absolument partout
39 5 Baptiste Jonglez
* performance : implémentation kernelspace, encapsulation très simple
40 5 Baptiste Jonglez
41 5 Baptiste Jonglez
Inconvénients :
42 5 Baptiste Jonglez
43 5 Baptiste Jonglez
* pas d'authentification
44 5 Baptiste Jonglez
* pas de chiffrement
45 5 Baptiste Jonglez
* maintenabilité : configurer un nouveau tunnel pour chaque connexion VPN
46 5 Baptiste Jonglez
* ni TCP, ni UDP : certains firewalls n'aiment pas (e.g. Livebox)
47 5 Baptiste Jonglez
* pas de keepalive intégré : pose problème pour la connectivité bidirectionnelle à travers un NAT / firewall stateful
48 5 Baptiste Jonglez
* IPv6 pas super bien intégré (notamment, pas mal de bugs sur le link-local)
49 11 Laurent GUERBY
50 13 Samuel Thibault
h2. IPIP/SIT
51 11 Laurent GUERBY
52 11 Laurent GUERBY
http://en.wikipedia.org/wiki/IP_in_IP
53 11 Laurent GUERBY
http://www.inetdoc.net/guides/lartc/lartc.tunnel.ip-ip.html
54 11 Laurent GUERBY
http://beeznest.wordpress.com/2008/07/14/ip-in-ip-or-gre-tunnel-using-iproute/
55 1 Laurent GUERBY
56 13 Samuel Thibault
Même avantages/inconvénients que GRE
57 13 Samuel Thibault
58 13 Samuel Thibault
59 13 Samuel Thibault
h2. FoU (Foo over UDP)
60 13 Samuel Thibault
61 14 Samuel Thibault
https://lwn.net/Articles/614348/
62 14 Samuel Thibault
63 14 Samuel Thibault
Principe indentique à GRE/IPIP/SIT (en fait c'est carrément une surcouche), sauf que c'est encapsulé dans UDP, ce qui évite la plupart des problèmes de firewall.
64 1 Laurent GUERBY
65 6 Baptiste Jonglez
h2. PPP/L2TPv2
66 6 Baptiste Jonglez
67 6 Baptiste Jonglez
On parle ici de L2TPv2 (RFC 2661), qui encapsule obligatoirement du PPP et qui est obligatoirement transporté sur UDP.
68 6 Baptiste Jonglez
69 8 Baptiste Jonglez
Avantages :
70 8 Baptiste Jonglez
71 8 Baptiste Jonglez
* authentification (login / mot de passe)
72 8 Baptiste Jonglez
* performance : datapath en kernelspace
73 8 Baptiste Jonglez
* maintenabilité : un daemon userspace s'occupe automatiquement de créer des interfaces pppX quand les clients se connectent, et d'attribuer des IP aux clients
74 8 Baptiste Jonglez
* transport sur UDP, passe bien les firewalls
75 8 Baptiste Jonglez
76 8 Baptiste Jonglez
Inconvénients :
77 8 Baptiste Jonglez
78 8 Baptiste Jonglez
* pas de chiffrement
79 8 Baptiste Jonglez
* authentification faible (MSCHAP et compagnie)
80 8 Baptiste Jonglez
* difficile à mettre en place (interaction userspace/kernelspace, outils antiques comme pppd)
81 8 Baptiste Jonglez
* overhead (20 octets IP + 8 octets UDP + 8 octets L2TP + 4 octets PPP = 40 octets)
82 8 Baptiste Jonglez
83 6 Baptiste Jonglez
Liens :
84 6 Baptiste Jonglez
85 6 Baptiste Jonglez
* https://www.kernel.org/doc/Documentation/networking/l2tp.txt
86 8 Baptiste Jonglez
* https://www.xelerance.com/services/software/xl2tpd/
87 9 Baptiste Jonglez
* http://www.frameip.com/l2tp-pppoe-ppp-ethernet/ : très bon article sur PPP, L2TP, etc
88 6 Baptiste Jonglez
89 6 Baptiste Jonglez
h2. PPP/L2TPv2/IPsec
90 1 Laurent GUERBY
91 8 Baptiste Jonglez
Même chose, mais en utilisant IPsec comme transport.  Ce qui veut dire encore plus difficile à mettre en place, et des performances moindres.
92 8 Baptiste Jonglez
93 6 Baptiste Jonglez
Liens :
94 6 Baptiste Jonglez
95 6 Baptiste Jonglez
* RFC 3193
96 6 Baptiste Jonglez
97 1 Laurent GUERBY
h2. L2TPv3
98 1 Laurent GUERBY
99 8 Baptiste Jonglez
Il existe également L2TPv3 (RFC 3931) qui est censé permettre plus de choses : transport d'autres protocols que PPP (IP, Ethernet, etc), meilleure sécurité, possibilité de tunnels statiques, encapsulation directe dans IP, etc.
100 6 Baptiste Jonglez
101 8 Baptiste Jonglez
Linux supporte L2TPv3 depuis quelques années (2.6.35), et OpenWRT supporte les tunnels statiques L2TPv3 dans uci.
102 6 Baptiste Jonglez
103 12 Baptiste Jonglez
Tunnel broker pour L2TPv3 : https://dev.wlan-si.net/wiki/Tunneldigger
104 12 Baptiste Jonglez
105 6 Baptiste Jonglez
Liens :
106 6 Baptiste Jonglez
107 6 Baptiste Jonglez
* https://www.kernel.org/doc/Documentation/networking/l2tp.txt
108 6 Baptiste Jonglez
* http://wiki.openwrt.org/doc/uci/network#protocol.l2tp.l2tp.pseudowire.tunnel
109 6 Baptiste Jonglez
* http://wiki.openwrt.org/doc/howto/pseudowire#l2tpv3.with.openwrt
110 6 Baptiste Jonglez
* http://en.wikipedia.org/wiki/L2TPv3
111 6 Baptiste Jonglez
* http://www.openl2tp.org/pipermail/openl2tp-users/2010-April/000836.html
112 5 Baptiste Jonglez
113 5 Baptiste Jonglez
h2. Tinc
114 4 Baptiste Jonglez
115 10 Laurent GUERBY
* http://www.tinc-vpn.org/
116 1 Laurent GUERBY
117 10 Laurent GUERBY
Plus facile a configurer que OpenVPN, fait du mesh automatiquement quand c'est possible.
118 10 Laurent GUERBY
119 10 Laurent GUERBY
h2. socat
120 10 Laurent GUERBY
121 1 Laurent GUERBY
* http://www.dest-unreach.org/socat/doc/socat-tun.html
122 10 Laurent GUERBY
123 10 Laurent GUERBY
h2. OpenSSH
124 10 Laurent GUERBY
125 10 Laurent GUERBY
http://www.debian-administration.org/article/539/Setting_up_a_Layer_3_tunneling_VPN_with_using_OpenSSH
126 10 Laurent GUERBY
127 10 Laurent GUERBY
h2. Autres
128 10 Laurent GUERBY
129 10 Laurent GUERBY
TODO