Projet

Général

Profil

Vpn doc user » Historique » Version 12

Baptiste Jonglez, 13/10/2014 23:13

1 11 Baptiste Jonglez
h1. Documentation utilisateur pour le VPN Illyse
2 7 Baptiste Jonglez
3
{{>toc}}
4 1 Pierre-Arnaud Poudret
5 8 Baptiste Jonglez
Le VPN d'Illyse utilise **OpenVPN**, qui a l'avantage de fonctionner sur à peu près n'importe quelle plate-forme (GNU/Linux, OS X, Windows, Android, …)
6 1 Pierre-Arnaud Poudret
7 8 Baptiste Jonglez
Cette page sert de documentation utilisateur.  Pour l'instant, elle contient principalement des exemples de fichier de configuration pour le client openvpn.
8 1 Pierre-Arnaud Poudret
9 8 Baptiste Jonglez
Les fichiers de configuration donnés ici sont génériques, au sens où le reste de la configuration se fait via l'interface web abonné Illyse : https://coin.illyse.org/ (adresses IP à utiliser sur le tunnel, etc).
10 1 Pierre-Arnaud Poudret
11 11 Baptiste Jonglez
h2. Note importante sur la sécurité
12 1 Pierre-Arnaud Poudret
13 11 Baptiste Jonglez
Le VPN Illyse fournit une **IPv4 publique** et de l'IPv6 (elle aussi publique, évidemment).  **Aucun firewall n'est en place côté Illyse** : assurez-vous d'avoir un **firewall** sur votre machine lorsque vous utilisez le VPN, et maîtrisez les services que vous exposez ! (par exemple SSH)
14 1 Pierre-Arnaud Poudret
15 11 Baptiste Jonglez
Illyse fournit un accès à Internet neutre, l'utilisateur est responsable de ce qu'il en fait.
16
17 12 Baptiste Jonglez
h2. Utilisation d'OpenVPN
18
19
Le serveur OpenVPN d'Illyse écoute à la fois en UDP et en TCP, et ce, sur n'importe quel port.  Si vous êtes sur un réseau complètement bloqué mais que UDP/53 ou TCP/443 passe, pas de problème, le VPN passe !
20
21
Pour des raisons de performance, UDP est recommandé.  N'utilisez le mode TCP qu'en dernier recours.  Référence : http://sites.inka.de/bigred/devel/tcp-tcp.html
22
23 11 Baptiste Jonglez
h2. Configuration OpenVPN pour Linux (testé sous Debian wheezy)
24 12 Baptiste Jonglez
25
La configuration est commentée, n'hésitez pas à changer des paramètres.  Avec les paramètres ci-dessous, une IPv4 et une IPv6 seront attribués, et tout le trafic passera par le VPN.
26 1 Pierre-Arnaud Poudret
27
+/etc/openvpn/illyse.conf+
28
<pre>
29
# C'est nous qui prenons l'initiative de nous connecter au serveur.
30
client
31
32
# On route de l'IP, on ne fait pas de l'ethernet.
33
dev tun0
34
35
# si on ne reçoit pas d'IP pour tun0:
36
# - soit on configure l'interface avec des ip privées bidon
37
#ifconfig 10.255.255.1 10.255.255.2
38
# - soit on utilise un script pour faire "ifconfig tun0 up"
39
#script-security 2
40
#up up.sh
41
42
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
43
# cependant notable que les restrictions d'accès Internet laissent souvent
44
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
45
# pas, essayez tcp.
46
47
# Transport sur udp v4. En v6, la redirection de passerelle par défaut fonctionne mal (openvpn ne crée pas l'équivalent de la route /32 IPv4 vers le serveur vpn via la passerelle sous-jacente)
48
# Si on ne prévoit pas d'utiliser la directive "redirect-gateway def1", alors on peut choisir "proto udp6" pour monter le tunnel en IPv6.
49
#proto udp6
50
proto udp
51
#proto tcp
52
53
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
54
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
55
mssfix 1300
56
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
57
# quand ça dépasse.
58
fragment 1300
59
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
60
#mtu-disc yes
61
62
# En udp, Prévenir le serveur quand on termine, permet de relancer
63
# immédiatement sans attendre que le serveur se rende compte de la
64
# déconnexion par timeout.
65
explicit-exit-notify
66
67
# L'adresse du serveur.
68
remote vpn.illyse.net 1194
69
70
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
71
#http-proxy 192.0.2.1 8080
72
73
# Attendre un peu avant d'ajouter les routes.
74
route-delay 2
75
76
# Ne pas utiliser un port local statique, on est client de toutes façons.
77
nobind
78
79
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
80
# redémarrage.
81
persist-key
82
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
83
#persist-tun
84
85
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
86
redirect-gateway def1
87
88
# On peut aussi vouloir plutôt router seulement quelques destinations, par
89
# exemple ici tout Gitoyen:
90
#route 80.67.160.0 255.255.224.0
91
92 5 Baptiste Jonglez
# Activer IPv6 dans le tunnel
93 1 Pierre-Arnaud Poudret
tun-ipv6
94 5 Baptiste Jonglez
# et faire passer tout le trafic IPv6 via le VPN:
95 1 Pierre-Arnaud Poudret
route-ipv6 ::/1
96
route-ipv6 8000::/1
97
98
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
99
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
100
# fichier contenant ces deux informations, une par ligne.
101
auth-user-pass credentials
102
103
# Un minimum de debug, c'est toujours bien.
104
verb 3
105
106
log-append /var/log/openvpn-illyse.log
107
108
# Certificat permettant de vérifier que c'est bien à Illyse que
109
# l'on se connecte et donc à qui on donne notre mot de passe.
110
remote-cert-tls server
111
<ca>
112
-----BEGIN CERTIFICATE-----
113
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
149
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
150
-----END CERTIFICATE-----
151
</ca>
152
</pre>
153
154
155
+/etc/openvpn/credentials+
156
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.)
157
158
Spécifier login et mot de passe sur deux lignes différences.
159
160
<pre>
161
jkleboulet-vpn1
162
omgsuchsecured123
163
</pre>
164
165
166 3 Pierre-Arnaud Poudret
h3. Mise à jour automatique de resolv.conf
167
168
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
169
170
<pre>
171
<mit-mit> Bon, ça marche, faut ajouter à la config :
172
<mit-mit> script-security 2
173
<mit-mit> up /etc/openvpn/update-resolv-conf
174
<mit-mit> down /etc/openvpn/update-resolv-conf
175
<mit-mit> et avoir resolvconf d'installé.
176
<mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes)
177
</pre>
178
179
180 1 Pierre-Arnaud Poudret
h2. Windows XP
181 2 Pierre-Arnaud Poudret
182
+C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+
183
<pre>
184
# C'est nous qui prenons l'initiative de nous connecter au serveur.
185
client
186
187
# On route de l'IP, on ne fait pas de l'ethernet.
188
dev tun0
189
190
# si on ne reçoit pas d'IP pour tun0:
191
# - soit on configure l'interface avec des ip privées bidon
192
#ifconfig 10.255.255.1 10.255.255.2
193
# - soit on utilise un script pour faire "ifconfig tun0 up"
194
#script-security 2
195
#up up.sh
196
197
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
198
# cependant notable que les restrictions d'accès Internet laissent souvent
199
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
200
# pas, essayez tcp.
201
202
#proto udp6
203
proto udp
204
#proto tcp
205
206
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
207
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
208
mssfix 1300
209
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
210
# quand ça dépasse.
211
fragment 1300
212
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
213
#mtu-disc yes
214
215
#mtu-test
216
#link-mtu 1300
217
#tun-mtu 1300
218
219
# En udp, Prévenir le serveur quand on termine, permet de relancer
220
# immédiatement sans attendre que le serveur se rende compte de la
221
# déconnexion par timeout.
222
explicit-exit-notify
223
224
# L'adresse du serveur.
225
remote vpn.illyse.net 1194
226
227
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
228
#http-proxy 192.0.2.1 8080
229
230
# Pour windows: utiliser route.exe.
231
route-method exe
232
233
# Attendre un peu avant d'ajouter les routes.
234
route-delay 2
235
236
# Ne pas utiliser un port local statique, on est client de toutes façons.
237
nobind
238
239
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
240
# redémarrage.
241
persist-key
242
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
243
#persist-tun
244
245
#ip-win32 ipapi
246
247
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
248 1 Pierre-Arnaud Poudret
redirect-gateway def1
249 2 Pierre-Arnaud Poudret
250 1 Pierre-Arnaud Poudret
# On peut aussi vouloir plutôt router seulement quelques destinations, par
251 2 Pierre-Arnaud Poudret
# exemple ici tout Gitoyen:
252
#route 80.67.160.0 255.255.224.0
253
254 5 Baptiste Jonglez
# Activer IPv6 dans le VPN
255 2 Pierre-Arnaud Poudret
tun-ipv6
256 5 Baptiste Jonglez
# Faire passer tout le trafic IPv6 via le VPN:
257 2 Pierre-Arnaud Poudret
route-ipv6 ::/1
258
route-ipv6 8000::/1
259
260
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
261
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
262
# fichier contenant ces deux informations, une par ligne.
263
auth-user-pass credentials
264
265
# Un minimum de debug, c'est toujours bien.
266
verb 3
267
268
#log-append /var/log/openvpn-illyse.log
269
270
# Certificat permettant de vérifier que c'est bien à Illyse que
271
# l'on se connecte et donc à qui on donne notre mot de passe.
272
remote-cert-tls server
273
<ca>
274
-----BEGIN CERTIFICATE-----
275
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
311
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
312
-----END CERTIFICATE-----
313
</ca>
314
</pre>
315
316
317
318
+C:\Program Files\OpenVPN\config\illyse\credentials+
319
320
<pre>
321
jkleboulet-vpn1
322
omgsuchsecured123
323
</pre>
324 4 Fabien Michel
325
h2. Mac OS X
326
327
Installer le client OpenVPN Tunnelblick : https://code.google.com/p/tunnelblick/
328
329
Créer un fichier illyse.ovpn avec la configuration voulue. Celle indiquée ci-dessous fonctionne sans modification necessaire.
330
Double-cliquer sur le fichier afin que TunnelBlick import la configuration.
331
A la première connexion, il va demander un couple login/password qu'il sera possible de stocker dans le trousseau.
332
333
Paramètres modifiés par rapport à la configuration pour Linux :
334
* log-append : Ce paramètre n'est pas accepté. Mais tunnelblick log déjà en interne.
335
* auth-user-pass : On ne précise pas de fichier de credential, c'est géré par Tunnelblick et Keychains au moment de la connexion
336
* Les commentaires ont été retirés car le fichier est tronqué au moment de l'import s'il est trop long (ce qui était le cas)
337
338
+illyse.ovpn+
339
<pre>
340
client
341
dev tun0
342
proto udp
343
mssfix 1300
344
fragment 1300
345
explicit-exit-notify
346
remote vpn.illyse.net 1194
347
#http-proxy 192.0.2.1 8080
348
route-delay 2
349
nobind
350
351
persist-key
352
persist-tun
353
354
redirect-gateway def1
355
#route 80.67.160.0 255.255.224.0
356
357
tun-ipv6
358
route-ipv6 ::/1
359
route-ipv6 8000::/1
360
361
auth-user-pass
362
verb 3
363
364
remote-cert-tls server
365
<ca>
366
-----BEGIN CERTIFICATE-----
367
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
400 1 Pierre-Arnaud Poudret
LSVaB9OD7iVWkW5eo6ng3XA390HIUUtf/0IdtiCoMsjuZbVagfiaUu0kUJpR6d2k
401
r5czdLFhRu8uw0sWn1rMQXlUAqH0WAfoq8XinaHesWs5MEnvevjoUTkNhFnqe1Ra
402
rkwU9mzr1/N6GfpPalbveD0duTGAkJN5mwLZi+HZ4ctLgO1ShYFU/NbC7jNU3YCU
403
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
404
-----END CERTIFICATE-----
405
</ca>
406 4 Fabien Michel
407
</pre>
408 8 Baptiste Jonglez
409 9 Baptiste Jonglez
h1. Configurations avancées
410 8 Baptiste Jonglez
411 9 Baptiste Jonglez
h2. Client sans IP montée sur le tunnel
412 8 Baptiste Jonglez
413
Pour ceux qui veulent bricoler, il est possible (via l'interface web abonné) ne pas monter du tout d'IP (v4 ou v6) sur l'interface tun du client. Dans ce cas, les paquets destinés aux ranges v4 et v6 de l'abonné sont toujours routés correctement vers le client, mais il appartient à l'abonné de s'assurer qu'ils seront correctement routés plus avant sur son réseau interne.
414 10 Baptiste Jonglez
415
h2. Utiliser simultanément la connexion normale et le VPN
416
417
Lorsqu'on a un serveur, on peut avoir envie d'être joignable à la fois via la connexion normale (e.g. Free) et via le VPN.  Pour se faire, on utilise le **policy routing** du noyau Linux : quand quelqu'un nous parle sur l'IP normale, on lui répond via la connexion normale, et quand quelqu'un nous parle sur l'IP du VPN, on répond via le VPN.  Notons que ça ne concerne que les connexions entrantes (donc principalement utile pour un serveur).
418
419
Pour les connexions sortantes, on a le choix : soit on passe dans le VPN, soit on passe par la connexion normale.  La configuration ci-dessous fait passer les connexions sortantes par la connexion normale (parce que c'est plus simple).
420
421
Note : il faut s'assurer de bien avoir configuré une IPv4 et une IPv6 sur l'interface tun (sur https://coin.illyse.org).  Sinon, les scripts ne feront rien.
422
423
Bonus : si vous avez un noyau Multipath-TCP, cette configuration permettra d'utiliser les deux connexions en parallèle ! Pratique pour joindre Youtube si on est chez Free, par exemple :)
424
(la configuration ci-dessous est similaire à http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting )
425
426
+/etc/openvpn/up.sh+
427
<pre>
428
#!/bin/bash
429
430
dev="$1"
431
tun_mtu="$2"
432
link_mtu="$3"
433
local_ip="$4"
434
remote_ip="$5"
435
436
# Routing table to use
437
table=4242
438
439
# Source-specific routing: use the normal default route by default,
440
# but use the VPN for replying to packets coming from the VPN.
441
# IPv4
442
[ -n "$local_ip" ] && ip rule add from "$local_ip" table "$table" && ip route add default dev "$dev" table "$table"
443
# IPv6
444
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule add from "$ifconfig_ipv6_local" table "$table" && ip -6 route add default dev "$dev" table "$table"
445
</pre>
446
447
+/etc/openvpn/down.sh+
448
<pre>
449
#!/bin/bash
450
451
dev="$1"
452
tun_mtu="$2"
453
link_mtu="$3"
454
local_ip="$4"
455
remote_ip="$5"
456
457
table=4242
458
459
# Delete table for source-specific routing.
460
[ -n "$local_ip" ] && ip rule del from "$local_ip" && ip route del default table "$table"
461
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule del from "$ifconfig_ipv6_local" && ip -6 route del default table "$table"
462
463
exit 0
464
</pre>
465
466
+/etc/openvpn/illyse.conf+
467
<pre>
468
## Configuration VPN Illyse pour accepter des connexions entrantes
469
## à la fois via le VPN et via la connexion normale, grâce au policy routing (Linux uniquement)
470
## https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user#Utiliser-simultanément-la-connexion-normale-et-le-VPN
471
472
# Gestion des routes via des scripts externes.
473
script-security 2
474
up up.sh
475
down down.sh
476
477
478
# Reste de la configuration normale.
479
# Penser à enlever "redirect-gateway" et "route-ipv6", on gère les
480
# routes via up.sh et down.sh
481
client
482
remote vpn.illyse.net 1194
483
#http-proxy 192.0.2.1 8080
484
dev tun0
485
486
#proto udp6
487
proto udp
488
#proto tcp
489
explicit-exit-notify
490
491
mssfix 1300
492
fragment 1300
493
494
route-delay 2
495
nobind
496
persist-key
497
persist-tun
498
499
tun-ipv6
500
501
auth-user-pass credentials
502
503
verb 3
504
log-append /var/log/openvpn-illyse.log
505
506
# Certificat permettant de vérifier que c'est bien à Illyse que
507
# l'on se connecte et donc à qui on donne notre mot de passe.
508
remote-cert-tls server
509
<ca>
510
-----BEGIN CERTIFICATE-----
511
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
547
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
548
-----END CERTIFICATE-----
549
</ca>
550
</pre>