Projet

Général

Profil

Vpn doc user » Historique » Révision 3

Révision 2 (Pierre-Arnaud Poudret, 01/07/2014 17:42) → Révision 3/68 (Pierre-Arnaud Poudret, 21/07/2014 14:24)

h1. Serveur VPN 

 Documentation utilisateur. 

 *En cours de rédaction* 


 h1. Documentation pour la phase de test 

 Pour l'instant, en guise de doc, voici des exemples de fichier de configuration pour le client openvpn. 

 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é. 
 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. 

 h2. Linux (testé sous debian wheezy) 

 +/etc/openvpn/illyse.conf+ 
 <pre> 
 # C'est nous qui prenons l'initiative de nous connecter au serveur. 
 client 

 # On route de l'IP, on ne fait pas de l'ethernet. 
 dev tun0 

 # si on ne reçoit pas d'IP pour tun0: 
 # - soit on configure l'interface avec des ip privées bidon 
 #ifconfig 10.255.255.1 10.255.255.2 
 # - soit on utilise un script pour faire "ifconfig tun0 up" 
 #script-security 2 
 #up up.sh 

 # Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est 
 # cependant notable que les restrictions d'accès Internet laissent souvent 
 # plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne 
 # pas, essayez tcp. 

 # 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) 
 # 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. 
 #proto udp6 
 proto udp 
 #proto tcp 

 # Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions 
 # TCP d'être très conservatives, pour que ça marche plus ou moins partout. 
 mssfix 1300 
 # En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin 
 # quand ça dépasse. 
 fragment 1300 
 # Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner... 
 #mtu-disc yes 

 # En udp, Prévenir le serveur quand on termine, permet de relancer 
 # immédiatement sans attendre que le serveur se rende compte de la 
 # déconnexion par timeout. 
 explicit-exit-notify 

 # L'adresse du serveur. 
 remote vpn.illyse.net 1194 

 # Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy. 
 #http-proxy 192.0.2.1 8080 

 # Attendre un peu avant d'ajouter les routes. 
 route-delay 2 

 # Ne pas utiliser un port local statique, on est client de toutes façons. 
 nobind 

 # Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un 
 # redémarrage. 
 persist-key 
 # Ne pas tuer l'interface du tunnel lors d'un redémarrage. 
 #persist-tun 

 # Décommenter cette ligne pour faire passer tout le trafic via le VPN: 
 redirect-gateway def1 

 # On peut aussi vouloir plutôt router seulement quelques destinations, par 
 # exemple ici tout Gitoyen: 
 #route 80.67.160.0 255.255.224.0 

 # Décommenter cette ligne pour activer IPv6 
 tun-ipv6 
 # et corriger et décommenter cette ligne pour configurer l'IPv6 qu'on va utiliser 
 # parmi le /48. Il faut remplacer xy par l'écriture hexadécimale de la fin de l'IPv6, 
 # ou bien simplement regarder dans l'espace adhérent ce qu'elle vaut 
 #ifconfig-ipv6 2001:910:13xy::1 2001:910:1301::1 
 # et décommenter cette ligne pour faire passer tout le trafic IPv6 via le VPN: 
 route-ipv6 ::/1 
 route-ipv6 8000::/1 

 # Envoyer un login et un mot de passe. Pour éviter de taper à la main login 
 # et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un 
 # fichier contenant ces deux informations, une par ligne. 
 auth-user-pass credentials 

 # Un minimum de debug, c'est toujours bien. 
 verb 3 

 log-append /var/log/openvpn-illyse.log 

 # Certificat permettant de vérifier que c'est bien à Illyse que 
 # l'on se connecte et donc à qui on donne notre mot de passe. 
 remote-cert-tls server 
 <ca> 
 -----BEGIN CERTIFICATE----- 
 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 
 sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc= 
 -----END CERTIFICATE----- 
 </ca> 
 </pre> 


 +/etc/openvpn/credentials+ 
 (Seulement si vous voulez stocker votre mot de passe. En clair. Oui, c'est moche.) 

 Spécifier login et mot de passe sur deux lignes différences. 

 <pre> 
 jkleboulet-vpn1 
 omgsuchsecured123 
 </pre> 


 h3. Mise à jour automatique de resolv.conf 

 Pour que resolv.conf soit mis à jour par openvpn avec les IP des resolvers DNS Illyse poussées par le serveur VPN. 

 <pre> 
 <mit-mit> Bon, ça marche, faut ajouter à la config : 
 <mit-mit> script-security 2 
 <mit-mit> up /etc/openvpn/update-resolv-conf 
 <mit-mit> down /etc/openvpn/update-resolv-conf 
 <mit-mit> et avoir resolvconf d'installé. 
 <mit-mit> (la première ligne étant l'autorisation de lancement de scripts externes) 
 </pre> 


 h2. Windows XP 

 +C:\Program Files\OpenVPN\config\illyse\illyse.ovpn+ 
 <pre> 
 # C'est nous qui prenons l'initiative de nous connecter au serveur. 
 client 

 # On route de l'IP, on ne fait pas de l'ethernet. 
 dev tun0 

 # si on ne reçoit pas d'IP pour tun0: 
 # - soit on configure l'interface avec des ip privées bidon 
 #ifconfig 10.255.255.1 10.255.255.2 
 # - soit on utilise un script pour faire "ifconfig tun0 up" 
 #script-security 2 
 #up up.sh 

 # Il est préférable d'utiliser udp, le résultat fonctionne mieux. Il est 
 # cependant notable que les restrictions d'accès Internet laissent souvent 
 # plus facilement passer tcp. Essayez donc udp, et seulement s'il ne fonctionne 
 # pas, essayez tcp. 

 #proto udp6 
 proto udp 
 #proto tcp 

 # Certains réseaux ont en fait une MTU bien inférieure à 1450. Dire aux connexions 
 # TCP d'être très conservatives, pour que ça marche plus ou moins partout. 
 mssfix 1300 
 # En UDP, on peut s'assurer que ça passe de toutes façons en fragmentant au besoin 
 # quand ça dépasse. 
 fragment 1300 
 # Idéalement, ça devrait être détecté tout seul, mais c'est loin de toujours fonctionner... 
 #mtu-disc yes 

 #mtu-test 
 #link-mtu 1300 
 #tun-mtu 1300 

 # En udp, Prévenir le serveur quand on termine, permet de relancer 
 # immédiatement sans attendre que le serveur se rende compte de la 
 # déconnexion par timeout. 
 explicit-exit-notify 

 # L'adresse du serveur. 
 remote vpn.illyse.net 1194 

 # Éventuellement, on peut avoir besoin de passer par un proxy http, décommenter cette ligne en mettant l'adresse et le port du proxy. 
 #http-proxy 192.0.2.1 8080 

 # Pour windows: utiliser route.exe. 
 route-method exe 

 # Attendre un peu avant d'ajouter les routes. 
 route-delay 2 

 # Ne pas utiliser un port local statique, on est client de toutes façons. 
 nobind 

 # Garder la clé en mémoire, pour ne pas avoir besoin de la relire lors d'un 
 # redémarrage. 
 persist-key 
 # Ne pas tuer l'interface du tunnel lors d'un redémarrage. 
 #persist-tun 

 #ip-win32 ipapi 

 # Décommenter cette ligne pour faire passer tout le trafic via le VPN: 
 redirect-gateway def1 

 # On peut aussi vouloir plutôt router seulement quelques destinations, par 
 # exemple ici tout Gitoyen: 
 #route 80.67.160.0 255.255.224.0 

 # Décommenter cette ligne pour activer IPv6 
 tun-ipv6 
 # et corriger et décommenter cette ligne pour configurer l'IPv6 qu'on va utiliser 
 # parmi le /48. Il faut remplacer xy par l'écriture hexadécimale de la fin de l'IPv6, 
 # ou bien simplement regarder dans l'espace adhérent ce qu'elle vaut 
 #ifconfig-ipv6 2001:910:13xy::1 2001:910:1301::1 
 # et décommenter cette ligne pour faire passer tout le trafic IPv6 via le VPN: 
 route-ipv6 ::/1 
 route-ipv6 8000::/1 

 # Envoyer un login et un mot de passe. Pour éviter de taper à la main login 
 # et mot de passe, vous pouvez ajouter à droite de "auth-user-pass" le nom d'un 
 # fichier contenant ces deux informations, une par ligne. 
 auth-user-pass credentials 

 # Un minimum de debug, c'est toujours bien. 
 verb 3 

 #log-append /var/log/openvpn-illyse.log 

 # Certificat permettant de vérifier que c'est bien à Illyse que 
 # l'on se connecte et donc à qui on donne notre mot de passe. 
 remote-cert-tls server 
 <ca> 
 -----BEGIN CERTIFICATE----- 
 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 
 sjvtdavgLFaMPLPrI2DAcjpVMUuL1VgdqUcQkhc= 
 -----END CERTIFICATE----- 
 </ca> 
 </pre> 



 +C:\Program Files\OpenVPN\config\illyse\credentials+ 

 <pre> 
 jkleboulet-vpn1 
 omgsuchsecured123 
 </pre>