Projet

Général

Profil

Vpn doc user » Historique » Version 42

Florent Guillot, 23/06/2016 20:23

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