phpMyVisites | Open source web analytics phpMyVisites

Se connecter à un VPN Windows à partir d'un client linux


Grosso modo, le principe est :

1 Patcher le noyau et pppd afin de rajouter un module ppp_mppe_mppc, ce module permet de gérer l'encryption microsoft lors de l'authentification au serveur VPN
2 -- Configurer la connexion pptp
3 -- Se connecter puis configurer les routes pour avoir accès aux machines du réseau vpn

je ne vais pas détailler toutes les étapes une par une, vu qu'elles sont décrites dans le how-to. Perso, ça marche bien sur ma debian sid :)
Pour la partie 2- c'est faisable avec Webmin en installant les packages webmin-pptp-client / webmin-pptp-server mais bon c'est compliqué faut cliquer avec la souris ;)

Fichier pour patcher le noyau et pppd --

Exemple de configuration pptp --

On part du principe que vous recompilez le noyau avec l'option ppp_mppe_mppc et qu'il est chargé et que vous avez patché aussi pptd.

Fichier /etc/ppp/pptpd-options - il peut être commun pour tout le monde, sauf si il y a des options spécifiques ( refuser eap, la compression etc.. ) - télécharger-le
#-- début du fichier --
lock
noauth
nobsdcomp
nodeflate
hide-password
proxyarp
asyncmap 0

# -- Fin du fichier --

Fichier  /etc/ppp/peers/tunnel - c'est le fichier de connexion avec le nom du tunnel, l'ip du serveur VPN etc...  -  télécharger-le
# PPTP Tunnel configuration for tunnel tunnel
pty "pptp ip_du_serveur_vpn --nolaunchpppd"
name votre_user
remotename PPTP
require-mschap-v2
require-mppe-40
require-mppe-128
lcp-echo-interval 30
lcp-echo-failure 10
file /etc/ppp/pptpd-options
ipparam tunnel

# -- Fin du fichier --

- Vous devez donc modifier ip_du_serveur_vpn en mettant l'ip ou l'host de votre serveur VPN
- Modifiez votre_user en saisissant un user autorisé à se connecter au VPN

Fichier /etc/ppp/chap_secret -- téléchargez-le
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
votre_user      PPTP    mot_de_passe    *
PPTP  votre_user  mot_de_passe  *



Quand vous avez tout bien réglé, un 'tit coup de "pon tunnel" pour lancer la connexion ( tunnel correspond au nom du fichier que vous avez mis dans /etc/ppp/peers )
ifconfig pour voir si une interface ppp0 a été rajoutée, si ça ne fonctionne pas, il faut lancer la connexion en debug en tapant la commande :
pon tunnel debug dump logfd 2 nodetach
cela permet de voir passer les paquets, donc ce que vous envoyez et surtout les réponses du serveur.

En ce qui me concerne j'ai eu un problème lors de la configuration qui est une erreur "LCP terminated by peer" en debug, je me connectais en ms-chapv2 et le serveur me répondait en eap.. donc forcément ils se mettaient pas d'accord lors de l'authentification. Il faut rajouter l'option refuse-eap dans /etc/ppp/pptpd-options

Lorsque vous êtes connecté vous devez avoir une nouvelle interface pppX ressemblant à cela :
ppp0 Lien encap:Protocole Point-à-Point
          inet adr:10.0.6.103  P-t-P:10.0.6.101  Masque:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
          RX packets:960 errors:0 dropped:0 overruns:0 frame:0
          TX packets:819 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:3
          RX bytes:160386 (156.6 KiB)  TX bytes:48399 (47.2 KiB)


Après s'être connecté, vous devez configurer le route ( voir http://pptpclient.sourceforge.net/routing.phtml )
chez moi je dois taper la commande pour rajouter la ligne en gras ci-dessous : route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp0
tuxAthlon:/gateway/site/fichiers/vpn# route -N
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
10.0.6.101      0.0.0.0          255.255.255.255 UH    0      0        0 ppp0
192.168.0.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.0.0       0.0.0.0      255.0.0.0       U     0      0        0 ppp0
0.0.0.0             192.168.0.1     0.0.0.0         UG    0      0        0 eth0


Enfin pour automatiser l'ajout de la route à chaque connexion, rajouter un script ( téléchargez-le ) dans /etc/ppp/ip-up.d/ comme ci-dessous :
#!/bin/sh
# ce script rajoute une route 10.0.0.0/255.0.0.0 sur la bonne interface
if [ ${PPP_IPPARAM} == "tunnel" ]; then
route add -net 10.0.0.0 netmask 255.0.0.0 dev ${IFNAME}
fi



update
erreur pendant l'insertion du module
FATAL: Error inserting ppp_mppe_mppc (/lib/modules/2.6.8.1/kernel/drivers/net/ppp_mppe_mppc.ko): Unknown symbol in module, or unknown parameter (see dmesg)

erreur pendant la compilation du noyau
WARNING: /lib/modules/2.6.8.1/kernel/drivers/net/ppp_mppe_mppc.ko needs unknown symbol crypto_alloc_tfm
WARNING: /lib/modules/2.6.8.1/kernel/drivers/net/ppp_mppe_mppc.ko needs unknown symbol crypto_free_tfm
WARNING: /lib/modules/2.6.8.1/kernel/crypto/sha1.ko needs unknown symbol crypto_unregister_alg
WARNING: /lib/modules/2.6.8.1/kernel/crypto/sha1.ko needs unknown symbol crypto_register_alg
WARNING: /lib/modules/2.6.8.1/kernel/crypto/arc4.ko needs unknown symbol crypto_unregister_alg
WARNING: /lib/modules/2.6.8.1/kernel/crypto/arc4.ko needs unknown symbol crypto_register_alg


---> Compiler la cryptographie dans le noyau

Vous trouvez ici How-to complet sur le sujet ( en anglais ) : http://pptpclient.sourceforge.net/documentation.phtml

Retour à la page d'accueil
flux rss malekal.com - Sitemap - Geekeden - OxygenePC.com - Les partenaires du site McAfee you Suck