Projet

Général

Profil

Vpn doc user » Historique » Version 11

Baptiste Jonglez, 13/10/2014 23:01

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
h2. Configuration OpenVPN pour Linux (testé sous Debian wheezy)
18 1 Pierre-Arnaud Poudret
19
+/etc/openvpn/illyse.conf+
20
<pre>
21
# C'est nous qui prenons l'initiative de nous connecter au serveur.
22
client
23
24
# On route de l'IP, on ne fait pas de l'ethernet.
25
dev tun0
26
27
# si on ne reçoit pas d'IP pour tun0:
28
# - soit on configure l'interface avec des ip privées bidon
29
#ifconfig 10.255.255.1 10.255.255.2
30
# - soit on utilise un script pour faire "ifconfig tun0 up"
31
#script-security 2
32
#up up.sh
33
34
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
35
# cependant notable que les restrictions d'accès Internet laissent souvent
36
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
37
# pas, essayez tcp.
38
39
# 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)
40
# 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.
41
#proto udp6
42
proto udp
43
#proto tcp
44
45
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
46
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
47
mssfix 1300
48
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
49
# quand ça dépasse.
50
fragment 1300
51
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
52
#mtu-disc yes
53
54
# En udp, Prévenir le serveur quand on termine, permet de relancer
55
# immédiatement sans attendre que le serveur se rende compte de la
56
# déconnexion par timeout.
57
explicit-exit-notify
58
59
# L'adresse du serveur.
60
remote vpn.illyse.net 1194
61
62
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
63
#http-proxy 192.0.2.1 8080
64
65
# Attendre un peu avant d'ajouter les routes.
66
route-delay 2
67
68
# Ne pas utiliser un port local statique, on est client de toutes façons.
69
nobind
70
71
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
72
# redémarrage.
73
persist-key
74
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
75
#persist-tun
76
77
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
78
redirect-gateway def1
79
80
# On peut aussi vouloir plutôt router seulement quelques destinations, par
81
# exemple ici tout Gitoyen:
82
#route 80.67.160.0 255.255.224.0
83
84 5 Baptiste Jonglez
# Activer IPv6 dans le tunnel
85 1 Pierre-Arnaud Poudret
tun-ipv6
86 5 Baptiste Jonglez
# et faire passer tout le trafic IPv6 via le VPN:
87 1 Pierre-Arnaud Poudret
route-ipv6 ::/1
88
route-ipv6 8000::/1
89
90
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
91
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
92
# fichier contenant ces deux informations, une par ligne.
93
auth-user-pass credentials
94
95
# Un minimum de debug, c'est toujours bien.
96
verb 3
97
98
log-append /var/log/openvpn-illyse.log
99
100
# Certificat permettant de vérifier que c'est bien à Illyse que
101
# l'on se connecte et donc à qui on donne notre mot de passe.
102
remote-cert-tls server
103
<ca>
104
-----BEGIN CERTIFICATE-----
105
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
141
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
142
-----END CERTIFICATE-----
143
</ca>
144
</pre>
145
146
147
+/etc/openvpn/credentials+
148
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.)
149
150
Spécifier login et mot de passe sur deux lignes différences.
151
152
<pre>
153
jkleboulet-vpn1
154
omgsuchsecured123
155
</pre>
156
157
158 3 Pierre-Arnaud Poudret
h3. Mise à jour automatique de resolv.conf
159
160
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
161
162
<pre>
163
<mit-mit> Bon, ça marche, faut ajouter à la config :
164
<mit-mit> script-security 2
165
<mit-mit> up /etc/openvpn/update-resolv-conf
166
<mit-mit> down /etc/openvpn/update-resolv-conf
167
<mit-mit> et avoir resolvconf d'installé.
168
<mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes)
169
</pre>
170
171
172 1 Pierre-Arnaud Poudret
h2. Windows XP
173 2 Pierre-Arnaud Poudret
174
+C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+
175
<pre>
176
# C'est nous qui prenons l'initiative de nous connecter au serveur.
177
client
178
179
# On route de l'IP, on ne fait pas de l'ethernet.
180
dev tun0
181
182
# si on ne reçoit pas d'IP pour tun0:
183
# - soit on configure l'interface avec des ip privées bidon
184
#ifconfig 10.255.255.1 10.255.255.2
185
# - soit on utilise un script pour faire "ifconfig tun0 up"
186
#script-security 2
187
#up up.sh
188
189
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
190
# cependant notable que les restrictions d'accès Internet laissent souvent
191
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
192
# pas, essayez tcp.
193
194
#proto udp6
195
proto udp
196
#proto tcp
197
198
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
199
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
200
mssfix 1300
201
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
202
# quand ça dépasse.
203
fragment 1300
204
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
205
#mtu-disc yes
206
207
#mtu-test
208
#link-mtu 1300
209
#tun-mtu 1300
210
211
# En udp, Prévenir le serveur quand on termine, permet de relancer
212
# immédiatement sans attendre que le serveur se rende compte de la
213
# déconnexion par timeout.
214
explicit-exit-notify
215
216
# L'adresse du serveur.
217
remote vpn.illyse.net 1194
218
219
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
220
#http-proxy 192.0.2.1 8080
221
222
# Pour windows: utiliser route.exe.
223
route-method exe
224
225
# Attendre un peu avant d'ajouter les routes.
226
route-delay 2
227
228
# Ne pas utiliser un port local statique, on est client de toutes façons.
229
nobind
230
231
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
232
# redémarrage.
233
persist-key
234
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
235
#persist-tun
236
237
#ip-win32 ipapi
238
239
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
240 1 Pierre-Arnaud Poudret
redirect-gateway def1
241 2 Pierre-Arnaud Poudret
242 1 Pierre-Arnaud Poudret
# On peut aussi vouloir plutôt router seulement quelques destinations, par
243 2 Pierre-Arnaud Poudret
# exemple ici tout Gitoyen:
244
#route 80.67.160.0 255.255.224.0
245
246 5 Baptiste Jonglez
# Activer IPv6 dans le VPN
247 2 Pierre-Arnaud Poudret
tun-ipv6
248 5 Baptiste Jonglez
# Faire passer tout le trafic IPv6 via le VPN:
249 2 Pierre-Arnaud Poudret
route-ipv6 ::/1
250
route-ipv6 8000::/1
251
252
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
253
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
254
# fichier contenant ces deux informations, une par ligne.
255
auth-user-pass credentials
256
257
# Un minimum de debug, c'est toujours bien.
258
verb 3
259
260
#log-append /var/log/openvpn-illyse.log
261
262
# Certificat permettant de vérifier que c'est bien à Illyse que
263
# l'on se connecte et donc à qui on donne notre mot de passe.
264
remote-cert-tls server
265
<ca>
266
-----BEGIN CERTIFICATE-----
267
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
303
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
304
-----END CERTIFICATE-----
305
</ca>
306
</pre>
307
308
309
310
+C:\Program Files\OpenVPN\config\illyse\credentials+
311
312
<pre>
313
jkleboulet-vpn1
314
omgsuchsecured123
315
</pre>
316 4 Fabien Michel
317
h2. Mac OS X
318
319
Installer le client OpenVPN Tunnelblick : https://code.google.com/p/tunnelblick/
320
321
Créer un fichier illyse.ovpn avec la configuration voulue. Celle indiquée ci-dessous fonctionne sans modification necessaire.
322
Double-cliquer sur le fichier afin que TunnelBlick import la configuration.
323
A la première connexion, il va demander un couple login/password qu'il sera possible de stocker dans le trousseau.
324
325
Paramètres modifiés par rapport à la configuration pour Linux :
326
* log-append : Ce paramètre n'est pas accepté. Mais tunnelblick log déjà en interne.
327
* 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
328
* 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)
329
330
+illyse.ovpn+
331
<pre>
332
client
333
dev tun0
334
proto udp
335
mssfix 1300
336
fragment 1300
337
explicit-exit-notify
338
remote vpn.illyse.net 1194
339
#http-proxy 192.0.2.1 8080
340
route-delay 2
341
nobind
342
343
persist-key
344
persist-tun
345
346
redirect-gateway def1
347
#route 80.67.160.0 255.255.224.0
348
349
tun-ipv6
350
route-ipv6 ::/1
351
route-ipv6 8000::/1
352
353
auth-user-pass
354
verb 3
355
356
remote-cert-tls server
357
<ca>
358
-----BEGIN CERTIFICATE-----
359
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
392 1 Pierre-Arnaud Poudret
LSVaB9OD7iVWkW5eo6ng3XA390HIUUtf/0IdtiCoMsjuZbVagfiaUu0kUJpR6d2k
393
r5czdLFhRu8uw0sWn1rMQXlUAqH0WAfoq8XinaHesWs5MEnvevjoUTkNhFnqe1Ra
394
rkwU9mzr1/N6GfpPalbveD0duTGAkJN5mwLZi+HZ4ctLgO1ShYFU/NbC7jNU3YCU
395
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
396
-----END CERTIFICATE-----
397
</ca>
398 4 Fabien Michel
399
</pre>
400 8 Baptiste Jonglez
401 9 Baptiste Jonglez
h1. Configurations avancées
402 8 Baptiste Jonglez
403 9 Baptiste Jonglez
h2. Client sans IP montée sur le tunnel
404 8 Baptiste Jonglez
405
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.
406 10 Baptiste Jonglez
407
h2. Utiliser simultanément la connexion normale et le VPN
408
409
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).
410
411
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).
412
413
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.
414
415
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 :)
416
(la configuration ci-dessous est similaire à http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting )
417
418
+/etc/openvpn/up.sh+
419
<pre>
420
#!/bin/bash
421
422
dev="$1"
423
tun_mtu="$2"
424
link_mtu="$3"
425
local_ip="$4"
426
remote_ip="$5"
427
428
# Routing table to use
429
table=4242
430
431
# Source-specific routing: use the normal default route by default,
432
# but use the VPN for replying to packets coming from the VPN.
433
# IPv4
434
[ -n "$local_ip" ] && ip rule add from "$local_ip" table "$table" && ip route add default dev "$dev" table "$table"
435
# IPv6
436
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule add from "$ifconfig_ipv6_local" table "$table" && ip -6 route add default dev "$dev" table "$table"
437
</pre>
438
439
+/etc/openvpn/down.sh+
440
<pre>
441
#!/bin/bash
442
443
dev="$1"
444
tun_mtu="$2"
445
link_mtu="$3"
446
local_ip="$4"
447
remote_ip="$5"
448
449
table=4242
450
451
# Delete table for source-specific routing.
452
[ -n "$local_ip" ] && ip rule del from "$local_ip" && ip route del default table "$table"
453
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule del from "$ifconfig_ipv6_local" && ip -6 route del default table "$table"
454
455
exit 0
456
</pre>
457
458
+/etc/openvpn/illyse.conf+
459
<pre>
460
## Configuration VPN Illyse pour accepter des connexions entrantes
461
## à la fois via le VPN et via la connexion normale, grâce au policy routing (Linux uniquement)
462
## https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user#Utiliser-simultanément-la-connexion-normale-et-le-VPN
463
464
# Gestion des routes via des scripts externes.
465
script-security 2
466
up up.sh
467
down down.sh
468
469
470
# Reste de la configuration normale.
471
# Penser à enlever "redirect-gateway" et "route-ipv6", on gère les
472
# routes via up.sh et down.sh
473
client
474
remote vpn.illyse.net 1194
475
#http-proxy 192.0.2.1 8080
476
dev tun0
477
478
#proto udp6
479
proto udp
480
#proto tcp
481
explicit-exit-notify
482
483
mssfix 1300
484
fragment 1300
485
486
route-delay 2
487
nobind
488
persist-key
489
persist-tun
490
491
tun-ipv6
492
493
auth-user-pass credentials
494
495
verb 3
496
log-append /var/log/openvpn-illyse.log
497
498
# Certificat permettant de vérifier que c'est bien à Illyse que
499
# l'on se connecte et donc à qui on donne notre mot de passe.
500
remote-cert-tls server
501
<ca>
502
-----BEGIN CERTIFICATE-----
503
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
539
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
540
-----END CERTIFICATE-----
541
</ca>
542
</pre>