Projet

Général

Profil

Vpn doc user » Historique » Version 67

Mossroy Mossroy, 05/03/2021 11:38
Précision sur la bande passante atteinte en wireguard avec un Turris Mox

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 44 Florent Guillot
Aller dans la catégorie "Mes Abonnements". Si rien n’apparaît alors que vous avez souscrit au VPN, contacter adminsys@illyse.org.
16
17
A la ligne "VPN", cliquer sur "*Configuration*". 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.
18
Si on installe le VPN sur une "brique internet":https://labriqueinter.net/ , noter aussi l'adresse IPv4 et l'adresse IPv6 liées à votre VPN.
19 18 Nicolas Nadisic
20 11 Baptiste Jonglez
h2. Note importante sur la sécurité
21 1 Pierre-Arnaud Poudret
22 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. 
23 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. 
24 1 Pierre-Arnaud Poudret
25 13 Rémi Bouhl
Vous pourriez vous retrouver à exposer sur Internet, entre autres :
26
27 22 Baptiste Jonglez
* un serveur SSH, avec des mots de passe faibles,
28
* un serveur Web, avec une application en cours de développement,
29
* 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),
30
* le protocole SMB sur les systèmes Microsoft Windows, qui permet entre autres d'accéder aux partages réseaux et aux imprimantes.
31 13 Rémi Bouhl
32
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.
33
34
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. 
35
 
36
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 :)
37 11 Baptiste Jonglez
38 24 Baptiste Jonglez
h2. Paramètres de connexion OpenVPN
39 12 Baptiste Jonglez
40 23 Baptiste Jonglez
Si vous savez déjà utiliser OpenVPN, les informations les plus importantes sont les suivantes :
41
42
* *Serveur :* vpn.illyse.net
43
* *Protocole :* UDP recommandé, TCP possible
44
* *Port :* quelconque (1194 est le port standard OpenVPN, mais tous les ports mènent au serveur VPN)
45
* *Compression :* non
46
* *Fragmentation :* 1300 octets
47
* *TCP MSS fix :* 1300 octets
48
49
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 !
50 12 Baptiste Jonglez
51
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
52
53 15 Rémi Bouhl
h1. Exemples de configuration.
54
55 17 Nicolas Nadisic
Ces exemples de fichiers de configuration sont là pour vous aider à vous connecter au VPN.
56
57 53 Florent Guillot
h2. GNU/Linux (Debian Stretch)
58 17 Nicolas Nadisic
59
h3. Pour les débutants 
60 1 Pierre-Arnaud Poudret
61 53 Florent Guillot
* Installer OpenVPN : ouvrir un terminal et taper "sudo apt install openvpn". 
62 56 Florent Guillot
* Créer le fichier de configuration openvpn: "sudo nano /etc/openvpn/illyse.conf" Copier dedans la configuration [[Vpn_doc_user#etcopenvpnillyseconf|ci-dessous]].
63 53 Florent Guillot
* Fermer nano en utilisant Ctrl + X, suivi de la touche "O" pour indiquer que l'on souhaite sauvegarder.
64 1 Pierre-Arnaud Poudret
65 56 Florent Guillot
* Créer le fichier texte nommé credentials ("sudo nano /etc/openvpn/credentials") et y insérer le nom d'utilisateur et le mot de passe donnés par COIN (une ligne chacun, voir modèle [[Vpn_doc_user#etcopenvpncredentials|ci-dessous]]).
66 53 Florent Guillot
* Lancer le VPN avec la commande "sudo systemctl start openvpn@illyse". Ça devrait fonctionner ! 
67
* Pour que le VPN se lance automatiquement à chaque démarrage, utiliser la commande "sudo systemctl enable openvpn@illyse"
68
69
Pour vérifier si le VPN est bien lancé, une méthode simple est d'utiliser un site comme http://www.test-ipv6.com/ qui donne les adresses IP utilisées par son PC pour sortir sur internet. Si l'on passes bien par le VPN, on retrouve ses IP Illyse (aussi affichées par COIN).
70
71
En cas de problème, vérifier les étapes précédentes, et la connexion Internet. Si ça ne fonctionne toujours pas, écrire un gentil mail à support@illyse.org en donnant le résultat des deux commandes suivantes : 
72
- sudo systemctl status openvpn@illyse
73
- sudo tail -f -n 100 /var/log/openvpn-illyse.log
74
75
76 55 Florent Guillot
Pour stopper le VPN, taper la commande "sudo systemctl stop openvpn@illyse". (et "sudo systemctl disable openvpn@illyse" si l'on ne veut plus que le VPN se lance automatiquement au démarrage du PC)
77 17 Nicolas Nadisic
78
h3. Fichier de configuration OpenVPN
79
80 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.
81 1 Pierre-Arnaud Poudret
82 54 Florent Guillot
h4. +/etc/openvpn/illyse.conf+
83
84 1 Pierre-Arnaud Poudret
<pre>
85
# C'est nous qui prenons l'initiative de nous connecter au serveur.
86
client
87
88
# On route de l'IP, on ne fait pas de l'ethernet.
89
dev tun0
90
91
# si on ne reçoit pas d'IP pour tun0:
92
# - soit on configure l'interface avec des ip privées bidon
93
#ifconfig 10.255.255.1 10.255.255.2
94
# - soit on utilise un script pour faire "ifconfig tun0 up"
95
#script-security 2
96
#up up.sh
97
98
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
99
# cependant notable que les restrictions d'accès Internet laissent souvent
100
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
101
# pas, essayez tcp.
102
103
# 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)
104
# 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.
105
#proto udp6
106
proto udp
107
#proto tcp
108
109
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
110
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
111
mssfix 1300
112
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
113
# quand ça dépasse.
114
fragment 1300
115
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
116
#mtu-disc yes
117
118
# En udp, Prévenir le serveur quand on termine, permet de relancer
119
# immédiatement sans attendre que le serveur se rende compte de la
120
# déconnexion par timeout.
121
explicit-exit-notify
122
123
# L'adresse du serveur.
124
remote vpn.illyse.net 1194
125
126
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
127
#http-proxy 192.0.2.1 8080
128
129
# Attendre un peu avant d'ajouter les routes.
130
route-delay 2
131
132
# Ne pas utiliser un port local statique, on est client de toutes façons.
133
nobind
134
135
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
136
# redémarrage.
137
persist-key
138
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
139
#persist-tun
140
141
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
142
redirect-gateway def1
143
144
# On peut aussi vouloir plutôt router seulement quelques destinations, par
145
# exemple ici tout Gitoyen:
146
#route 80.67.160.0 255.255.224.0
147
148 5 Baptiste Jonglez
# Activer IPv6 dans le tunnel
149 1 Pierre-Arnaud Poudret
tun-ipv6
150 5 Baptiste Jonglez
# et faire passer tout le trafic IPv6 via le VPN:
151 1 Pierre-Arnaud Poudret
route-ipv6 ::/1
152
route-ipv6 8000::/1
153
154
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
155
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
156
# fichier contenant ces deux informations, une par ligne.
157
auth-user-pass credentials
158
159 36 Alarig Le Lay
# Retenter le l’authentification même si le serveur la refuse (utile pour
160
# éviter de faire mourir le client si le serveur LDAP ne répond pas)
161
auth-retry nointeract
162
163 1 Pierre-Arnaud Poudret
# Un minimum de debug, c'est toujours bien.
164
verb 3
165
166
log-append /var/log/openvpn-illyse.log
167
168
# Certificat permettant de vérifier que c'est bien à Illyse que
169
# l'on se connecte et donc à qui on donne notre mot de passe.
170
remote-cert-tls server
171
<ca>
172
-----BEGIN CERTIFICATE-----
173
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
209
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
210
-----END CERTIFICATE-----
211
</ca>
212
</pre>
213
214
215 57 Florent Guillot
h4. +/etc/openvpn/credentials+
216
217 1 Pierre-Arnaud Poudret
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.)
218
219
Spécifier login et mot de passe sur deux lignes différences.
220
221
<pre>
222
jkleboulet-vpn1
223
omgsuchsecured123
224
</pre>
225
226
227 3 Pierre-Arnaud Poudret
h3. Mise à jour automatique de resolv.conf
228
229
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
230
231
<pre>
232
<mit-mit> Bon, ça marche, faut ajouter à la config :
233
<mit-mit> script-security 2
234
<mit-mit> up /etc/openvpn/update-resolv-conf
235
<mit-mit> down /etc/openvpn/update-resolv-conf
236
<mit-mit> et avoir resolvconf d'installé.
237
<mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes)
238
</pre>
239
240 26 Côme chillie
h2. GNU/Linux (Network Manager)
241
242
Il est possible de configurer graphiquement le VPN via Network Manager.
243
(J’utilise la version KDE, des détails peuvent varier si vous utilisez la version gtk)
244
245 31 Florent Guillot
Téléchargez le fichier attachment:vpn-illyse.crt.
246
247 28 Côme chillie
Installez le backend openvpn pour Network Manager, puis créez une nouvelle connexion de type openvpn.
248 27 Côme chillie
Complétez comme suit, indiquez le chemin du fichier crt, votre login et votre mot de passe VPN :
249 1 Pierre-Arnaud Poudret
!vpn1.png!
250 62 Mossroy Mossroy
Il faut éviter de mettre le fichier crt dans un répertoire contenant un espace (suivant les versions, cela peut poser problème)
251
252 27 Côme chillie
Cliquez sur «Avancé», mettez 1300 dans «Taille du fragment UDP» et cochez «Restreindre la taille maximale du segment TCP (MSS)»
253
!vpn2.png!
254 62 Mossroy Mossroy
255
En cas de problème, regardez dans les logs (/var/log/syslog, au moins avec Ubuntu).
256
257 3 Pierre-Arnaud Poudret
258 29 Côme chillie
h2. Windows
259 1 Pierre-Arnaud Poudret
260 29 Côme chillie
Installez OpenVPN, par exemple en suivant la documentation présente ici : http://www.rezine.org/documentation/tunnels_chiffres/#index4h1
261
262
Créez ensuite le fichier suivant.  
263
Faites attention à l’extension des fichiers : parfois Windows ajoute une extension .txt aux fichiers sans le dire.
264
265 2 Pierre-Arnaud Poudret
+C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+
266
<pre>
267
# C'est nous qui prenons l'initiative de nous connecter au serveur.
268
client
269
270
# On route de l'IP, on ne fait pas de l'ethernet.
271
dev tun0
272
273
# si on ne reçoit pas d'IP pour tun0:
274
# - soit on configure l'interface avec des ip privées bidon
275
#ifconfig 10.255.255.1 10.255.255.2
276
# - soit on utilise un script pour faire "ifconfig tun0 up"
277
#script-security 2
278
#up up.sh
279
280
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
281
# cependant notable que les restrictions d'accès Internet laissent souvent
282
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
283
# pas, essayez tcp.
284
285
#proto udp6
286
proto udp
287
#proto tcp
288
289
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
290
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
291
mssfix 1300
292
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
293
# quand ça dépasse.
294
fragment 1300
295
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
296
#mtu-disc yes
297
298
#mtu-test
299
#link-mtu 1300
300
#tun-mtu 1300
301
302
# En udp, Prévenir le serveur quand on termine, permet de relancer
303
# immédiatement sans attendre que le serveur se rende compte de la
304
# déconnexion par timeout.
305
explicit-exit-notify
306
307
# L'adresse du serveur.
308
remote vpn.illyse.net 1194
309
310
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
311
#http-proxy 192.0.2.1 8080
312
313
# Pour windows: utiliser route.exe.
314
route-method exe
315
316
# Attendre un peu avant d'ajouter les routes.
317
route-delay 2
318
319
# Ne pas utiliser un port local statique, on est client de toutes façons.
320
nobind
321
322
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
323
# redémarrage.
324
persist-key
325
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
326
#persist-tun
327
328
#ip-win32 ipapi
329
330
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
331 1 Pierre-Arnaud Poudret
redirect-gateway def1
332 2 Pierre-Arnaud Poudret
333 1 Pierre-Arnaud Poudret
# On peut aussi vouloir plutôt router seulement quelques destinations, par
334 2 Pierre-Arnaud Poudret
# exemple ici tout Gitoyen:
335
#route 80.67.160.0 255.255.224.0
336
337 5 Baptiste Jonglez
# Activer IPv6 dans le VPN
338 2 Pierre-Arnaud Poudret
tun-ipv6
339 5 Baptiste Jonglez
# Faire passer tout le trafic IPv6 via le VPN:
340 2 Pierre-Arnaud Poudret
route-ipv6 ::/1
341
route-ipv6 8000::/1
342
343
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
344
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
345
# fichier contenant ces deux informations, une par ligne.
346
auth-user-pass credentials
347
348
# Un minimum de debug, c'est toujours bien.
349
verb 3
350
351
#log-append /var/log/openvpn-illyse.log
352
353
# Certificat permettant de vérifier que c'est bien à Illyse que
354
# l'on se connecte et donc à qui on donne notre mot de passe.
355
remote-cert-tls server
356
<ca>
357
-----BEGIN CERTIFICATE-----
358
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
394
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
395
-----END CERTIFICATE-----
396
</ca>
397
</pre>
398 1 Pierre-Arnaud Poudret
399 29 Côme chillie
Il est également possible de créer un fichier contenant vos logins et mots de passe pour éviter de les taper à chaque connexion. Par exemple :
400 2 Pierre-Arnaud Poudret
401
+C:\Program Files\OpenVPN\config\illyse\credentials+
402
403
<pre>
404
jkleboulet-vpn1
405 1 Pierre-Arnaud Poudret
omgsuchsecured123
406
</pre>
407 29 Côme chillie
408
Si vous ne voulez pas utiliser un tel fichier, commentez la ligne «auth-user-pass credentials» dans la configuration.
409 4 Fabien Michel
410
h2. Mac OS X
411
412
Installer le client OpenVPN Tunnelblick : https://code.google.com/p/tunnelblick/
413
414
Créer un fichier illyse.ovpn avec la configuration voulue. Celle indiquée ci-dessous fonctionne sans modification necessaire.
415
Double-cliquer sur le fichier afin que TunnelBlick import la configuration.
416
A la première connexion, il va demander un couple login/password qu'il sera possible de stocker dans le trousseau.
417
418
Paramètres modifiés par rapport à la configuration pour Linux :
419
* log-append : Ce paramètre n'est pas accepté. Mais tunnelblick log déjà en interne.
420
* 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
421
* 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)
422
423
+illyse.ovpn+
424
<pre>
425
client
426
dev tun0
427
proto udp
428
mssfix 1300
429
fragment 1300
430
explicit-exit-notify
431
remote vpn.illyse.net 1194
432
#http-proxy 192.0.2.1 8080
433
route-delay 2
434
nobind
435
436
persist-key
437
persist-tun
438
439
redirect-gateway def1
440
#route 80.67.160.0 255.255.224.0
441
442
tun-ipv6
443
route-ipv6 ::/1
444
route-ipv6 8000::/1
445
446
auth-user-pass
447
verb 3
448
449
remote-cert-tls server
450
<ca>
451
-----BEGIN CERTIFICATE-----
452
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
485 1 Pierre-Arnaud Poudret
LSVaB9OD7iVWkW5eo6ng3XA390HIUUtf/0IdtiCoMsjuZbVagfiaUu0kUJpR6d2k
486
r5czdLFhRu8uw0sWn1rMQXlUAqH0WAfoq8XinaHesWs5MEnvevjoUTkNhFnqe1Ra
487
rkwU9mzr1/N6GfpPalbveD0duTGAkJN5mwLZi+HZ4ctLgO1ShYFU/NbC7jNU3YCU
488
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
489
-----END CERTIFICATE-----
490
</ca>
491 15 Rémi Bouhl
492
</pre>
493
494
h2. Android 
495 1 Pierre-Arnaud Poudret
496 61 Florent Guillot
Configuration OpenVPN pour Android (testé sous Android 7.0 et OpenVPN for Android 0.7.5)
497
Ci-après un fichier de configuration qui devrait fonctionner avec l'application Android "OpenVPN for Android", 
498
Disponible sur F-Droid : https://f-droid.org/en/packages/de.blinkt.openvpn/
499 15 Rémi Bouhl
Ou au pire sur le PlayStore : https://play.google.com/store/apps/details?id=de.blinkt.openvpn
500 61 Florent Guillot
Posez le fichier de configuration, renommé en VPN-Illyse.ovpn par exemple, sur l'appareil.
501 15 Rémi Bouhl
Une fois l'application installée et démarrée, cliquez sur le dossier en bas à droite et chezchez le fichier de configuration.
502
Il suffit de renseigner les identifiants.
503 1 Pierre-Arnaud Poudret
504 15 Rémi Bouhl
<pre>
505 1 Pierre-Arnaud Poudret
506
#
507
# Fichier de configuration VPN Illyse pour Android
508 61 Florent Guillot
# 2018-09-02
509 15 Rémi Bouhl
#
510
client
511 61 Florent Guillot
dev tun0
512
proto udp
513
mssfix 1300
514
fragment 1300
515
explicit-exit-notify
516
517
remote vpn.illyse.net 1194
518
route-delay 2
519
nobind
520
521
persist-key
522
redirect-gateway def1
523
524
tun-ipv6
525
route-ipv6 ::/1
526
route-ipv6 8000::/1
527
528 15 Rémi Bouhl
auth-user-pass
529 61 Florent Guillot
auth-retry nointeract
530 15 Rémi Bouhl
remote-cert-tls server
531
<ca>
532
-----BEGIN CERTIFICATE-----
533
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
569
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
570 16 Rémi Bouhl
-----END CERTIFICATE-----
571 4 Fabien Michel
</ca>
572
573 8 Baptiste Jonglez
</pre>
574 30 Florent Guillot
575
h2. Yunohost
576 32 Florent Guillot
577 30 Florent Guillot
h3. Installer le client VPN
578 32 Florent Guillot
579
* Dans Applications > Install, en bas de la page, entrer 'https://github.com/labriqueinternet/vpnclient_ynh' dans le champ *Install custom app*.
580
* Lire et valider l'avertissement.
581 1 Pierre-Arnaud Poudret
* Valider l'installation en cliquant sur le bouton *Install*
582 40 Florent Guillot
583 34 Florent Guillot
h3. Configurer le client VPN
584 51 Florent Guillot
585 39 Florent Guillot
h4. Méthode automatique, ".cube"
586
587 41 Florent Guillot
Le .cube est un fichier permettant de configurer l'application vpn-client automatiquement. Idéalement, ce fichier devrait être automatiquement généré pour chaque adhérant dans notre SI, Coin. Ce n'est pour l'instant pas encore le cas. Il faut donc faire son .cube à la main, en utilisant la base suivante :
588 50 Florent Guillot
* télécharger le .cube de base: attachment:illyse.cube
589 46 Florent Guillot
* l'éditer avec n'importe quel éditeur de texte (notepad, gedit, nano, vim, etc) afin de remplacer les 4 champs vous concernant: ip6_net, ip4_addr, login_user, login_passphrase. Ces infos sont à retrouver dans Coin (cf #Avant-de-commencer)
590 40 Florent Guillot
* importer le .cube dans l'application vpn_client (onglet "Automatic" dans la configuration de l'application)
591 48 Florent Guillot
592 39 Florent Guillot
h4. Méthode manuelle
593 52 Florent Guillot
594 42 Florent Guillot
La méthode ".cube" décrite ci-dessus est vivement conseillée, car elle permet de simplifier la procédure et d'éviter les erreurs. La méthode manuelle est donnée uniquement à titre informatif.
595 34 Florent Guillot
596
* Dans Applications > VPN Client, cliquer sur l'URL _https://maBrique.nohost.me/vpnadmin_
597
> * Server Address: vpn.illyse.net
598
> * Server Port: 1194
599
> * Protocol: UDP
600
> * Advanced: copier coller la configuration suivante:
601
<pre>
602
remote <TPL:SERVER_NAME>
603
proto <TPL:PROTO>
604
port <TPL:SERVER_PORT>
605
606
pull
607
nobind
608
dev tun
609
tun-ipv6
610
keepalive 10 30
611
resolv-retry infinite
612
613
mssfix 1300
614
615
route-delay 2
616
nobind
617
persist-key
618
619
# Authentication by login
620
<TPL:LOGIN_COMMENT>auth-user-pass /etc/openvpn/keys/credentials
621
622
# UDP only
623
<TPL:UDP_COMMENT>explicit-exit-notify
624
<TPL:UDP_COMMENT>fragment 1300
625
626
# TLS
627
tls-client
628
<TPL:TA_COMMENT>tls-auth /etc/openvpn/keys/user_ta.key 1
629
remote-cert-tls server
630
ns-cert-type server
631
ca /etc/openvpn/keys/ca-server.crt
632
<TPL:CERT_COMMENT>cert /etc/openvpn/keys/user.crt
633
<TPL:CERT_COMMENT>key /etc/openvpn/keys/user.key
634
635
# Logs
636
verb 3
637
mute 5
638
status /var/log/openvpn-client.status
639
log-append /var/log/openvpn-illyse.log
640
641
# Routing
642
route-ipv6 2000::/3
643 35 Florent Guillot
redirect-gateway def1
644
</pre>
645
> * Server CA: Téléchargez le fichier attachment:vpn-illyse.crt et le téléverser.
646
> * Username: pdupond-vpn1 (information issue de coin, cf section #Avant-de-commencer)
647 38 Florent Guillot
> * Password: idem
648
> * First resolver: 80.67.169.12
649 1 Pierre-Arnaud Poudret
> * 2nd resolver : 2001:913::8
650 35 Florent Guillot
651 30 Florent Guillot
L'ensemble des autres champs est à laisser sur la valeur par défaut.
652 59 Sylvain David
653
h2. pfsense 
654
655
La configuration OpenVPN pour pfsense fonctionne parfaitement. Elle a été testée sous pfsense 2.4.2.
656
Voici comment effectuer cette configuration étape par étape :
657
658
h3. installation de l'autorité de certification Illyse.
659
660
- Naviguez dans le menu "system / Certificates Manager / CAs"
661
- cliquez sur "add" puis remplissez les champs comme il suit :
662
663
Descriptive Name : illyse
664
Method : Import an existing Certificate Auhtority
665
Certificate Data : copiez/collez la CA d'illyse
666
<pre>
667
-----BEGIN CERTIFICATE-----
668
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
704
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
705
-----END CERTIFICATE-----
706
</pre>
707
Puis sauvez.
708
709
h3. installation de la configuration VPN
710 60 Sylvain David
711 59 Sylvain David
- naviguez dans le menu "VPN / OpenVPN / Client"
712 60 Sylvain David
- cliquez sur "add" puis remplissez les champs comme il suit :
713 59 Sylvain David
(NB : les champs non mentionnés dans cette documentation sont laissé à vide et/ou à leur valeur par défaut.)
714 60 Sylvain David
715 59 Sylvain David
<pre>
716
Server mode : Peer to Peer SSL/TLS
717
Protocol : UDP IPv4 and IPv6 on all interfaces (multihome)
718 1 Pierre-Arnaud Poudret
device mode : tun layer3 tunnel mode
719
interface : LAN
720 59 Sylvain David
server host or address : 89.234.140.3
721 60 Sylvain David
Description : illyse
722
</pre>
723 59 Sylvain David
<pre>
724
Username : votre login fournit par illyse. exemple : johndoe-vpn1
725 60 Sylvain David
password : le mot de passe que vous avez créé vous même sur coin
726
</pre>
727 59 Sylvain David
<pre>
728 1 Pierre-Arnaud Poudret
Peer certificate auhtority : illyse
729
client certificate : None (Username and/or password required)
730 59 Sylvain David
Encryption algorithm : BF-CBC (128 bit ley by default, 64 bit block)
731 1 Pierre-Arnaud Poudret
Enable NCP : coché
732 59 Sylvain David
NCP algorithm : sélectionnez AES-256-GCM et AES-128-GCM
733 60 Sylvain David
Auth digest algorithm : SHA1 (160-bit)
734
</pre>
735 59 Sylvain David
<pre>
736
Compression : Omit preference, + Disable apaptative LZO Compression [legacy style, comp-no]
737 60 Sylvain David
Topology : Subnet - One IP address per client in a common subnet
738 59 Sylvain David
</pre>
739
Custom options : copiez collez ceci :
740
<pre>
741
redirect-gateway def1;fragment 1300;mssfix 1300
742 1 Pierre-Arnaud Poudret
</pre>
743 59 Sylvain David
cliquez sur "save"
744 1 Pierre-Arnaud Poudret
745
h3. autorisez votre réseau local à sortir par illyse.
746
747
Le VPN devrait monter tout seul. Toutefois, il faut encore configurer pfsense pour autoriser vos machines du LAN à sortir par le tunnel.
748 60 Sylvain David
Pour cela, allez dans Firewall / NAT / Outbound
749 59 Sylvain David
<pre>
750 60 Sylvain David
outbound NAT mode : "Hybrid Outbound NAT rule generation. (Automatic Outbound NAT + rules below)"
751 59 Sylvain David
</pre>
752
cliquez sur "save"
753
754 60 Sylvain David
Toujours dans ce menu, dans "mapping", cliquez sur "add"
755
<pre>
756
interface   : ovpnc1-illyse        # il s'agit de l'interface réseau virtuelle qui porte votre tunnel VPN
757
protocol    : any
758 59 Sylvain David
source      : network              # remplissez le champs réseau avec l'IP de votre réseau local. exemple : 192.168.0.0/24
759
destination : any
760
translation : interface address
761 60 Sylvain David
description : autoriser le LAN à sortir par Illyse
762 59 Sylvain David
</pre>
763 9 Baptiste Jonglez
cliquez sur "save"
764 8 Baptiste Jonglez
765 63 Mossroy Mossroy
h2. Turris OS ou OpenWRT
766
767
J'ai testé ce qui est écrit ci-dessous avec un Turris Mox sous Turris OS 5.1.10, mais ça devrait fonctionner à l'identique sur un Turris Omnia (ou un autre appareil utilisant Turris OS)
768
769
Turris OS est basé sur OpenWRT : cela devrait donc fonctionner également sur n'importe quel autre appareil basé sur OpenWRT.
770
771
h3. installation des packages openvpn
772
773
Il faut installer OpenVPN (c'est le même paquet pour gérer les modes client et serveur, même si on ne s'en servira ici qu'en mode client)
774
775
Sur un Turris, le plus simple est d'aller dans l'interface reForis, dans "Gestions des paquets" -> "Paquets" (ce qui revient à l'adresse https://192.168.1.1/reforis/package-management/packages , remplacer le 192.168.1.1 par l'adresse de votre Turris si besoin), et de cocher "OpenVPN"
776
777
Sur tout autre appareil tournant sous OpenWRT, il faut installer le package luci-app-openvpn. Soit via le gestionnaire de paquets de l'interface LuCI, soit en ligne de commande :
778
<pre><code class="shell">
779
opkg install luci-app-openvpn
780
</code></pre>
781
782
h3. configuration du VPN Illyse
783
784
Une fois OpenVPN installé, un nouveau menu "OpenVPN" apparait dans les interfaces reForis (sur Turris OS) et LuCI.
785 66 Mossroy Mossroy
Les deux interfaces (reForis et LuCI) permettent de configurer des clients OpenVPN. reForis est un peu plus simple à utiliser, mais ne permet hélas pas de fournir facilement les informations d'authentification (il faut créer le fichier d'identifiant/mot de passe à la main, en ssh par exemple. En tous cas en version 5.1.10 de Turris OS. Cf https://docs.turris.cz/basics/apps/openvpn-client/openvpn/). Je vais donc présenter ici comment faire avec LuCI (ça devrait fonctionner sur n'importe quel appareil basé sur OpenWRT, Turris compris), voir https://openwrt.org/docs/guide-user/services/vpn/openvpn/client-luci pour plus de détail.
786 63 Mossroy Mossroy
787
Dans le menu "OpenVPN" de LuCI, il faut ajouter une instance de client OpenVPN dans la liste (il est possible qu'il y ait déjà des lignes pour des serveurs OpenVPN, ou pour des exemples).
788
Pour cela, il suffit de renseigner les infos dans "Téléchargement de fichier de configuration OVPN" : choisir le nom "illyse", et uploader le fichier illyse.ovpn ci-dessous (vous pouvez choisir un autre nom que "illyse" mais, dans ce cas, il faut modifier la ligne auth-user-pass /etc/openvpn/illyse.auth pour y remplacer illyse par votre nom)
789
790
+illyse.ovpn+
791
<pre>
792
# C'est nous qui prenons l'initiative de nous connecter au serveur.
793
client
794
795
# On route de l'IP, on ne fait pas de l'ethernet.
796
dev tun0
797
798
# si on ne recoit pas d'IP pour tun0:
799
# - soit on configure l'interface avec des ip privees bidon
800
#ifconfig 10.255.255.1 10.255.255.2
801
# - soit on utilise un script pour faire "ifconfig tun0 up" 
802
#script-security 2
803
#up up.sh
804
805
# Il est preferable d'utiliser udp, le resultat fonctionne mieux. Il est
806
# cependant notable que les restrictions d'acces Internet laissent souvent
807
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
808
# pas, essayez tcp.
809
810
# Transport sur udp v4. En v6, la redirection de passerelle par defaut fonctionne mal (openvpn ne cree pas l'equivalent de la route /32 IPv4 vers le serveur vpn via la passerelle sous-jacente)
811
# Si on ne prevoit pas d'utiliser la directive "redirect-gateway def1", alors on peut choisir "proto udp6" pour monter le tunnel en IPv6.
812
#proto udp6
813
proto udp
814
#proto tcp
815
816
# Certains reseaux ont en fait une MTU bien inferieure a 1450. Dire aux connexions
817
# TCP d'etre tres conservatives, pour que ca marche plus ou moins partout.
818
mssfix 1300
819
# En UDP, on peut s'assurer que ca passe de toutes facons en fragmentant au besoin
820
# quand ca depasse.
821
fragment 1300
822
# Idealement, ca devrait etre detecte tout seul, mais c'est loin de toujours fonctionner...
823
#mtu-disc yes
824
825
# En udp, Prevenir le serveur quand on termine, permet de relancer
826
# immediatement sans attendre que le serveur se rende compte de la
827
# deconnexion par timeout.
828
explicit-exit-notify
829
830
# L'adresse du serveur.
831
remote vpn.illyse.net 1194
832
833
# eventuellement, on peut avoir besoin de passer par un proxy http, decommenter cette ligne en mettant l'adresse et le port du proxy.
834
#http-proxy 192.0.2.1 8080
835
836
# Attendre un peu avant d'ajouter les routes.
837
route-delay 2
838
839
# Ne pas utiliser un port local statique, on est client de toutes facons.
840
nobind
841
842
# Garder la cle en memoire, pour ne pas avoir besoin de la relire lors d'un
843
# redemarrage.
844
persist-key
845
# Ne pas tuer l'interface du tunnel lors d'un redemarrage.
846
#persist-tun
847
848
# Decommenter cette ligne pour faire passer tout le trafic via le VPN:
849
redirect-gateway def1
850
851
# On peut aussi vouloir plutot router seulement quelques destinations, par
852
# exemple ici tout Gitoyen:
853
#route 80.67.160.0 255.255.224.0
854
855
# Activer IPv6 dans le tunnel
856
tun-ipv6
857
# et faire passer tout le trafic IPv6 via le VPN:
858
route-ipv6 ::/1
859
route-ipv6 8000::/1
860
861
# Envoyer un login et un mot de passe. Pour eviter de taper a la main login
862
# et mot de passe, vous pouvez ajouter a droite de "auth-user-pass" le nom d'un
863
# fichier contenant ces deux informations, une par ligne.
864
auth-user-pass /etc/openvpn/illyse.auth
865
866
# Retenter l’authentification meme si le serveur la refuse (utile pour
867
# eviter de faire mourir le client si le serveur LDAP ne repond pas)
868
auth-retry nointeract
869
870
# Un minimum de debug, c'est toujours bien.
871
verb 3
872
873
log-append /var/log/openvpn-illyse.log
874
875
# Certificat permettant de verifier que c'est bien a Illyse que
876
# l'on se connecte et donc a qui on donne notre mot de passe.
877
remote-cert-tls server
878
<ca>
879
-----BEGIN CERTIFICATE-----
880
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
916
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
917
-----END CERTIFICATE-----
918
</ca>
919
920
</pre>
921
922
Ensuite il faut cliquer sur "Editer" sur cette instance OpenVPN (qui devrait maintenant apparaitre dans la liste), et ajouter votre identifiant et mot de passe dans la zone "Section permettant d'ajouter un fichier facultatif "auth-user-pass" avec vos informations d'identification" : l'identifiant sur la première ligne, le mot de passe sur la seconde ligne.
923
Puis cliquer sur Enregistrer, et revenir dans le menu OpenVPN
924
925
Sur notre instance OpenVPN, cocher la case "activé" puis, tout en bas, "Enregistrer et appliquer".
926
927
Ensuite il faut configurer le firewall pour laisser sortir ce flux (si vous avez utilisé l'interface reForis, ça ne devrait pas être nécessaire : elle s'en occupe). Dans "Réseau" -> "Pare-feu", ajouter une nouvelle zone "illyse" (par exemple), avec le paramétrage suivant :
928
* Entrée : rejeter
929
* Sortie : accepter
930
* Transfert : rejeter
931
* Masquage : cocher
932
* Zones source : lan
933
* Appareils couverts : tun0
934
935
h3. Activation/désactivation
936
937 65 Mossroy Mossroy
Une fois mis en place, il suffit d'utiliser le bouton Start/Stop sur la ligne de l'instance OpenVPN pour l'activer ou le désactiver (les routes sont automatiquement ajoutées/supprimées).
938
Attention néanmoins à la résolution DNS qui s'en trouve parfois perturbée sur les machines du LAN : il faut parfois redémarrer leur couche réseau (par exemple en se déconnectant/reconnectant du réseau), ou en redémarrant carrément l'appareil
939 63 Mossroy Mossroy
940
h3. Performances
941
942 64 Mossroy Mossroy
Le protocole OpenVPN consomme pas mal de ressources (côté client et côté serveur). Avec les serveurs Illyse et un client PC puissant (sans passer par mon routeur), j'obtiens (en mars 2021) environ 140 Mbps (en download comme en upload) alors que mon FAI me fournit du Gigabit. Mais le Turris MOX n'a pas un gros processeur donc je n'obtiens avec qu'autour de 30 Mbps down et 40 Mbps up (et le ping n'est augmenté que d'1 ms environ)
943 63 Mossroy Mossroy
944 67 Mossroy Mossroy
Pour obtenir de meilleurs performances avec le Turris Mox (et certainement avec d'autres appareils), il est possible de passer sur le protocole Wireguard au lieu d'OpenVPN. J'obtiens environ 220Mbps en down et 180Mbps en up, en utilisant quasiment 100% des 2 coeurs du CPU du Turris Mox.
945 63 Mossroy Mossroy
946
947 9 Baptiste Jonglez
h1. Configurations avancées
948 8 Baptiste Jonglez
949 25 Baptiste Jonglez
h2. Client sans IP montée sur le tunnel
950 1 Pierre-Arnaud Poudret
951 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.
952
953
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 :
954
955
+/etc/openvpn/illyse.conf+
956
<pre>
957
...
958
route-delay 2
959
redirect-gateway def1
960
961
script-security 2
962
up illyse-up.sh
963
...
964
</pre>
965
966
+/etc/openvpn/illyse-up.sh+
967
<pre>
968
#!/bin/sh
969
tun_dev="$1"
970
ip link set "$tun_dev" up
971
ip route add "$route_vpn_gateway" dev "$tun_dev"
972
exit 0
973
</pre>
974 10 Baptiste Jonglez
975
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut par la connexion normale
976
977
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).
978
979
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).
980
981
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.
982
983
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 :)
984
(la configuration ci-dessous est similaire à http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting )
985
986
+/etc/openvpn/up.sh+
987
<pre>
988
#!/bin/bash
989
990
dev="$1"
991
tun_mtu="$2"
992
link_mtu="$3"
993
local_ip="$4"
994
remote_ip="$5"
995
996
# Routing table to use
997
table=4242
998
999
# Source-specific routing: use the normal default route by default,
1000
# but use the VPN for replying to packets coming from the VPN.
1001
# IPv4
1002 58 Sylvain David
[ -n "$local_ip" ] && ip rule add from "$local_ip" table "$table" && ip route add default dev "$dev" table "$table"
1003
# IPv6
1004
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule add from "$ifconfig_ipv6_local" table "$table" && ip -6 route add default dev "$dev" table "$table"
1005
</pre>
1006
1007
+/etc/openvpn/down.sh+
1008
<pre>
1009
#!/bin/bash
1010
1011
dev="$1"
1012
tun_mtu="$2"
1013
link_mtu="$3"
1014
local_ip="$4"
1015
remote_ip="$5"
1016
1017
table=4242
1018
1019
# Delete table for source-specific routing.
1020
[ -n "$local_ip" ] && ip rule del from "$local_ip" && ip route del default table "$table"
1021
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule del from "$ifconfig_ipv6_local" && ip -6 route del default table "$table"
1022
1023
exit 0
1024
</pre>
1025
1026
+/etc/openvpn/illyse.conf+
1027
<pre>
1028
## Configuration VPN Illyse pour accepter des connexions entrantes
1029
## à la fois via le VPN et via la connexion normale, grâce au policy routing (Linux uniquement)
1030
## https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user#Utiliser-simultanément-la-connexion-normale-et-le-VPN
1031
1032
# Gestion des routes via des scripts externes.
1033
script-security 2
1034
up up.sh
1035
down down.sh
1036
1037
1038
# Reste de la configuration normale.
1039
# Penser à enlever "redirect-gateway" et "route-ipv6", on gère les
1040
# routes via up.sh et down.sh
1041
client
1042
remote vpn.illyse.net 1194
1043
#http-proxy 192.0.2.1 8080
1044
dev tun0
1045
1046
#proto udp6
1047
proto udp
1048
#proto tcp
1049
explicit-exit-notify
1050
1051
mssfix 1300
1052
fragment 1300
1053
1054
route-delay 2
1055
nobind
1056
persist-key
1057
persist-tun
1058
1059
tun-ipv6
1060
1061
auth-user-pass credentials
1062
1063
verb 3
1064
log-append /var/log/openvpn-illyse.log
1065
1066
# Certificat permettant de vérifier que c'est bien à Illyse que
1067
# l'on se connecte et donc à qui on donne notre mot de passe.
1068
remote-cert-tls server
1069
<ca>
1070
-----BEGIN CERTIFICATE-----
1071
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
1107
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
1108
-----END CERTIFICATE-----
1109
</ca>
1110 21 Mit Mit
</pre>
1111
1112
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN
1113
1114
Dans la configuration précédente, les deux IPs, FAI et VPN, sont accessibles de l'extérieur et répondent correctement.
1115
La machine toutefois utilise par défaut la sortie FAI plutôt que le VPN.
1116
Le cas décrit ici a son IP FAI obtenue par DHCP, avec la table de routage main, et sans IPv6.
1117
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.
1118
1119
É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
1120
É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.
1121
+/etc/openvpn/up.conf+
1122
<pre>
1123
#!/bin/bash
1124
1125
dev="$1"
1126
isp_dev="eth0"
1127
tun_mtu="$2"
1128
link_mtu="$3"
1129
local_ip="$4"
1130
remote_ip="$5"
1131
isp_ip="WWW.XXX.YYY.ZZZ"
1132
isp_gateway="WWW.XXX.YYY.ZZZ"
1133
vpn_server="89.234.140.3"
1134
1135
# Routing table to use
1136
tableVPN=4242
1137
tableLOC=1337
1138
1139
# IP inconnue de COIN, donc tun0 à monter
1140
ip link set "$dev" up
1141
ip addr add "$local_ip"/32 dev "$dev"
1142
1143
# Source-specific routing: use the normal default route by default,
1144
# but use the VPN for replying to packets coming from the VPN.
1145
# IPv4
1146
if [ -n "local_ip" ]; then
1147
  ip rule add pref 31000 lookup "$tableLOC"
1148
  ip rule add pref 31050 from "$isp_ip" lookup main
1149
  ip rule add pref 31100 lookup "$tableVPN"
1150
  ip route add default dev "$dev" table "$tableVPN"
1151
  ip route add "$vpn_server" via "$isp_gateway" table "$tableLOC" dev "$isp_dev"
1152
fi
1153
1154
# IPv6
1155
[ -n "$ifconfig_ipv6_local" ] && ip -6 addr add "$ifconfig_ipv6_local" dev "$dev" && ip -6 route add default dev "$dev"
1156
1157
exit 0
1158
</pre>
1159
1160
+/etc/openvpn/down.conf+
1161
<pre>
1162
dev="$1"
1163
tun_mtu="$2"
1164
link_mtu="$3"
1165
local_ip="$4"
1166
remote_ip="$5"
1167
isp_ip="WWW.XXX.YYY.ZZZ"
1168
isp_gateway="WWW.XXX.YYY.ZZZ"
1169
vpn_server="89.234.140.3"
1170
1171
# Routing table to use
1172
tableVPN=4242
1173
tableLOC=1337
1174
1175
# Delete table for source-specific routing.
1176
if [ "$local_ip" ]; then
1177
  ip route del "$vpn_server" via "$isp_gateway" table "$tableLOC"
1178
  ip route del default dev "$dev" table "$tableVPN"
1179
  ip rule del pref 31100 lookup "$tableVPN"
1180
  ip rule del pref 31050 from "$isp_ip" lookup main
1181
  ip rule del pref 31000 lookup "$tableLOC"
1182
fi
1183
1184
[ -n "$ifconfig_ipv6_local" ] && ip -6 route del default dev "$dev" && ip -6 addr del "$ifconfig_ipv6_local" dev "$dev"
1185
1186 37 Mit Mit
exit 0
1187
</pre>
1188
1189
h3. Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN, et faire AP WiFi
1190
1191
On a foutu le bordel dans les routes, ce qui fait que hostapd n'arrive pas à faire tomber le bousin en marche, car il met ses routes dans la table main au lieu de les mettre dans la tableVPN  4242.
1192
Du coup, on l'aide (en supposant que le wlan soit en 192.168.2.0/24) :
1193
<pre>
1194
ip route del 192.168.2.0/24 dev wlan0 table main
1195
ip route add 192.168.2.0/24 dev wlan0 table 4242
1196 1 Pierre-Arnaud Poudret
</pre>
1197
Il ne reste plus qu'à activer le NAT sur l'interface tun0 du VPN et paf ! On fait un beau AP WiFi (vilainement naté) qui fournit une connexion Illyse.