Projet

Général

Profil

Vpn doc user » Historique » Version 3

Pierre-Arnaud Poudret, 21/07/2014 14:24

1 1 Pierre-Arnaud Poudret
h1. Serveur VPN
2
3
Documentation utilisateur.
4
5
*En cours de rédaction*
6
7
8
h1. Documentation pour la phase de test
9
10
Pour l'instant, en guise de doc, voici des exemples de fichier de configuration pour le client openvpn.
11
12
Par défaut, les comptes de tests sont paramétrés pour configurer sur l'interface tun du client l'IPv4 publique et la première IP du range IPv6 de l'abonné.
13
Pour ceux qui veulent bricoler, il est possible de modifier ce comportement (ça se passe dans le ldap). On peut notamment monter une autre IP du range v6 sur tun0, voire 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.
14
15
h2. Linux (testé sous debian wheezy)
16
17
+/etc/openvpn/illyse.conf+
18
<pre>
19
# C'est nous qui prenons l'initiative de nous connecter au serveur.
20
client
21
22
# On route de l'IP, on ne fait pas de l'ethernet.
23
dev tun0
24
25
# si on ne reçoit pas d'IP pour tun0:
26
# - soit on configure l'interface avec des ip privées bidon
27
#ifconfig 10.255.255.1 10.255.255.2
28
# - soit on utilise un script pour faire "ifconfig tun0 up"
29
#script-security 2
30
#up up.sh
31
32
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
33
# cependant notable que les restrictions d'accès Internet laissent souvent
34
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
35
# pas, essayez tcp.
36
37
# 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)
38
# 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.
39
#proto udp6
40
proto udp
41
#proto tcp
42
43
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
44
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
45
mssfix 1300
46
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
47
# quand ça dépasse.
48
fragment 1300
49
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
50
#mtu-disc yes
51
52
# En udp, Prévenir le serveur quand on termine, permet de relancer
53
# immédiatement sans attendre que le serveur se rende compte de la
54
# déconnexion par timeout.
55
explicit-exit-notify
56
57
# L'adresse du serveur.
58
remote vpn.illyse.net 1194
59
60
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
61
#http-proxy 192.0.2.1 8080
62
63
# Attendre un peu avant d'ajouter les routes.
64
route-delay 2
65
66
# Ne pas utiliser un port local statique, on est client de toutes façons.
67
nobind
68
69
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
70
# redémarrage.
71
persist-key
72
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
73
#persist-tun
74
75
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
76
redirect-gateway def1
77
78
# On peut aussi vouloir plutôt router seulement quelques destinations, par
79
# exemple ici tout Gitoyen:
80
#route 80.67.160.0 255.255.224.0
81
82
# Décommenter cette ligne pour activer IPv6
83
tun-ipv6
84
# et corriger et décommenter cette ligne pour configurer l'IPv6 qu'on va utiliser
85
# parmi le /48. Il faut remplacer xy par l'écriture hexadécimale de la fin de l'IPv6,
86
# ou bien simplement regarder dans l'espace adhérent ce qu'elle vaut
87
#ifconfig-ipv6 2001:910:13xy::1 2001:910:1301::1
88
# et décommenter cette ligne pour faire passer tout le trafic IPv6 via le VPN:
89
route-ipv6 ::/1
90
route-ipv6 8000::/1
91
92
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
93
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
94
# fichier contenant ces deux informations, une par ligne.
95
auth-user-pass credentials
96
97
# Un minimum de debug, c'est toujours bien.
98
verb 3
99
100
log-append /var/log/openvpn-illyse.log
101
102
# Certificat permettant de vérifier que c'est bien à Illyse que
103
# l'on se connecte et donc à qui on donne notre mot de passe.
104
remote-cert-tls server
105
<ca>
106
-----BEGIN CERTIFICATE-----
107
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
143
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
144
-----END CERTIFICATE-----
145
</ca>
146
</pre>
147
148
149
+/etc/openvpn/credentials+
150
(Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.)
151
152
Spécifier login et mot de passe sur deux lignes différences.
153
154
<pre>
155
jkleboulet-vpn1
156
omgsuchsecured123
157
</pre>
158
159
160 3 Pierre-Arnaud Poudret
h3. Mise à jour automatique de resolv.conf
161
162
Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN.
163
164
<pre>
165
<mit-mit> Bon, ça marche, faut ajouter à la config :
166
<mit-mit> script-security 2
167
<mit-mit> up /etc/openvpn/update-resolv-conf
168
<mit-mit> down /etc/openvpn/update-resolv-conf
169
<mit-mit> et avoir resolvconf d'installé.
170
<mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes)
171
</pre>
172
173
174 1 Pierre-Arnaud Poudret
h2. Windows XP
175 2 Pierre-Arnaud Poudret
176
+C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+
177
<pre>
178
# C'est nous qui prenons l'initiative de nous connecter au serveur.
179
client
180
181
# On route de l'IP, on ne fait pas de l'ethernet.
182
dev tun0
183
184
# si on ne reçoit pas d'IP pour tun0:
185
# - soit on configure l'interface avec des ip privées bidon
186
#ifconfig 10.255.255.1 10.255.255.2
187
# - soit on utilise un script pour faire "ifconfig tun0 up"
188
#script-security 2
189
#up up.sh
190
191
# Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est
192
# cependant notable que les restrictions d'accès Internet laissent souvent
193
# plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne
194
# pas, essayez tcp.
195
196
#proto udp6
197
proto udp
198
#proto tcp
199
200
# Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions
201
# TCP d'être très conservatives, pour que ça marche plus ou moins partout.
202
mssfix 1300
203
# En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin
204
# quand ça dépasse.
205
fragment 1300
206
# Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner...
207
#mtu-disc yes
208
209
#mtu-test
210
#link-mtu 1300
211
#tun-mtu 1300
212
213
# En udp, Prévenir le serveur quand on termine, permet de relancer
214
# immédiatement sans attendre que le serveur se rende compte de la
215
# déconnexion par timeout.
216
explicit-exit-notify
217
218
# L'adresse du serveur.
219
remote vpn.illyse.net 1194
220
221
# Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy.
222
#http-proxy 192.0.2.1 8080
223
224
# Pour windows: utiliser route.exe.
225
route-method exe
226
227
# Attendre un peu avant d'ajouter les routes.
228
route-delay 2
229
230
# Ne pas utiliser un port local statique, on est client de toutes façons.
231
nobind
232
233
# Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un
234
# redémarrage.
235
persist-key
236
# Ne pas tuer l'interface du tunnel lors d'un redémarrage.
237
#persist-tun
238
239
#ip-win32 ipapi
240
241
# Décommenter cette ligne pour faire passer tout le trafic via le VPN:
242
redirect-gateway def1
243
244
# On peut aussi vouloir plutôt router seulement quelques destinations, par
245
# exemple ici tout Gitoyen:
246
#route 80.67.160.0 255.255.224.0
247
248
# Décommenter cette ligne pour activer IPv6
249
tun-ipv6
250
# et corriger et décommenter cette ligne pour configurer l'IPv6 qu'on va utiliser
251
# parmi le /48. Il faut remplacer xy par l'écriture hexadécimale de la fin de l'IPv6,
252
# ou bien simplement regarder dans l'espace adhérent ce qu'elle vaut
253
#ifconfig-ipv6 2001:910:13xy::1 2001:910:1301::1
254
# et décommenter cette ligne pour faire passer tout le trafic IPv6 via le VPN:
255
route-ipv6 ::/1
256
route-ipv6 8000::/1
257
258
# Envoyer un login et un mot de passe. Pour éviter de taper à la main login
259
# et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un
260
# fichier contenant ces deux informations, une par ligne.
261
auth-user-pass credentials
262
263
# Un minimum de debug, c'est toujours bien.
264
verb 3
265
266
#log-append /var/log/openvpn-illyse.log
267
268
# Certificat permettant de vérifier que c'est bien à Illyse que
269
# l'on se connecte et donc à qui on donne notre mot de passe.
270
remote-cert-tls server
271
<ca>
272
-----BEGIN CERTIFICATE-----
273
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
309
sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc=
310
-----END CERTIFICATE-----
311
</ca>
312
</pre>
313
314
315
316
+C:\Program Files\OpenVPN\config\illyse\credentials+
317
318
<pre>
319
jkleboulet-vpn1
320
omgsuchsecured123
321
</pre>