Projet

Général

Profil

Vpn doc user » Historique » Version 57

Florent Guillot, 08/05/2017 18:41

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