Projet

Général

Profil

Vpn doc user » Historique » Version 28

Côme chillie, 06/10/2015 00:28

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 18 Nicolas Nadisic
h3. Avant de commencer 
12
13
Se connecter au SI d'Illyse avec le nom d'utilisateur communiqué par mail : "COIN.":https://coin.illyse.org/members/login/?next=/ Si c'est votre première connexion, choisir un mot de passe pour COIN et bien le retenir.
14
15 19 Nicolas Nadisic
Aller dans la catégorie "Abonnements". Si rien n'apparait alors que vous avez souscrit au VPN, contacter adminsys@illyse.org. A la ligne "VPN", cliquer sur "Configurer". Noter le nom d'utilisateur (le mieux est de le copier dans un fichier texte brut, nous verrons pourquoi ensuite). Générer un mot de passe et le copier dans le même fichier. Attention, si vous perdez votre mot de passe il faudra en générer un nouveau.
16 18 Nicolas Nadisic
17 11 Baptiste Jonglez
h2. Note importante sur la sécurité
18 1 Pierre-Arnaud Poudret
19 13 Rémi Bouhl
Le VPN Illyse fournit une **IPv4 publique** et de l'IPv6 (elle aussi publique, évidemment).  **Aucun pare-feu (firewall) n'est en place côté Illyse** : assurez-vous d'avoir un **pare-feu (firewall)** sur votre machine lorsque vous utilisez le VPN. 
20 14 Rémi Bouhl
De plus il est possible que votre pare-feu considère la connexion VPN comme faisant partie d'un réseau "privé" et abaisse le niveau de sécurité sur cette connexion. 
21 1 Pierre-Arnaud Poudret
22 13 Rémi Bouhl
Vous pourriez vous retrouver à exposer sur Internet, entre autres :
23
24 22 Baptiste Jonglez
* un serveur SSH, avec des mots de passe faibles,
25
* un serveur Web, avec une application en cours de développement,
26
* un serveur mail mal configuré, susceptible de relayer du spam (open-relay) et de provoquer rapidement l'inscription de votre adresse IP dans des listes noires (RBL),
27
* le protocole SMB sur les systèmes Microsoft Windows, qui permet entre autres d'accéder aux partages réseaux et aux imprimantes.
28 13 Rémi Bouhl
29
Gardez à l'esprit que votre adresse IPv4 publique sera l'objet de scans intensifs depuis Internet, surtout si elle est utilisée pour la première fois.
30
31
Illyse vous fournit un accès à Internet neutre, ce qui signifie entre autres que l'association ne se permet pas de décider à la place ses abonnés de ce qu'il faut filtrer sur leur connexion. 
32
 
33
N'hésitez pas à demander de l'aide, à poser des questions, dans l'association ou ailleurs, pour conserver la pleine maîtrise de votre connexion :)
34 11 Baptiste Jonglez
35 24 Baptiste Jonglez
h2. Paramètres de connexion OpenVPN
36 12 Baptiste Jonglez
37 23 Baptiste Jonglez
Si vous savez déjà utiliser OpenVPN, les informations les plus importantes sont les suivantes :
38
39
* *Serveur :* vpn.illyse.net
40
* *Protocole :* UDP recommandé, TCP possible
41
* *Port :* quelconque (1194 est le port standard OpenVPN, mais tous les ports mènent au serveur VPN)
42
* *Compression :* non
43
* *Fragmentation :* 1300 octets
44
* *TCP MSS fix :* 1300 octets
45
46
Notez donc que 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 !
47 12 Baptiste Jonglez
48
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
49
50 15 Rémi Bouhl
h1. Exemples de configuration.
51
52 17 Nicolas Nadisic
Ces exemples de fichiers de configuration sont là pour vous aider à vous connecter au VPN.
53
54
h2. GNU/Linux (Debian Wheezy)
55
56
h3. Pour les débutants 
57
58 20 Nicolas Nadisic
Installer OpenVPN : ouvrir un terminal et taper "sudo aptitude install openvpn". Se connecter en root dans le terminal ("sudo su") et se placer dans le répertoire /etc/openvpn/ ("cd /etc/openvpn/"). Créer le fichier texte nommé illyse.conf (nano illyse.conf) et copier dedans la configuration ci-dessous. Créer le fichier texte nommé credentials et y insérer le nom d'utilisateur et le mot de passe stockés précédemment (une ligne chacun, voir modèle ci-dessous).
59 17 Nicolas Nadisic
60
Lancer le VPN avec la commande "service openvpn start illyse" (besoin d'être root). Ça devrait fonctionner ! Si ce n'est pas le cas, vérifier les étapes précédentes, et la connexion Internet. Si ça ne fonctionne toujours pas, écrire un gentil mail à adminsys@illyse.org en joignant le rapport d'erreur situé ici : /var/log/openvpn-illyse.log. Pour stopper le VPN, taper la commande "service openvpn stop illyse". 
61
62
63
h3. Fichier de configuration OpenVPN
64
65 12 Baptiste Jonglez
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.
66 1 Pierre-Arnaud Poudret
67
+/etc/openvpn/illyse.conf+
68
<pre>
69
# C'est nous qui prenons l'initiative de nous connecter au serveur.
70
client
71
72
# On route de l'IP, on ne fait pas de l'ethernet.
73
dev tun0
74
75
# si on ne reçoit pas d'IP pour tun0:
76
# - soit on configure l'interface avec des ip privées bidon
77
#ifconfig 10.255.255.1 10.255.255.2
78
# - soit on utilise un script pour faire "ifconfig tun0 up"
79
#script-security 2
80
#up up.sh
81
82
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
83
# cependant notable que les restrictions d'accès Internet laissent souvent
84
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
85
# pas, essayez tcp.
86
87
# 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)
88
# 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.
89
#proto udp6
90
proto udp
91
#proto tcp
92
93
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
94
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
95
mssfix 1300
96
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
97
# quand ça dépasse.
98
fragment 1300
99
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
100
#mtu-disc yes
101
102
# En udp, Prévenir le serveur quand on termine, permet de relancer
103
# immédiatement sans attendre que le serveur se rende compte de la
104
# déconnexion par timeout.
105
explicit-exit-notify
106
107
# L'adresse du serveur.
108
remote vpn.illyse.net 1194
109
110
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
111
#http-proxy 192.0.2.1 8080
112
113
# Attendre un peu avant d'ajouter les routes.
114
route-delay 2
115
116
# Ne pas utiliser un port local statique, on est client de toutes façons.
117
nobind
118
119
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
120
# redémarrage.
121
persist-key
122
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
123
#persist-tun
124
125
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
126
redirect-gateway def1
127
128
# On peut aussi vouloir plutôt router seulement quelques destinations, par
129
# exemple ici tout Gitoyen:
130
#route 80.67.160.0 255.255.224.0
131
132 5 Baptiste Jonglez
# Activer IPv6 dans le tunnel
133 1 Pierre-Arnaud Poudret
tun-ipv6
134 5 Baptiste Jonglez
# et faire passer tout le trafic IPv6 via le VPN:
135 1 Pierre-Arnaud Poudret
route-ipv6 ::/1
136
route-ipv6 8000::/1
137
138
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
139
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
140
# fichier contenant ces deux informations, une par ligne.
141
auth-user-pass credentials
142
143
# Un minimum de debug, c'est toujours bien.
144
verb 3
145
146
log-append /var/log/openvpn-illyse.log
147
148
# Certificat permettant de vérifier que c'est bien à Illyse que
149
# l'on se connecte et donc à qui on donne notre mot de passe.
150
remote-cert-tls server
151
<ca>
152
-----BEGIN CERTIFICATE-----
153
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
189
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
190
-----END CERTIFICATE-----
191
</ca>
192
</pre>
193
194
195
+/etc/openvpn/credentials+
196
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.)
197
198
Spécifier login et mot de passe sur deux lignes différences.
199
200
<pre>
201
jkleboulet-vpn1
202
omgsuchsecured123
203
</pre>
204
205
206 3 Pierre-Arnaud Poudret
h3. Mise à jour automatique de resolv.conf
207
208
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
209
210
<pre>
211
<mit-mit> Bon, ça marche, faut ajouter à la config :
212
<mit-mit> script-security 2
213
<mit-mit> up /etc/openvpn/update-resolv-conf
214
<mit-mit> down /etc/openvpn/update-resolv-conf
215
<mit-mit> et avoir resolvconf d'installé.
216
<mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes)
217
</pre>
218
219 26 Côme chillie
h2. GNU/Linux (Network Manager)
220
221
Il est possible de configurer graphiquement le VPN via Network Manager.
222
(J’utilise la version KDE, des détails peuvent varier si vous utilisez la version gtk)
223
224 27 Côme chillie
Créez un fichier vpn-illyse.crt et copiez dedans le certificat suivant :
225
<pre>
226
-----BEGIN CERTIFICATE-----
227
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
263
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
264
-----END CERTIFICATE-----
265
</pre>
266 28 Côme chillie
Installez le backend openvpn pour Network Manager, puis créez une nouvelle connexion de type openvpn.
267 27 Côme chillie
Complétez comme suit, indiquez le chemin du fichier crt, votre login et votre mot de passe VPN :
268 1 Pierre-Arnaud Poudret
!vpn1.png!
269 27 Côme chillie
Cliquez sur «Avancé», mettez 1300 dans «Taille du fragment UDP» et cochez «Restreindre la taille maximale du segment TCP (MSS)»
270
!vpn2.png!
271 3 Pierre-Arnaud Poudret
272 1 Pierre-Arnaud Poudret
h2. Windows XP
273 2 Pierre-Arnaud Poudret
274
+C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+
275
<pre>
276
# C'est nous qui prenons l'initiative de nous connecter au serveur.
277
client
278
279
# On route de l'IP, on ne fait pas de l'ethernet.
280
dev tun0
281
282
# si on ne reçoit pas d'IP pour tun0:
283
# - soit on configure l'interface avec des ip privées bidon
284
#ifconfig 10.255.255.1 10.255.255.2
285
# - soit on utilise un script pour faire "ifconfig tun0 up"
286
#script-security 2
287
#up up.sh
288
289
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
290
# cependant notable que les restrictions d'accès Internet laissent souvent
291
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
292
# pas, essayez tcp.
293
294
#proto udp6
295
proto udp
296
#proto tcp
297
298
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
299
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
300
mssfix 1300
301
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
302
# quand ça dépasse.
303
fragment 1300
304
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
305
#mtu-disc yes
306
307
#mtu-test
308
#link-mtu 1300
309
#tun-mtu 1300
310
311
# En udp, Prévenir le serveur quand on termine, permet de relancer
312
# immédiatement sans attendre que le serveur se rende compte de la
313
# déconnexion par timeout.
314
explicit-exit-notify
315
316
# L'adresse du serveur.
317
remote vpn.illyse.net 1194
318
319
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
320
#http-proxy 192.0.2.1 8080
321
322
# Pour windows: utiliser route.exe.
323
route-method exe
324
325
# Attendre un peu avant d'ajouter les routes.
326
route-delay 2
327
328
# Ne pas utiliser un port local statique, on est client de toutes façons.
329
nobind
330
331
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
332
# redémarrage.
333
persist-key
334
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
335
#persist-tun
336
337
#ip-win32 ipapi
338
339
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
340 1 Pierre-Arnaud Poudret
redirect-gateway def1
341 2 Pierre-Arnaud Poudret
342 1 Pierre-Arnaud Poudret
# On peut aussi vouloir plutôt router seulement quelques destinations, par
343 2 Pierre-Arnaud Poudret
# exemple ici tout Gitoyen:
344
#route 80.67.160.0 255.255.224.0
345
346 5 Baptiste Jonglez
# Activer IPv6 dans le VPN
347 2 Pierre-Arnaud Poudret
tun-ipv6
348 5 Baptiste Jonglez
# Faire passer tout le trafic IPv6 via le VPN:
349 2 Pierre-Arnaud Poudret
route-ipv6 ::/1
350
route-ipv6 8000::/1
351
352
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
353
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
354
# fichier contenant ces deux informations, une par ligne.
355
auth-user-pass credentials
356
357
# Un minimum de debug, c'est toujours bien.
358
verb 3
359
360
#log-append /var/log/openvpn-illyse.log
361
362
# Certificat permettant de vérifier que c'est bien à Illyse que
363
# l'on se connecte et donc à qui on donne notre mot de passe.
364
remote-cert-tls server
365
<ca>
366
-----BEGIN CERTIFICATE-----
367
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
403
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
404
-----END CERTIFICATE-----
405
</ca>
406
</pre>
407
408
409
410
+C:\Program Files\OpenVPN\config\illyse\credentials+
411
412
<pre>
413
jkleboulet-vpn1
414
omgsuchsecured123
415
</pre>
416 4 Fabien Michel
417
h2. Mac OS X
418
419
Installer le client OpenVPN Tunnelblick : https://code.google.com/p/tunnelblick/
420
421
Créer un fichier illyse.ovpn avec la configuration voulue. Celle indiquée ci-dessous fonctionne sans modification necessaire.
422
Double-cliquer sur le fichier afin que TunnelBlick import la configuration.
423
A la première connexion, il va demander un couple login/password qu'il sera possible de stocker dans le trousseau.
424
425
Paramètres modifiés par rapport à la configuration pour Linux :
426
* log-append : Ce paramètre n'est pas accepté. Mais tunnelblick log déjà en interne.
427
* 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
428
* 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)
429
430
+illyse.ovpn+
431
<pre>
432
client
433
dev tun0
434
proto udp
435
mssfix 1300
436
fragment 1300
437
explicit-exit-notify
438
remote vpn.illyse.net 1194
439
#http-proxy 192.0.2.1 8080
440
route-delay 2
441
nobind
442
443
persist-key
444
persist-tun
445
446
redirect-gateway def1
447
#route 80.67.160.0 255.255.224.0
448
449
tun-ipv6
450
route-ipv6 ::/1
451
route-ipv6 8000::/1
452
453
auth-user-pass
454
verb 3
455
456
remote-cert-tls server
457
<ca>
458
-----BEGIN CERTIFICATE-----
459
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
492 1 Pierre-Arnaud Poudret
LSVaB9OD7iVWkW5eo6ng3XA390HIUUtf/0IdtiCoMsjuZbVagfiaUu0kUJpR6d2k
493
r5czdLFhRu8uw0sWn1rMQXlUAqH0WAfoq8XinaHesWs5MEnvevjoUTkNhFnqe1Ra
494
rkwU9mzr1/N6GfpPalbveD0duTGAkJN5mwLZi+HZ4ctLgO1ShYFU/NbC7jNU3YCU
495
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
496
-----END CERTIFICATE-----
497
</ca>
498 15 Rémi Bouhl
499
</pre>
500
501
502
h2. Android 
503
504
Configuration OpenVPN pour Android (testé sous Android 4.4.4 et OpenVPN for Android v0.6.17)
505
Ci-après un fichier de configuration qui devrait fonctionner avec l'application Android OpenVPN for Android, 
506
Disponible sur F-Droid : https://f-droid.org/repository/browse/?fdfilter=openvpn&fdid=de.blinkt.openvpn
507
Ou au pire sur le PlayStore : https://play.google.com/store/apps/details?id=de.blinkt.openvpn
508
Posez le fichier de configuration, renommé en VPN-Illyse.conf par exemple, sur l'appareil.
509
Une fois l'application installée et démarrée, cliquez sur le dossier en bas à droite et chezchez le fichier de configuration.
510
Il suffit de renseigner les identifiants.
511
512
<pre>
513 16 Rémi Bouhl
514 15 Rémi Bouhl
#
515
# Fichier de configuration VPN Illyse pour Android
516
# 2014-10-14
517
#
518
# Enables connection to GUI
519
management /data/data/de.blinkt.openvpn/cache/mgmtsocket unix
520
management-client
521
management-query-passwords
522
management-hold
523
setenv IV_GUI_VER "de.blinkt.openvpn 0.6.17" 
524
machine-readable-output
525
client
526
verb 4
527
connect-retry-max 5
528
connect-retry 5
529
resolv-retry 60
530
dev tun
531
remote vpn.illyse.net 1194 udp
532
auth-user-pass
533
route-ipv6 ::/0
534
route 0.0.0.0 0.0.0.0 vpn_gateway
535
remote-cert-tls server
536
persist-tun
537
# persist-tun also enables pre resolving to avoid DNS resolve problem
538
preresolve
539
# Use system proxy setting
540
management-query-proxy
541
# Custom configuration options
542
# You are on your on own here 
543
mssfix 1300 
544
fragment 1300
545
<ca>
546
-----BEGIN CERTIFICATE-----
547
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
583
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
584
-----END CERTIFICATE-----
585
</ca>
586 16 Rémi Bouhl
587 4 Fabien Michel
588
</pre>
589 8 Baptiste Jonglez
590 9 Baptiste Jonglez
h1. Configurations avancées
591 8 Baptiste Jonglez
592 9 Baptiste Jonglez
h2. Client sans IP montée sur le tunnel
593 8 Baptiste Jonglez
594 25 Baptiste Jonglez
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.  Ça peut être utile si on ne veut pas utiliser l'IPv4 publique Illyse directement sur le routeur qui monte le VPN, mais sur une autre machine du réseau local.
595 1 Pierre-Arnaud Poudret
596 25 Baptiste Jonglez
Attention, si il n'y a pas d'IPv4 installée sur l'interface tun, OpenVPN est très bête et n'arrivera pas à installer la route par défaut par le VPN... OpenVPN essaie d'ajouter des routes avec 89.234.140.129 comme gateway, mais il ne sait pas joindre cette IP.  Pour résoudre la stupidité d'OpenVPN^W^W^W ce problème, on utilise un script qui rajoute la route :
597
598
+/etc/openvpn/illyse.conf+
599
<pre>
600
...
601
route-delay 2
602
redirect-gateway def1
603
604
script-security 2
605
up illyse-up.sh
606
...
607
</pre>
608
609
+/etc/openvpn/illyse-up.sh+
610
<pre>
611
#!/bin/sh
612
tun_dev="$1"
613
ip link set "$tun_dev" up
614
ip route add "$route_vpn_gateway" dev "$tun_dev"
615
exit 0
616
</pre>
617
618
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut par la connexion normale
619 10 Baptiste Jonglez
620
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).
621
622
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).
623
624
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.
625
626
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 :)
627
(la configuration ci-dessous est similaire à http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting )
628
629
+/etc/openvpn/up.sh+
630
<pre>
631
#!/bin/bash
632
633
dev="$1"
634
tun_mtu="$2"
635
link_mtu="$3"
636
local_ip="$4"
637
remote_ip="$5"
638
639
# Routing table to use
640
table=4242
641
642
# Source-specific routing: use the normal default route by default,
643
# but use the VPN for replying to packets coming from the VPN.
644
# IPv4
645
[ -n "$local_ip" ] && ip rule add from "$local_ip" table "$table" && ip route add default dev "$dev" table "$table"
646
# IPv6
647
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule add from "$ifconfig_ipv6_local" table "$table" && ip -6 route add default dev "$dev" table "$table"
648
</pre>
649
650
+/etc/openvpn/down.sh+
651
<pre>
652
#!/bin/bash
653
654
dev="$1"
655
tun_mtu="$2"
656
link_mtu="$3"
657
local_ip="$4"
658
remote_ip="$5"
659
660
table=4242
661
662
# Delete table for source-specific routing.
663
[ -n "$local_ip" ] && ip rule del from "$local_ip" && ip route del default table "$table"
664
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule del from "$ifconfig_ipv6_local" && ip -6 route del default table "$table"
665
666
exit 0
667
</pre>
668
669
+/etc/openvpn/illyse.conf+
670
<pre>
671
## Configuration VPN Illyse pour accepter des connexions entrantes
672
## à la fois via le VPN et via la connexion normale, grâce au policy routing (Linux uniquement)
673
## https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user#Utiliser-simultanément-la-connexion-normale-et-le-VPN
674
675
# Gestion des routes via des scripts externes.
676
script-security 2
677
up up.sh
678
down down.sh
679
680
681
# Reste de la configuration normale.
682
# Penser à enlever "redirect-gateway" et "route-ipv6", on gère les
683
# routes via up.sh et down.sh
684
client
685
remote vpn.illyse.net 1194
686
#http-proxy 192.0.2.1 8080
687
dev tun0
688
689
#proto udp6
690
proto udp
691
#proto tcp
692
explicit-exit-notify
693
694
mssfix 1300
695
fragment 1300
696
697
route-delay 2
698
nobind
699
persist-key
700
persist-tun
701
702
tun-ipv6
703
704
auth-user-pass credentials
705
706
verb 3
707
log-append /var/log/openvpn-illyse.log
708
709
# Certificat permettant de vérifier que c'est bien à Illyse que
710
# l'on se connecte et donc à qui on donne notre mot de passe.
711
remote-cert-tls server
712
<ca>
713
-----BEGIN CERTIFICATE-----
714
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
750
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
751
-----END CERTIFICATE-----
752
</ca>
753
</pre>
754 21 Mit Mit
755
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN
756
757
Dans la configuration précédente, les deux IPs, FAI et VPN, sont accessibles de l'extérieur et répondent correctement.
758
La machine toutefois utilise par défaut la sortie FAI plutôt que le VPN.
759
Le cas décrit ici a son IP FAI obtenue par DHCP, avec la table de routage main, et sans IPv6.
760
Il faut bidouiller les routes pour que si on contacte l'IP du serveur VPN, on passe bien par l'IP FAI et l'interface qui correspond, puis répondre à ce qui vient de l'IP FAI par la table main, et enfin par défaut sortir par le table correspondant au VPN.
761
762
Étape 1, dans le fichier illyse.conf, il faut ajouter l'option 'ifconfig-noexec' pour éviter qu'openVPN ne monte l'IP du VPN avant qu'on ne gère ça dans le script up.sh
763
Étape 2, changer les scripts up.sh et down.s. Actuellement, on n'a pas trouvé de solution propre pour éviter de coder en dur des paramètres dans ce scripts.
764
+/etc/openvpn/up.conf+
765
<pre>
766
#!/bin/bash
767
768
dev="$1"
769
isp_dev="eth0"
770
tun_mtu="$2"
771
link_mtu="$3"
772
local_ip="$4"
773
remote_ip="$5"
774
isp_ip="WWW.XXX.YYY.ZZZ"
775
isp_gateway="WWW.XXX.YYY.ZZZ"
776
vpn_server="89.234.140.3"
777
778
# Routing table to use
779
tableVPN=4242
780
tableLOC=1337
781
782
# IP inconnue de COIN, donc tun0 à monter
783
ip link set "$dev" up
784
ip addr add "$local_ip"/32 dev "$dev"
785
786
# Source-specific routing: use the normal default route by default,
787
# but use the VPN for replying to packets coming from the VPN.
788
# IPv4
789
if [ -n "local_ip" ]; then
790
  ip rule add pref 31000 lookup "$tableLOC"
791
  ip rule add pref 31050 from "$isp_ip" lookup main
792
  ip rule add pref 31100 lookup "$tableVPN"
793
  ip route add default dev "$dev" table "$tableVPN"
794
  ip route add "$vpn_server" via "$isp_gateway" table "$tableLOC" dev "$isp_dev"
795
fi
796
797
# IPv6
798
[ -n "$ifconfig_ipv6_local" ] && ip -6 addr add "$ifconfig_ipv6_local" dev "$dev" && ip -6 route add default dev "$dev"
799
800
exit 0
801
</pre>
802
803
+/etc/openvpn/down.conf+
804
<pre>
805
dev="$1"
806
tun_mtu="$2"
807
link_mtu="$3"
808
local_ip="$4"
809
remote_ip="$5"
810
isp_ip="WWW.XXX.YYY.ZZZ"
811
isp_gateway="WWW.XXX.YYY.ZZZ"
812
vpn_server="89.234.140.3"
813
814
# Routing table to use
815
tableVPN=4242
816
tableLOC=1337
817
818
# Delete table for source-specific routing.
819
if [ "$local_ip" ]; then
820
  ip route del "$vpn_server" via "$isp_gateway" table "$tableLOC"
821
  ip route del default dev "$dev" table "$tableVPN"
822
  ip rule del pref 31100 lookup "$tableVPN"
823
  ip rule del pref 31050 from "$isp_ip" lookup main
824
  ip rule del pref 31000 lookup "$tableLOC"
825
fi
826
827
[ -n "$ifconfig_ipv6_local" ] && ip -6 route del default dev "$dev" && ip -6 addr del "$ifconfig_ipv6_local" dev "$dev"
828
829
exit 0
830
</pre>