Projet

Général

Profil

Vpn doc user » Historique » Version 46

Florent Guillot, 23/06/2016 20:33

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
h2. GNU/Linux (Debian Wheezy)
58
59
h3. Pour les débutants 
60
61 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).
62 17 Nicolas Nadisic
63
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". 
64
65
66
h3. Fichier de configuration OpenVPN
67
68 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.
69 1 Pierre-Arnaud Poudret
70
+/etc/openvpn/illyse.conf+
71
<pre>
72
# C'est nous qui prenons l'initiative de nous connecter au serveur.
73
client
74
75
# On route de l'IP, on ne fait pas de l'ethernet.
76
dev tun0
77
78
# si on ne reçoit pas d'IP pour tun0:
79
# - soit on configure l'interface avec des ip privées bidon
80
#ifconfig 10.255.255.1 10.255.255.2
81
# - soit on utilise un script pour faire "ifconfig tun0 up"
82
#script-security 2
83
#up up.sh
84
85
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
86
# cependant notable que les restrictions d'accès Internet laissent souvent
87
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
88
# pas, essayez tcp.
89
90
# 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)
91
# 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.
92
#proto udp6
93
proto udp
94
#proto tcp
95
96
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
97
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
98
mssfix 1300
99
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
100
# quand ça dépasse.
101
fragment 1300
102
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
103
#mtu-disc yes
104
105
# En udp, Prévenir le serveur quand on termine, permet de relancer
106
# immédiatement sans attendre que le serveur se rende compte de la
107
# déconnexion par timeout.
108
explicit-exit-notify
109
110
# L'adresse du serveur.
111
remote vpn.illyse.net 1194
112
113
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
114
#http-proxy 192.0.2.1 8080
115
116
# Attendre un peu avant d'ajouter les routes.
117
route-delay 2
118
119
# Ne pas utiliser un port local statique, on est client de toutes façons.
120
nobind
121
122
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
123
# redémarrage.
124
persist-key
125
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
126
#persist-tun
127
128
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
129
redirect-gateway def1
130
131
# On peut aussi vouloir plutôt router seulement quelques destinations, par
132
# exemple ici tout Gitoyen:
133
#route 80.67.160.0 255.255.224.0
134
135 5 Baptiste Jonglez
# Activer IPv6 dans le tunnel
136 1 Pierre-Arnaud Poudret
tun-ipv6
137 5 Baptiste Jonglez
# et faire passer tout le trafic IPv6 via le VPN:
138 1 Pierre-Arnaud Poudret
route-ipv6 ::/1
139
route-ipv6 8000::/1
140
141
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
142
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
143
# fichier contenant ces deux informations, une par ligne.
144
auth-user-pass credentials
145
146 36 Alarig Le Lay
# Retenter le l’authentification même si le serveur la refuse (utile pour
147
# éviter de faire mourir le client si le serveur LDAP ne répond pas)
148
auth-retry nointeract
149
150 1 Pierre-Arnaud Poudret
# Un minimum de debug, c'est toujours bien.
151
verb 3
152
153
log-append /var/log/openvpn-illyse.log
154
155
# Certificat permettant de vérifier que c'est bien à Illyse que
156
# l'on se connecte et donc à qui on donne notre mot de passe.
157
remote-cert-tls server
158
<ca>
159
-----BEGIN CERTIFICATE-----
160
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
196
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
197
-----END CERTIFICATE-----
198
</ca>
199
</pre>
200
201
202
+/etc/openvpn/credentials+
203
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.)
204
205
Spécifier login et mot de passe sur deux lignes différences.
206
207
<pre>
208
jkleboulet-vpn1
209
omgsuchsecured123
210
</pre>
211
212
213 3 Pierre-Arnaud Poudret
h3. Mise à jour automatique de resolv.conf
214
215
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
216
217
<pre>
218
<mit-mit> Bon, ça marche, faut ajouter à la config :
219
<mit-mit> script-security 2
220
<mit-mit> up /etc/openvpn/update-resolv-conf
221
<mit-mit> down /etc/openvpn/update-resolv-conf
222
<mit-mit> et avoir resolvconf d'installé.
223
<mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes)
224
</pre>
225
226 26 Côme chillie
h2. GNU/Linux (Network Manager)
227
228
Il est possible de configurer graphiquement le VPN via Network Manager.
229
(J’utilise la version KDE, des détails peuvent varier si vous utilisez la version gtk)
230
231 31 Florent Guillot
Téléchargez le fichier attachment:vpn-illyse.crt.
232
233 28 Côme chillie
Installez le backend openvpn pour Network Manager, puis créez une nouvelle connexion de type openvpn.
234 27 Côme chillie
Complétez comme suit, indiquez le chemin du fichier crt, votre login et votre mot de passe VPN :
235 1 Pierre-Arnaud Poudret
!vpn1.png!
236 27 Côme chillie
Cliquez sur «Avancé», mettez 1300 dans «Taille du fragment UDP» et cochez «Restreindre la taille maximale du segment TCP (MSS)»
237
!vpn2.png!
238 3 Pierre-Arnaud Poudret
239 29 Côme chillie
h2. Windows
240 1 Pierre-Arnaud Poudret
241 29 Côme chillie
Installez OpenVPN, par exemple en suivant la documentation présente ici : http://www.rezine.org/documentation/tunnels_chiffres/#index4h1
242
243
Créez ensuite le fichier suivant.  
244
Faites attention à l’extension des fichiers : parfois Windows ajoute une extension .txt aux fichiers sans le dire.
245
246 2 Pierre-Arnaud Poudret
+C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+
247
<pre>
248
# C'est nous qui prenons l'initiative de nous connecter au serveur.
249
client
250
251
# On route de l'IP, on ne fait pas de l'ethernet.
252
dev tun0
253
254
# si on ne reçoit pas d'IP pour tun0:
255
# - soit on configure l'interface avec des ip privées bidon
256
#ifconfig 10.255.255.1 10.255.255.2
257
# - soit on utilise un script pour faire "ifconfig tun0 up"
258
#script-security 2
259
#up up.sh
260
261
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
262
# cependant notable que les restrictions d'accès Internet laissent souvent
263
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
264
# pas, essayez tcp.
265
266
#proto udp6
267
proto udp
268
#proto tcp
269
270
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
271
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
272
mssfix 1300
273
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
274
# quand ça dépasse.
275
fragment 1300
276
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
277
#mtu-disc yes
278
279
#mtu-test
280
#link-mtu 1300
281
#tun-mtu 1300
282
283
# En udp, Prévenir le serveur quand on termine, permet de relancer
284
# immédiatement sans attendre que le serveur se rende compte de la
285
# déconnexion par timeout.
286
explicit-exit-notify
287
288
# L'adresse du serveur.
289
remote vpn.illyse.net 1194
290
291
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
292
#http-proxy 192.0.2.1 8080
293
294
# Pour windows: utiliser route.exe.
295
route-method exe
296
297
# Attendre un peu avant d'ajouter les routes.
298
route-delay 2
299
300
# Ne pas utiliser un port local statique, on est client de toutes façons.
301
nobind
302
303
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
304
# redémarrage.
305
persist-key
306
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
307
#persist-tun
308
309
#ip-win32 ipapi
310
311
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
312 1 Pierre-Arnaud Poudret
redirect-gateway def1
313 2 Pierre-Arnaud Poudret
314 1 Pierre-Arnaud Poudret
# On peut aussi vouloir plutôt router seulement quelques destinations, par
315 2 Pierre-Arnaud Poudret
# exemple ici tout Gitoyen:
316
#route 80.67.160.0 255.255.224.0
317
318 5 Baptiste Jonglez
# Activer IPv6 dans le VPN
319 2 Pierre-Arnaud Poudret
tun-ipv6
320 5 Baptiste Jonglez
# Faire passer tout le trafic IPv6 via le VPN:
321 2 Pierre-Arnaud Poudret
route-ipv6 ::/1
322
route-ipv6 8000::/1
323
324
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
325
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
326
# fichier contenant ces deux informations, une par ligne.
327
auth-user-pass credentials
328
329
# Un minimum de debug, c'est toujours bien.
330
verb 3
331
332
#log-append /var/log/openvpn-illyse.log
333
334
# Certificat permettant de vérifier que c'est bien à Illyse que
335
# l'on se connecte et donc à qui on donne notre mot de passe.
336
remote-cert-tls server
337
<ca>
338
-----BEGIN CERTIFICATE-----
339
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
375
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
376
-----END CERTIFICATE-----
377
</ca>
378
</pre>
379 1 Pierre-Arnaud Poudret
380 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 :
381 2 Pierre-Arnaud Poudret
382
+C:\Program Files\OpenVPN\config\illyse\credentials+
383
384
<pre>
385
jkleboulet-vpn1
386 1 Pierre-Arnaud Poudret
omgsuchsecured123
387
</pre>
388 29 Côme chillie
389
Si vous ne voulez pas utiliser un tel fichier, commentez la ligne «auth-user-pass credentials» dans la configuration.
390 4 Fabien Michel
391
h2. Mac OS X
392
393
Installer le client OpenVPN Tunnelblick : https://code.google.com/p/tunnelblick/
394
395
Créer un fichier illyse.ovpn avec la configuration voulue. Celle indiquée ci-dessous fonctionne sans modification necessaire.
396
Double-cliquer sur le fichier afin que TunnelBlick import la configuration.
397
A la première connexion, il va demander un couple login/password qu'il sera possible de stocker dans le trousseau.
398
399
Paramètres modifiés par rapport à la configuration pour Linux :
400
* log-append : Ce paramètre n'est pas accepté. Mais tunnelblick log déjà en interne.
401
* 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
402
* 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)
403
404
+illyse.ovpn+
405
<pre>
406
client
407
dev tun0
408
proto udp
409
mssfix 1300
410
fragment 1300
411
explicit-exit-notify
412
remote vpn.illyse.net 1194
413
#http-proxy 192.0.2.1 8080
414
route-delay 2
415
nobind
416
417
persist-key
418
persist-tun
419
420
redirect-gateway def1
421
#route 80.67.160.0 255.255.224.0
422
423
tun-ipv6
424
route-ipv6 ::/1
425
route-ipv6 8000::/1
426
427
auth-user-pass
428
verb 3
429
430
remote-cert-tls server
431
<ca>
432
-----BEGIN CERTIFICATE-----
433
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
466 1 Pierre-Arnaud Poudret
LSVaB9OD7iVWkW5eo6ng3XA390HIUUtf/0IdtiCoMsjuZbVagfiaUu0kUJpR6d2k
467
r5czdLFhRu8uw0sWn1rMQXlUAqH0WAfoq8XinaHesWs5MEnvevjoUTkNhFnqe1Ra
468
rkwU9mzr1/N6GfpPalbveD0duTGAkJN5mwLZi+HZ4ctLgO1ShYFU/NbC7jNU3YCU
469
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
470
-----END CERTIFICATE-----
471
</ca>
472 15 Rémi Bouhl
473
</pre>
474
475
476
h2. Android 
477
478
Configuration OpenVPN pour Android (testé sous Android 4.4.4 et OpenVPN for Android v0.6.17)
479
Ci-après un fichier de configuration qui devrait fonctionner avec l'application Android OpenVPN for Android, 
480
Disponible sur F-Droid : https://f-droid.org/repository/browse/?fdfilter=openvpn&fdid=de.blinkt.openvpn
481
Ou au pire sur le PlayStore : https://play.google.com/store/apps/details?id=de.blinkt.openvpn
482
Posez le fichier de configuration, renommé en VPN-Illyse.conf par exemple, sur l'appareil.
483
Une fois l'application installée et démarrée, cliquez sur le dossier en bas à droite et chezchez le fichier de configuration.
484
Il suffit de renseigner les identifiants.
485
486
<pre>
487 16 Rémi Bouhl
488 15 Rémi Bouhl
#
489
# Fichier de configuration VPN Illyse pour Android
490
# 2014-10-14
491
#
492
# Enables connection to GUI
493
management /data/data/de.blinkt.openvpn/cache/mgmtsocket unix
494
management-client
495
management-query-passwords
496
management-hold
497
setenv IV_GUI_VER "de.blinkt.openvpn 0.6.17" 
498
machine-readable-output
499
client
500
verb 4
501
connect-retry-max 5
502
connect-retry 5
503
resolv-retry 60
504
dev tun
505
remote vpn.illyse.net 1194 udp
506
auth-user-pass
507
route-ipv6 ::/0
508
route 0.0.0.0 0.0.0.0 vpn_gateway
509
remote-cert-tls server
510
persist-tun
511
# persist-tun also enables pre resolving to avoid DNS resolve problem
512
preresolve
513
# Use system proxy setting
514
management-query-proxy
515
# Custom configuration options
516
# You are on your on own here 
517
mssfix 1300 
518
fragment 1300
519
<ca>
520
-----BEGIN CERTIFICATE-----
521
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
557
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
558
-----END CERTIFICATE-----
559
</ca>
560 16 Rémi Bouhl
561 4 Fabien Michel
562
</pre>
563 8 Baptiste Jonglez
564 30 Florent Guillot
h2. Yunohost
565
566 32 Florent Guillot
h3. Installer le client VPN
567 30 Florent Guillot
568 32 Florent Guillot
* Dans Applications > Install, en bas de la page, entrer 'https://github.com/labriqueinternet/vpnclient_ynh' dans le champ *Install custom app*.
569
* Lire et valider l'avertissement.
570
* Valider l'installation en cliquant sur le bouton *Install*
571 1 Pierre-Arnaud Poudret
572 40 Florent Guillot
h3. Configurer le client VPN
573 34 Florent Guillot
574 43 Florent Guillot
h4. Methode ".cube"
575 39 Florent Guillot
576
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 :
577 41 Florent Guillot
* télécharger le .cube de base: attachment:illyse.cube
578 45 Florent Guillot
* l'éditer avec n'importe quel éditeur de texte (notepad, gedit, nano, vim, etc) afin de remplacer les informations vous concernant (ip6_net, ip4_addr, login_user, login_passphrase). Ces infos sont à retrouver dans Coin (cf #Avant-de-commencer)
579 46 Florent Guillot
* importer le .cube dans l'application vpn_client (onglet "Automatic" dans la configuration de l'application)
580 40 Florent Guillot
581 39 Florent Guillot
h4. Méthode manuelle :
582
583 42 Florent Guillot
La méthode ".cube" décrite ci-dessus est hautement conseillé, car elle permet de simplifier la procédure et d'éviter les erreurs. La méthode manuelle est donnée uniquement à titre informatif.
584
585 34 Florent Guillot
* Dans Applications > VPN Client, cliquer sur l'URL _https://maBrique.nohost.me/vpnadmin_
586
> * Server Address: vpn.illyse.net
587
> * Server Port: 1194
588
> * Protocol: UDP
589
> * Advanced: copier coller la configuration suivante:
590
<pre>
591
remote <TPL:SERVER_NAME>
592
proto <TPL:PROTO>
593
port <TPL:SERVER_PORT>
594
595
pull
596
nobind
597
dev tun
598
tun-ipv6
599
keepalive 10 30
600
resolv-retry infinite
601
602
mssfix 1300
603
604
route-delay 2
605
nobind
606
persist-key
607
608
# Authentication by login
609
<TPL:LOGIN_COMMENT>auth-user-pass /etc/openvpn/keys/credentials
610
611
# UDP only
612
<TPL:UDP_COMMENT>explicit-exit-notify
613
<TPL:UDP_COMMENT>fragment 1300
614
615
# TLS
616
tls-client
617
<TPL:TA_COMMENT>tls-auth /etc/openvpn/keys/user_ta.key 1
618
remote-cert-tls server
619
ns-cert-type server
620
ca /etc/openvpn/keys/ca-server.crt
621
<TPL:CERT_COMMENT>cert /etc/openvpn/keys/user.crt
622
<TPL:CERT_COMMENT>key /etc/openvpn/keys/user.key
623
624
# Logs
625
verb 3
626
mute 5
627
status /var/log/openvpn-client.status
628
log-append /var/log/openvpn-illyse.log
629
630
# Routing
631
route-ipv6 2000::/3
632
redirect-gateway def1
633 35 Florent Guillot
</pre>
634
> * Server CA: Téléchargez le fichier attachment:vpn-illyse.crt et le téléverser.
635
> * Username: pdupond-vpn1 (information issue de coin, cf section #Avant-de-commencer)
636
> * Password: idem
637 38 Florent Guillot
> * First resolver: 80.67.169.12
638
> * 2nd resolver : 2001:913::8
639 1 Pierre-Arnaud Poudret
640 35 Florent Guillot
L'ensemble des autres champs est à laisser sur la valeur par défaut.
641 30 Florent Guillot
642 9 Baptiste Jonglez
h1. Configurations avancées
643 8 Baptiste Jonglez
644 9 Baptiste Jonglez
h2. Client sans IP montée sur le tunnel
645 8 Baptiste Jonglez
646 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.
647 1 Pierre-Arnaud Poudret
648 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 :
649
650
+/etc/openvpn/illyse.conf+
651
<pre>
652
...
653
route-delay 2
654
redirect-gateway def1
655
656
script-security 2
657
up illyse-up.sh
658
...
659
</pre>
660
661
+/etc/openvpn/illyse-up.sh+
662
<pre>
663
#!/bin/sh
664
tun_dev="$1"
665
ip link set "$tun_dev" up
666
ip route add "$route_vpn_gateway" dev "$tun_dev"
667
exit 0
668
</pre>
669
670
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut par la connexion normale
671 10 Baptiste Jonglez
672
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).
673
674
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).
675
676
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.
677
678
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 :)
679
(la configuration ci-dessous est similaire à http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting )
680
681
+/etc/openvpn/up.sh+
682
<pre>
683
#!/bin/bash
684
685
dev="$1"
686
tun_mtu="$2"
687
link_mtu="$3"
688
local_ip="$4"
689
remote_ip="$5"
690
691
# Routing table to use
692
table=4242
693
694
# Source-specific routing: use the normal default route by default,
695
# but use the VPN for replying to packets coming from the VPN.
696
# IPv4
697
[ -n "$local_ip" ] && ip rule add from "$local_ip" table "$table" && ip route add default dev "$dev" table "$table"
698
# IPv6
699
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule add from "$ifconfig_ipv6_local" table "$table" && ip -6 route add default dev "$dev" table "$table"
700
</pre>
701
702
+/etc/openvpn/down.sh+
703
<pre>
704
#!/bin/bash
705
706
dev="$1"
707
tun_mtu="$2"
708
link_mtu="$3"
709
local_ip="$4"
710
remote_ip="$5"
711
712
table=4242
713
714
# Delete table for source-specific routing.
715
[ -n "$local_ip" ] && ip rule del from "$local_ip" && ip route del default table "$table"
716
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule del from "$ifconfig_ipv6_local" && ip -6 route del default table "$table"
717
718
exit 0
719
</pre>
720
721
+/etc/openvpn/illyse.conf+
722
<pre>
723
## Configuration VPN Illyse pour accepter des connexions entrantes
724
## à la fois via le VPN et via la connexion normale, grâce au policy routing (Linux uniquement)
725
## https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user#Utiliser-simultanément-la-connexion-normale-et-le-VPN
726
727
# Gestion des routes via des scripts externes.
728
script-security 2
729
up up.sh
730
down down.sh
731
732
733
# Reste de la configuration normale.
734
# Penser à enlever "redirect-gateway" et "route-ipv6", on gère les
735
# routes via up.sh et down.sh
736
client
737
remote vpn.illyse.net 1194
738
#http-proxy 192.0.2.1 8080
739
dev tun0
740
741
#proto udp6
742
proto udp
743
#proto tcp
744
explicit-exit-notify
745
746
mssfix 1300
747
fragment 1300
748
749
route-delay 2
750
nobind
751
persist-key
752
persist-tun
753
754
tun-ipv6
755
756
auth-user-pass credentials
757
758
verb 3
759
log-append /var/log/openvpn-illyse.log
760
761
# Certificat permettant de vérifier que c'est bien à Illyse que
762
# l'on se connecte et donc à qui on donne notre mot de passe.
763
remote-cert-tls server
764
<ca>
765
-----BEGIN CERTIFICATE-----
766
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
802
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
803
-----END CERTIFICATE-----
804
</ca>
805
</pre>
806 21 Mit Mit
807
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN
808
809
Dans la configuration précédente, les deux IPs, FAI et VPN, sont accessibles de l'extérieur et répondent correctement.
810
La machine toutefois utilise par défaut la sortie FAI plutôt que le VPN.
811
Le cas décrit ici a son IP FAI obtenue par DHCP, avec la table de routage main, et sans IPv6.
812
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.
813
814
É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
815
É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.
816
+/etc/openvpn/up.conf+
817
<pre>
818
#!/bin/bash
819
820
dev="$1"
821
isp_dev="eth0"
822
tun_mtu="$2"
823
link_mtu="$3"
824
local_ip="$4"
825
remote_ip="$5"
826
isp_ip="WWW.XXX.YYY.ZZZ"
827
isp_gateway="WWW.XXX.YYY.ZZZ"
828
vpn_server="89.234.140.3"
829
830
# Routing table to use
831
tableVPN=4242
832
tableLOC=1337
833
834
# IP inconnue de COIN, donc tun0 à monter
835
ip link set "$dev" up
836
ip addr add "$local_ip"/32 dev "$dev"
837
838
# Source-specific routing: use the normal default route by default,
839
# but use the VPN for replying to packets coming from the VPN.
840
# IPv4
841
if [ -n "local_ip" ]; then
842
  ip rule add pref 31000 lookup "$tableLOC"
843
  ip rule add pref 31050 from "$isp_ip" lookup main
844
  ip rule add pref 31100 lookup "$tableVPN"
845
  ip route add default dev "$dev" table "$tableVPN"
846
  ip route add "$vpn_server" via "$isp_gateway" table "$tableLOC" dev "$isp_dev"
847
fi
848
849
# IPv6
850
[ -n "$ifconfig_ipv6_local" ] && ip -6 addr add "$ifconfig_ipv6_local" dev "$dev" && ip -6 route add default dev "$dev"
851
852
exit 0
853
</pre>
854
855
+/etc/openvpn/down.conf+
856
<pre>
857
dev="$1"
858
tun_mtu="$2"
859
link_mtu="$3"
860
local_ip="$4"
861
remote_ip="$5"
862
isp_ip="WWW.XXX.YYY.ZZZ"
863
isp_gateway="WWW.XXX.YYY.ZZZ"
864
vpn_server="89.234.140.3"
865
866
# Routing table to use
867
tableVPN=4242
868
tableLOC=1337
869
870
# Delete table for source-specific routing.
871
if [ "$local_ip" ]; then
872
  ip route del "$vpn_server" via "$isp_gateway" table "$tableLOC"
873
  ip route del default dev "$dev" table "$tableVPN"
874
  ip rule del pref 31100 lookup "$tableVPN"
875
  ip rule del pref 31050 from "$isp_ip" lookup main
876
  ip rule del pref 31000 lookup "$tableLOC"
877
fi
878
879
[ -n "$ifconfig_ipv6_local" ] && ip -6 route del default dev "$dev" && ip -6 addr del "$ifconfig_ipv6_local" dev "$dev"
880
881
exit 0
882
</pre>
883 37 Mit Mit
884
h3. Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN, et faire AP WiFi
885
886
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.
887
Du coup, on l'aide (en supposant que le wlan soit en 192.168.2.0/24) :
888
<pre>
889
ip route del 192.168.2.0/24 dev wlan0 table main
890
ip route add 192.168.2.0/24 dev wlan0 table 4242
891
</pre>
892
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.