Projet

Général

Profil

Vpn doc user » Historique » Version 35

Florent Guillot, 07/02/2016 21:25
Ajout conf Yunohost

1 11 Baptiste Jonglez
h1. Documentation utilisateur pour le VPN Illyse
2 7 Baptiste Jonglez
3
{{>toc}}
4 1 Pierre-Arnaud Poudret
5 8 Baptiste Jonglez
Le VPN d'Illyse utilise **OpenVPN**, qui a l'avantage de fonctionner sur à peu près n'importe quelle plate-forme (GNU/Linux, OS X, Windows, Android, …)
6 1 Pierre-Arnaud Poudret
7 8 Baptiste Jonglez
Cette page sert de documentation utilisateur.  Pour l'instant, elle contient principalement des exemples de fichier de configuration pour le client openvpn.
8 1 Pierre-Arnaud Poudret
9 8 Baptiste Jonglez
Les fichiers de configuration donnés ici sont génériques, au sens où le reste de la configuration se fait via l'interface web abonné Illyse : https://coin.illyse.org/ (adresses IP à utiliser sur le tunnel, etc).
10 1 Pierre-Arnaud Poudret
11 18 Nicolas Nadisic
h3. Avant de commencer 
12
13
Se connecter au SI d'Illyse avec le nom d'utilisateur communiqué par mail : "COIN.":https://coin.illyse.org/members/login/?next=/ Si c'est votre première connexion, choisir un mot de passe pour COIN et bien le retenir.
14
15 19 Nicolas Nadisic
Aller dans la catégorie "Abonnements". Si rien n'apparait alors que vous avez souscrit au VPN, contacter adminsys@illyse.org. A la ligne "VPN", cliquer sur "Configurer". Noter le nom d'utilisateur (le mieux est de le copier dans un fichier texte brut, nous verrons pourquoi ensuite). Générer un mot de passe et le copier dans le même fichier. Attention, si vous perdez votre mot de passe il faudra en générer un nouveau.
16 18 Nicolas Nadisic
17 11 Baptiste Jonglez
h2. Note importante sur la sécurité
18 1 Pierre-Arnaud Poudret
19 13 Rémi Bouhl
Le VPN Illyse fournit une **IPv4 publique** et de l'IPv6 (elle aussi publique, évidemment).  **Aucun pare-feu (firewall) n'est en place côté Illyse** : assurez-vous d'avoir un **pare-feu (firewall)** sur votre machine lorsque vous utilisez le VPN. 
20 14 Rémi Bouhl
De plus il est possible que votre pare-feu considère la connexion VPN comme faisant partie d'un réseau "privé" et abaisse le niveau de sécurité sur cette connexion. 
21 1 Pierre-Arnaud Poudret
22 13 Rémi Bouhl
Vous pourriez vous retrouver à exposer sur Internet, entre autres :
23
24 22 Baptiste Jonglez
* un serveur SSH, avec des mots de passe faibles,
25
* un serveur Web, avec une application en cours de développement,
26
* un serveur mail mal configuré, susceptible de relayer du spam (open-relay) et de provoquer rapidement l'inscription de votre adresse IP dans des listes noires (RBL),
27
* le protocole SMB sur les systèmes Microsoft Windows, qui permet entre autres d'accéder aux partages réseaux et aux imprimantes.
28 13 Rémi Bouhl
29
Gardez à l'esprit que votre adresse IPv4 publique sera l'objet de scans intensifs depuis Internet, surtout si elle est utilisée pour la première fois.
30
31
Illyse vous fournit un accès à Internet neutre, ce qui signifie entre autres que l'association ne se permet pas de décider à la place ses abonnés de ce qu'il faut filtrer sur leur connexion. 
32
 
33
N'hésitez pas à demander de l'aide, à poser des questions, dans l'association ou ailleurs, pour conserver la pleine maîtrise de votre connexion :)
34 11 Baptiste Jonglez
35 24 Baptiste Jonglez
h2. Paramètres de connexion OpenVPN
36 12 Baptiste Jonglez
37 23 Baptiste Jonglez
Si vous savez déjà utiliser OpenVPN, les informations les plus importantes sont les suivantes :
38
39
* *Serveur :* vpn.illyse.net
40
* *Protocole :* UDP recommandé, TCP possible
41
* *Port :* quelconque (1194 est le port standard OpenVPN, mais tous les ports mènent au serveur VPN)
42
* *Compression :* non
43
* *Fragmentation :* 1300 octets
44
* *TCP MSS fix :* 1300 octets
45
46
Notez donc que le serveur OpenVPN d'Illyse écoute à la fois en UDP et en TCP, et ce, sur n'importe quel port.  Si vous êtes sur un réseau complètement bloqué mais que UDP/53 ou TCP/443 passe, pas de problème, le VPN passe !
47 12 Baptiste Jonglez
48
Pour des raisons de performance, UDP est recommandé.  N'utilisez le mode TCP qu'en dernier recours.  Référence : http://sites.inka.de/bigred/devel/tcp-tcp.html
49
50 15 Rémi Bouhl
h1. Exemples de configuration.
51
52 17 Nicolas Nadisic
Ces exemples de fichiers de configuration sont là pour vous aider à vous connecter au VPN.
53
54
h2. GNU/Linux (Debian Wheezy)
55
56
h3. Pour les débutants 
57
58 20 Nicolas Nadisic
Installer OpenVPN : ouvrir un terminal et taper "sudo aptitude install openvpn". Se connecter en root dans le terminal ("sudo su") et se placer dans le répertoire /etc/openvpn/ ("cd /etc/openvpn/"). Créer le fichier texte nommé illyse.conf (nano illyse.conf) et copier dedans la configuration ci-dessous. Créer le fichier texte nommé credentials et y insérer le nom d'utilisateur et le mot de passe stockés précédemment (une ligne chacun, voir modèle ci-dessous).
59 17 Nicolas Nadisic
60
Lancer le VPN avec la commande "service openvpn start illyse" (besoin d'être root). Ça devrait fonctionner ! Si ce n'est pas le cas, vérifier les étapes précédentes, et la connexion Internet. Si ça ne fonctionne toujours pas, écrire un gentil mail à adminsys@illyse.org en joignant le rapport d'erreur situé ici : /var/log/openvpn-illyse.log. Pour stopper le VPN, taper la commande "service openvpn stop illyse". 
61
62
63
h3. Fichier de configuration OpenVPN
64
65 12 Baptiste Jonglez
La configuration est commentée, n'hésitez pas à changer des paramètres.  Avec les paramètres ci-dessous, une IPv4 et une IPv6 seront attribués, et tout le trafic passera par le VPN.
66 1 Pierre-Arnaud Poudret
67
+/etc/openvpn/illyse.conf+
68
<pre>
69
# C'est nous qui prenons l'initiative de nous connecter au serveur.
70
client
71
72
# On route de l'IP, on ne fait pas de l'ethernet.
73
dev tun0
74
75
# si on ne reçoit pas d'IP pour tun0:
76
# - soit on configure l'interface avec des ip privées bidon
77
#ifconfig 10.255.255.1 10.255.255.2
78
# - soit on utilise un script pour faire "ifconfig tun0 up"
79
#script-security 2
80
#up up.sh
81
82
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
83
# cependant notable que les restrictions d'accès Internet laissent souvent
84
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
85
# pas, essayez tcp.
86
87
# Transport sur udp v4. En v6, la redirection de passerelle par défaut fonctionne mal (openvpn ne crée pas l'équivalent de la route /32 IPv4 vers le serveur vpn via la passerelle sous-jacente)
88
# Si on ne prévoit pas d'utiliser la directive "redirect-gateway def1", alors on peut choisir "proto udp6" pour monter le tunnel en IPv6.
89
#proto udp6
90
proto udp
91
#proto tcp
92
93
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
94
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
95
mssfix 1300
96
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
97
# quand ça dépasse.
98
fragment 1300
99
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
100
#mtu-disc yes
101
102
# En udp, Prévenir le serveur quand on termine, permet de relancer
103
# immédiatement sans attendre que le serveur se rende compte de la
104
# déconnexion par timeout.
105
explicit-exit-notify
106
107
# L'adresse du serveur.
108
remote vpn.illyse.net 1194
109
110
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
111
#http-proxy 192.0.2.1 8080
112
113
# Attendre un peu avant d'ajouter les routes.
114
route-delay 2
115
116
# Ne pas utiliser un port local statique, on est client de toutes façons.
117
nobind
118
119
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
120
# redémarrage.
121
persist-key
122
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
123
#persist-tun
124
125
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
126
redirect-gateway def1
127
128
# On peut aussi vouloir plutôt router seulement quelques destinations, par
129
# exemple ici tout Gitoyen:
130
#route 80.67.160.0 255.255.224.0
131
132 5 Baptiste Jonglez
# Activer IPv6 dans le tunnel
133 1 Pierre-Arnaud Poudret
tun-ipv6
134 5 Baptiste Jonglez
# et faire passer tout le trafic IPv6 via le VPN:
135 1 Pierre-Arnaud Poudret
route-ipv6 ::/1
136
route-ipv6 8000::/1
137
138
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
139
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
140
# fichier contenant ces deux informations, une par ligne.
141
auth-user-pass credentials
142
143
# Un minimum de debug, c'est toujours bien.
144
verb 3
145
146
log-append /var/log/openvpn-illyse.log
147
148
# Certificat permettant de vérifier que c'est bien à Illyse que
149
# l'on se connecte et donc à qui on donne notre mot de passe.
150
remote-cert-tls server
151
<ca>
152
-----BEGIN CERTIFICATE-----
153
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
189
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
190
-----END CERTIFICATE-----
191
</ca>
192
</pre>
193
194
195
+/etc/openvpn/credentials+
196
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.)
197
198
Spécifier login et mot de passe sur deux lignes différences.
199
200
<pre>
201
jkleboulet-vpn1
202
omgsuchsecured123
203
</pre>
204
205
206 3 Pierre-Arnaud Poudret
h3. Mise à jour automatique de resolv.conf
207
208
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
209
210
<pre>
211
<mit-mit> Bon, ça marche, faut ajouter à la config :
212
<mit-mit> script-security 2
213
<mit-mit> up /etc/openvpn/update-resolv-conf
214
<mit-mit> down /etc/openvpn/update-resolv-conf
215
<mit-mit> et avoir resolvconf d'installé.
216
<mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes)
217
</pre>
218
219 26 Côme chillie
h2. GNU/Linux (Network Manager)
220
221
Il est possible de configurer graphiquement le VPN via Network Manager.
222
(J’utilise la version KDE, des détails peuvent varier si vous utilisez la version gtk)
223
224 31 Florent Guillot
Téléchargez le fichier attachment:vpn-illyse.crt.
225
226 28 Côme chillie
Installez le backend openvpn pour Network Manager, puis créez une nouvelle connexion de type openvpn.
227 27 Côme chillie
Complétez comme suit, indiquez le chemin du fichier crt, votre login et votre mot de passe VPN :
228 1 Pierre-Arnaud Poudret
!vpn1.png!
229 27 Côme chillie
Cliquez sur «Avancé», mettez 1300 dans «Taille du fragment UDP» et cochez «Restreindre la taille maximale du segment TCP (MSS)»
230
!vpn2.png!
231 3 Pierre-Arnaud Poudret
232 29 Côme chillie
h2. Windows
233 1 Pierre-Arnaud Poudret
234 29 Côme chillie
Installez OpenVPN, par exemple en suivant la documentation présente ici : http://www.rezine.org/documentation/tunnels_chiffres/#index4h1
235
236
Créez ensuite le fichier suivant.  
237
Faites attention à l’extension des fichiers : parfois Windows ajoute une extension .txt aux fichiers sans le dire.
238
239 2 Pierre-Arnaud Poudret
+C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+
240
<pre>
241
# C'est nous qui prenons l'initiative de nous connecter au serveur.
242
client
243
244
# On route de l'IP, on ne fait pas de l'ethernet.
245
dev tun0
246
247
# si on ne reçoit pas d'IP pour tun0:
248
# - soit on configure l'interface avec des ip privées bidon
249
#ifconfig 10.255.255.1 10.255.255.2
250
# - soit on utilise un script pour faire "ifconfig tun0 up"
251
#script-security 2
252
#up up.sh
253
254
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
255
# cependant notable que les restrictions d'accès Internet laissent souvent
256
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
257
# pas, essayez tcp.
258
259
#proto udp6
260
proto udp
261
#proto tcp
262
263
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
264
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
265
mssfix 1300
266
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
267
# quand ça dépasse.
268
fragment 1300
269
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
270
#mtu-disc yes
271
272
#mtu-test
273
#link-mtu 1300
274
#tun-mtu 1300
275
276
# En udp, Prévenir le serveur quand on termine, permet de relancer
277
# immédiatement sans attendre que le serveur se rende compte de la
278
# déconnexion par timeout.
279
explicit-exit-notify
280
281
# L'adresse du serveur.
282
remote vpn.illyse.net 1194
283
284
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
285
#http-proxy 192.0.2.1 8080
286
287
# Pour windows: utiliser route.exe.
288
route-method exe
289
290
# Attendre un peu avant d'ajouter les routes.
291
route-delay 2
292
293
# Ne pas utiliser un port local statique, on est client de toutes façons.
294
nobind
295
296
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
297
# redémarrage.
298
persist-key
299
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
300
#persist-tun
301
302
#ip-win32 ipapi
303
304
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
305 1 Pierre-Arnaud Poudret
redirect-gateway def1
306 2 Pierre-Arnaud Poudret
307 1 Pierre-Arnaud Poudret
# On peut aussi vouloir plutôt router seulement quelques destinations, par
308 2 Pierre-Arnaud Poudret
# exemple ici tout Gitoyen:
309
#route 80.67.160.0 255.255.224.0
310
311 5 Baptiste Jonglez
# Activer IPv6 dans le VPN
312 2 Pierre-Arnaud Poudret
tun-ipv6
313 5 Baptiste Jonglez
# Faire passer tout le trafic IPv6 via le VPN:
314 2 Pierre-Arnaud Poudret
route-ipv6 ::/1
315
route-ipv6 8000::/1
316
317
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
318
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
319
# fichier contenant ces deux informations, une par ligne.
320
auth-user-pass credentials
321
322
# Un minimum de debug, c'est toujours bien.
323
verb 3
324
325
#log-append /var/log/openvpn-illyse.log
326
327
# Certificat permettant de vérifier que c'est bien à Illyse que
328
# l'on se connecte et donc à qui on donne notre mot de passe.
329
remote-cert-tls server
330
<ca>
331
-----BEGIN CERTIFICATE-----
332
MIIG2TCCBMGgAwIBAgIJAPAWK4ceEBXzMA0GCSqGSIb3DQEBBQUAMIGjMQswCQYD
333
VQQGEwJGUjEMMAoGA1UECBMDUkhBMRUwEwYDVQQHEwxWaWxsZXVyYmFubmUxDzAN
334
BgNVBAoTBklMTFlTRTEQMA4GA1UECxMHb3BlbnZwbjEaMBgGA1UEAxMRaWxseXNl
335
LW9wZW52cG4tY2ExDzANBgNVBCkTBklMTFlTRTEfMB0GCSqGSIb3DQEJARYQYWJ1
336
c2VAaWxseXNlLm9yZzAeFw0xNDAzMTgyMTMyMjNaFw0yNDAzMTUyMTMyMjNaMIGj
337
MQswCQYDVQQGEwJGUjEMMAoGA1UECBMDUkhBMRUwEwYDVQQHEwxWaWxsZXVyYmFu
338
bmUxDzANBgNVBAoTBklMTFlTRTEQMA4GA1UECxMHb3BlbnZwbjEaMBgGA1UEAxMR
339
aWxseXNlLW9wZW52cG4tY2ExDzANBgNVBCkTBklMTFlTRTEfMB0GCSqGSIb3DQEJ
340
ARYQYWJ1c2VAaWxseXNlLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
341
ggIBAKl/s6IoAsJTxw82xps5PHPTMjKhONFNk4gJMdSngbhGMcRM5ebwD9Dhfava
342
w9NjWiwNhikhnRWW3HGrv+BE7cqga16ryuLCievG1nfqZMpa3EnfWwwmHClMV9Zf
343
OPb/AD2V3t2MAvZ1ZcvyTe/p/3eHovHhEHJ2qXtd0iI9u8b7xcEm9vXIw7kYN2dQ
344
xIe9Wd85tja2IBtf67oBS8JZxSkIcEY7KAXsFUtFyGn6fbPGj8UGM+roiYqzEYa/
345
BNvc2eEfhhpHSoN5vRKu0LrVUA3uA41dOKcxW15af4Xy058l0aUWeSK64jK/cL24
346
fmBZoQfdS9U5P5wnm4tpRR7oesdrohhbVWn4JjRyF31HM1FtAoT6oTqhhlrImpGw
347
j7nAGlItT04C73wgiSajFJryo24XuedzjFxm3BetAcSUyE5e3BSqTUbEtWdTdiw1
348
l3/WQyyBrn98SChBExmpklecI5eFp/DoLBqwW/U/vseD7zMfF7OHnHtbsbniUujN
349
WjNGiWnVJ636nTfPIDsngGTACWh5ZwxX0fGW2+RqS2NN9R1dGWdW34lgfwx04Wzc
350
l0NZ++itmJq5iJUw9Kj9mmQZn96V8b6hDnhcJfkvUlgxhHcZ5isfOwQq6UcP3mZP
351
zOCWuCwIKNPMLcJmC684mkJJrJuCc6N9pNm7jjmdPkW/0j2VAgMBAAGjggEMMIIB
352
CDAdBgNVHQ4EFgQUXUSESsSBdTGjlbvo+Sbsiwo+E/4wgdgGA1UdIwSB0DCBzYAU
353
XUSESsSBdTGjlbvo+Sbsiwo+E/6hgamkgaYwgaMxCzAJBgNVBAYTAkZSMQwwCgYD
354
VQQIEwNSSEExFTATBgNVBAcTDFZpbGxldXJiYW5uZTEPMA0GA1UEChMGSUxMWVNF
355
MRAwDgYDVQQLEwdvcGVudnBuMRowGAYDVQQDExFpbGx5c2Utb3BlbnZwbi1jYTEP
356
MA0GA1UEKRMGSUxMWVNFMR8wHQYJKoZIhvcNAQkBFhBhYnVzZUBpbGx5c2Uub3Jn
357
ggkA8BYrhx4QFfMwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAgEATAlP
358
EQXjzQ10xkQdUNXjy+s87DWcbpu3n4Wlc4E828Ek6D1LhbPeVL7wTyhHj+Txxy8o
359
4sCCL+oH/HgnMEy7VHs0HXpD3F9iPD8U3QiL1sfO+0IKOhBOKAsjmpuH+oCsXpZ0
360
J/GnebPQ6S+wBFCZH3uU5jIeB4WCFpzn2WQVIXh+lzKKWLN3GxfxdWkIyl4Fluj4
361
6k0Lj35EtE74wZTWbCkum7rNOp9gnGtrcyAupwj2MTeVcLzigYLth/G6AA3a7VeE
362
hlvJqV7URhiwXL8lQjaMoDFYiD8zhBn44tLwKMiTvyHfNs0+1mcteoDwI20SKo3F
363
VUnyCqc9k9Dq0YfE4RqhjmsMcV6HydaznCclnIrugPdFAQzGbk7bNZJ3yv0ATj9Z
364
wcfHxIUEuPl392OvJDm/JEbegonQ4yyv2B8OAacZ4HPm/6FeYS/jyOe66BUku0rd
365
LSVaB9OD7iVWkW5eo6ng3XA390HIUUtf/0IdtiCoMsjuZbVagfiaUu0kUJpR6d2k
366
r5czdLFhRu8uw0sWn1rMQXlUAqH0WAfoq8XinaHesWs5MEnvevjoUTkNhFnqe1Ra
367
rkwU9mzr1/N6GfpPalbveD0duTGAkJN5mwLZi+HZ4ctLgO1ShYFU/NbC7jNU3YCU
368
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
369
-----END CERTIFICATE-----
370
</ca>
371
</pre>
372 1 Pierre-Arnaud Poudret
373 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 :
374 2 Pierre-Arnaud Poudret
375
+C:\Program Files\OpenVPN\config\illyse\credentials+
376
377
<pre>
378
jkleboulet-vpn1
379 1 Pierre-Arnaud Poudret
omgsuchsecured123
380
</pre>
381 29 Côme chillie
382
Si vous ne voulez pas utiliser un tel fichier, commentez la ligne «auth-user-pass credentials» dans la configuration.
383 4 Fabien Michel
384
h2. Mac OS X
385
386
Installer le client OpenVPN Tunnelblick : https://code.google.com/p/tunnelblick/
387
388
Créer un fichier illyse.ovpn avec la configuration voulue. Celle indiquée ci-dessous fonctionne sans modification necessaire.
389
Double-cliquer sur le fichier afin que TunnelBlick import la configuration.
390
A la première connexion, il va demander un couple login/password qu'il sera possible de stocker dans le trousseau.
391
392
Paramètres modifiés par rapport à la configuration pour Linux :
393
* log-append : Ce paramètre n'est pas accepté. Mais tunnelblick log déjà en interne.
394
* 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
395
* 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)
396
397
+illyse.ovpn+
398
<pre>
399
client
400
dev tun0
401
proto udp
402
mssfix 1300
403
fragment 1300
404
explicit-exit-notify
405
remote vpn.illyse.net 1194
406
#http-proxy 192.0.2.1 8080
407
route-delay 2
408
nobind
409
410
persist-key
411
persist-tun
412
413
redirect-gateway def1
414
#route 80.67.160.0 255.255.224.0
415
416
tun-ipv6
417
route-ipv6 ::/1
418
route-ipv6 8000::/1
419
420
auth-user-pass
421
verb 3
422
423
remote-cert-tls server
424
<ca>
425
-----BEGIN CERTIFICATE-----
426
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
459 1 Pierre-Arnaud Poudret
LSVaB9OD7iVWkW5eo6ng3XA390HIUUtf/0IdtiCoMsjuZbVagfiaUu0kUJpR6d2k
460
r5czdLFhRu8uw0sWn1rMQXlUAqH0WAfoq8XinaHesWs5MEnvevjoUTkNhFnqe1Ra
461
rkwU9mzr1/N6GfpPalbveD0duTGAkJN5mwLZi+HZ4ctLgO1ShYFU/NbC7jNU3YCU
462
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
463
-----END CERTIFICATE-----
464
</ca>
465 15 Rémi Bouhl
466
</pre>
467
468
469
h2. Android 
470
471
Configuration OpenVPN pour Android (testé sous Android 4.4.4 et OpenVPN for Android v0.6.17)
472
Ci-après un fichier de configuration qui devrait fonctionner avec l'application Android OpenVPN for Android, 
473
Disponible sur F-Droid : https://f-droid.org/repository/browse/?fdfilter=openvpn&fdid=de.blinkt.openvpn
474
Ou au pire sur le PlayStore : https://play.google.com/store/apps/details?id=de.blinkt.openvpn
475
Posez le fichier de configuration, renommé en VPN-Illyse.conf par exemple, sur l'appareil.
476
Une fois l'application installée et démarrée, cliquez sur le dossier en bas à droite et chezchez le fichier de configuration.
477
Il suffit de renseigner les identifiants.
478
479
<pre>
480 16 Rémi Bouhl
481 15 Rémi Bouhl
#
482
# Fichier de configuration VPN Illyse pour Android
483
# 2014-10-14
484
#
485
# Enables connection to GUI
486
management /data/data/de.blinkt.openvpn/cache/mgmtsocket unix
487
management-client
488
management-query-passwords
489
management-hold
490
setenv IV_GUI_VER "de.blinkt.openvpn 0.6.17" 
491
machine-readable-output
492
client
493
verb 4
494
connect-retry-max 5
495
connect-retry 5
496
resolv-retry 60
497
dev tun
498
remote vpn.illyse.net 1194 udp
499
auth-user-pass
500
route-ipv6 ::/0
501
route 0.0.0.0 0.0.0.0 vpn_gateway
502
remote-cert-tls server
503
persist-tun
504
# persist-tun also enables pre resolving to avoid DNS resolve problem
505
preresolve
506
# Use system proxy setting
507
management-query-proxy
508
# Custom configuration options
509
# You are on your on own here 
510
mssfix 1300 
511
fragment 1300
512
<ca>
513
-----BEGIN CERTIFICATE-----
514
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
550
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
551
-----END CERTIFICATE-----
552
</ca>
553 16 Rémi Bouhl
554 4 Fabien Michel
555
</pre>
556 8 Baptiste Jonglez
557 30 Florent Guillot
h2. Yunohost
558
559 32 Florent Guillot
h3. Installer le client VPN
560 30 Florent Guillot
561 32 Florent Guillot
* Dans Applications > Install, en bas de la page, entrer 'https://github.com/labriqueinternet/vpnclient_ynh' dans le champ *Install custom app*.
562
* Lire et valider l'avertissement.
563
* Valider l'installation en cliquant sur le bouton *Install*
564 1 Pierre-Arnaud Poudret
565 32 Florent Guillot
h3. Configurer le client VPN 
566 34 Florent Guillot
567
* Dans Applications > VPN Client, cliquer sur l'URL _https://maBrique.nohost.me/vpnadmin_
568
> * Server Address: vpn.illyse.net
569
> * Server Port: 1194
570
> * Protocol: UDP
571
> * Advanced: copier coller la configuration suivante:
572
<pre>
573
remote <TPL:SERVER_NAME>
574
proto <TPL:PROTO>
575
port <TPL:SERVER_PORT>
576
577
pull
578
nobind
579
dev tun
580
tun-ipv6
581
keepalive 10 30
582
resolv-retry infinite
583
584
mssfix 1300
585
586
route-delay 2
587
nobind
588
persist-key
589
590
# Authentication by login
591
<TPL:LOGIN_COMMENT>auth-user-pass /etc/openvpn/keys/credentials
592
593
# UDP only
594
<TPL:UDP_COMMENT>explicit-exit-notify
595
<TPL:UDP_COMMENT>fragment 1300
596
597
# TLS
598
tls-client
599
<TPL:TA_COMMENT>tls-auth /etc/openvpn/keys/user_ta.key 1
600
remote-cert-tls server
601
ns-cert-type server
602
ca /etc/openvpn/keys/ca-server.crt
603
<TPL:CERT_COMMENT>cert /etc/openvpn/keys/user.crt
604
<TPL:CERT_COMMENT>key /etc/openvpn/keys/user.key
605
606
# Logs
607
verb 3
608
mute 5
609
status /var/log/openvpn-client.status
610
log-append /var/log/openvpn-illyse.log
611
612
# Routing
613
route-ipv6 2000::/3
614
redirect-gateway def1
615 35 Florent Guillot
</pre>
616
> * Server CA: Téléchargez le fichier attachment:vpn-illyse.crt et le téléverser.
617
> * Username: pdupond-vpn1 (information issue de coin, cf section #Avant-de-commencer)
618
> * Password: idem
619
> * First resolver: 89.234.140.2
620
> * 2nd resolver : 2a00:5881:4000::1
621 1 Pierre-Arnaud Poudret
622 35 Florent Guillot
L'ensemble des autres champs est à laisser sur la valeur par défaut.
623 30 Florent Guillot
624 9 Baptiste Jonglez
h1. Configurations avancées
625 8 Baptiste Jonglez
626 9 Baptiste Jonglez
h2. Client sans IP montée sur le tunnel
627 8 Baptiste Jonglez
628 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.
629 1 Pierre-Arnaud Poudret
630 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 :
631
632
+/etc/openvpn/illyse.conf+
633
<pre>
634
...
635
route-delay 2
636
redirect-gateway def1
637
638
script-security 2
639
up illyse-up.sh
640
...
641
</pre>
642
643
+/etc/openvpn/illyse-up.sh+
644
<pre>
645
#!/bin/sh
646
tun_dev="$1"
647
ip link set "$tun_dev" up
648
ip route add "$route_vpn_gateway" dev "$tun_dev"
649
exit 0
650
</pre>
651
652
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut par la connexion normale
653 10 Baptiste Jonglez
654
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).
655
656
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).
657
658
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.
659
660
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 :)
661
(la configuration ci-dessous est similaire à http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting )
662
663
+/etc/openvpn/up.sh+
664
<pre>
665
#!/bin/bash
666
667
dev="$1"
668
tun_mtu="$2"
669
link_mtu="$3"
670
local_ip="$4"
671
remote_ip="$5"
672
673
# Routing table to use
674
table=4242
675
676
# Source-specific routing: use the normal default route by default,
677
# but use the VPN for replying to packets coming from the VPN.
678
# IPv4
679
[ -n "$local_ip" ] && ip rule add from "$local_ip" table "$table" && ip route add default dev "$dev" table "$table"
680
# IPv6
681
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule add from "$ifconfig_ipv6_local" table "$table" && ip -6 route add default dev "$dev" table "$table"
682
</pre>
683
684
+/etc/openvpn/down.sh+
685
<pre>
686
#!/bin/bash
687
688
dev="$1"
689
tun_mtu="$2"
690
link_mtu="$3"
691
local_ip="$4"
692
remote_ip="$5"
693
694
table=4242
695
696
# Delete table for source-specific routing.
697
[ -n "$local_ip" ] && ip rule del from "$local_ip" && ip route del default table "$table"
698
[ -n "$ifconfig_ipv6_local" ] && ip -6 rule del from "$ifconfig_ipv6_local" && ip -6 route del default table "$table"
699
700
exit 0
701
</pre>
702
703
+/etc/openvpn/illyse.conf+
704
<pre>
705
## Configuration VPN Illyse pour accepter des connexions entrantes
706
## à la fois via le VPN et via la connexion normale, grâce au policy routing (Linux uniquement)
707
## https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user#Utiliser-simultanément-la-connexion-normale-et-le-VPN
708
709
# Gestion des routes via des scripts externes.
710
script-security 2
711
up up.sh
712
down down.sh
713
714
715
# Reste de la configuration normale.
716
# Penser à enlever "redirect-gateway" et "route-ipv6", on gère les
717
# routes via up.sh et down.sh
718
client
719
remote vpn.illyse.net 1194
720
#http-proxy 192.0.2.1 8080
721
dev tun0
722
723
#proto udp6
724
proto udp
725
#proto tcp
726
explicit-exit-notify
727
728
mssfix 1300
729
fragment 1300
730
731
route-delay 2
732
nobind
733
persist-key
734
persist-tun
735
736
tun-ipv6
737
738
auth-user-pass credentials
739
740
verb 3
741
log-append /var/log/openvpn-illyse.log
742
743
# Certificat permettant de vérifier que c'est bien à Illyse que
744
# l'on se connecte et donc à qui on donne notre mot de passe.
745
remote-cert-tls server
746
<ca>
747
-----BEGIN CERTIFICATE-----
748
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
784
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
785
-----END CERTIFICATE-----
786
</ca>
787
</pre>
788 21 Mit Mit
789
h2. Utiliser simultanément la connexion normale et le VPN, sortie par défaut via le VPN
790
791
Dans la configuration précédente, les deux IPs, FAI et VPN, sont accessibles de l'extérieur et répondent correctement.
792
La machine toutefois utilise par défaut la sortie FAI plutôt que le VPN.
793
Le cas décrit ici a son IP FAI obtenue par DHCP, avec la table de routage main, et sans IPv6.
794
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.
795
796
É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
797
É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.
798
+/etc/openvpn/up.conf+
799
<pre>
800
#!/bin/bash
801
802
dev="$1"
803
isp_dev="eth0"
804
tun_mtu="$2"
805
link_mtu="$3"
806
local_ip="$4"
807
remote_ip="$5"
808
isp_ip="WWW.XXX.YYY.ZZZ"
809
isp_gateway="WWW.XXX.YYY.ZZZ"
810
vpn_server="89.234.140.3"
811
812
# Routing table to use
813
tableVPN=4242
814
tableLOC=1337
815
816
# IP inconnue de COIN, donc tun0 à monter
817
ip link set "$dev" up
818
ip addr add "$local_ip"/32 dev "$dev"
819
820
# Source-specific routing: use the normal default route by default,
821
# but use the VPN for replying to packets coming from the VPN.
822
# IPv4
823
if [ -n "local_ip" ]; then
824
  ip rule add pref 31000 lookup "$tableLOC"
825
  ip rule add pref 31050 from "$isp_ip" lookup main
826
  ip rule add pref 31100 lookup "$tableVPN"
827
  ip route add default dev "$dev" table "$tableVPN"
828
  ip route add "$vpn_server" via "$isp_gateway" table "$tableLOC" dev "$isp_dev"
829
fi
830
831
# IPv6
832
[ -n "$ifconfig_ipv6_local" ] && ip -6 addr add "$ifconfig_ipv6_local" dev "$dev" && ip -6 route add default dev "$dev"
833
834
exit 0
835
</pre>
836
837
+/etc/openvpn/down.conf+
838
<pre>
839
dev="$1"
840
tun_mtu="$2"
841
link_mtu="$3"
842
local_ip="$4"
843
remote_ip="$5"
844
isp_ip="WWW.XXX.YYY.ZZZ"
845
isp_gateway="WWW.XXX.YYY.ZZZ"
846
vpn_server="89.234.140.3"
847
848
# Routing table to use
849
tableVPN=4242
850
tableLOC=1337
851
852
# Delete table for source-specific routing.
853
if [ "$local_ip" ]; then
854
  ip route del "$vpn_server" via "$isp_gateway" table "$tableLOC"
855
  ip route del default dev "$dev" table "$tableVPN"
856
  ip rule del pref 31100 lookup "$tableVPN"
857
  ip rule del pref 31050 from "$isp_ip" lookup main
858
  ip rule del pref 31000 lookup "$tableLOC"
859
fi
860
861
[ -n "$ifconfig_ipv6_local" ] && ip -6 route del default dev "$dev" && ip -6 addr del "$ifconfig_ipv6_local" dev "$dev"
862
863
exit 0
864
</pre>