Créer un réseau VPN en pptp avec un serveur Linux Debian Lenny
Par Rémi TAUPIN le vendredi 17 juillet 2009, - Lien permanent
Voiçi un petit tuto qui montre pas à pas
les étapes à suivre pour installer un serveur VPN en pptp sous Linux, puis
comment se connecter à ce serveur depuis une machine sous Windows.
Le démon pptpd utilisé est poptop. Il est trés simple à installer et à paramètrer avec une distribution Debian Lenny.
Installation du serveur pptpd
Installation
L'installation du démon pptpd se fait par la commande aptitude :
monserveur:~# aptitude install pptpd
Configuration du démon pptpd
La première chose à faire est de modifier le fichier de configuration principal de pptpd pour dire quelles vont être les adresses IP du serveur et du client :
monserveur:~# vi /etc/pptpd.conf
# Adresse IP coté serveur :
localip 192.168.0.10
# Adresses IP coté client (ici on autorise 2 adresses) :
remoteip 192.168.0.11-12
Ensuite on configure les options du serveur :
monserveur:~# vi /etc/ppp/pptpd-options
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 192.168.0.254
proxyarp
nodefaultroute
Création d'un compte utilisateur client pptpd
Maintenant, il faut remplir le fichier qui liste les différents utilisateurs qui ont le droit de se connecter au serveur VPN. Ces utilisateurs ne sont pas forcement des utilisateurs qui un compte posix sur la machine. La liste des utilisateurs se fait dans le fichier /etc/ppp/chap-secrets :
monserveur:~# vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server
secret
IP addresses
remi
pptpd azerty
*
Configuration d'un client VPN PPTP
Configuration d'un client VPN sous Windows Vista
Configuration de base
Aller de le menu Démarrer / Connexion :
Dans le menu de droite, cliquer sur le lien Configurer une connexion ou un réseau :
Choisir Connexion à votre espace de travail :
On crée une nouvelle connexion :
On va créer une connexion VPN en passant par Internet :
A ce stade, il faut renseigner l'adresse IP du serveur distant ou son nom FQDN, puis un nom de connexion pour pouvoir l'identifier au cas où il y aurait plusieurs connexions de ce type :
Il est maintenant temps de renseigner un nom de login et un mot de passe. Dans notre cas, ce sont les paramètres qui sont dans le fichier /etc/ppp/chap-secrets sur le serveur installé plus haut :
Aprés avoir appuyé sur le bouton Connecter, le programme tente une connexion sur le serveur VPN distant :
La connexion est maintenant établie :
Pour se déconnecter, il faut aller dans le menu Démarrer / Connexion, puis faire un clic droit sur la connexion et sélectionner Déconnecter :
La déconnexion est maintenant effective :
Pour se reconnecter, il faudra repartir dans le menu Démarrer / Connexion, puis cliquer sur Connexion:
Configuration avancée de la connexion VPN
Par défaut, quand on est connecté en pptp, le surf sur le web passe par la passerelle du serveur VPN et non plus par la passerelle par défaut du réseau local. Ce comportement peut être génant si le lient VPN est plus lent que la sortie internet du réseau local sur lequel on est connecté.
Pour changer ce comportement, faire un clic-droit sur le nom de la connexion réseau et aller dans les propriétés :
Sélectionner le protocole TCP/IPV4 puis cliquer sur le bouton Propriétés
Cliquer sur le bouton Avancé
Si la case Utiliser la passerelle par défaut pour le réseau distant est cochée, on passera pas le lien VPN pour surfer sur le web
Dans le cas contraire, on passera par la connexion internet du réseau local sur lequel on est connecté :
Configuration d'un client VPN sous linux
Pour se connecter à un serveur PPTP en ligne de commande sous linux, il faut installer le package pptp-linux :
monserveur:~# aptitude install pptp-linux
Ensuite, il faut créer/éditer les fichiers de configuration :
- /etc/ppp/chap-secrets : Ce fichier contient les informations
d'identification pour une authenfication CHAP.
- /etc/ppp/peers/nom_du_profil : Ce fichier contient la configuration du
profil. Il peut y avoir plusieurs fichiers dans /etc/ppp/peers/ si on doit se connecter à plusieurs serveurs
PPTP.
- /etc/ppp/ip-up.d/route-traffic : Contient des directives à exécuter quand le
tunnel pptp va se monter (table de routage, etc.). Il peut y plusieurs fichiers
dans /etc/ppp/ip-up.d/. Ils seront alors tous
exécutés.
Voici un exemple de configuration pour une connexion qui a les parametres suivants
- Nom d'utilisateur : remi
- Mot de passe : azerty
- Nom de la passerelle VPN : vpn.antiseches.net
Dans le fichier /etc/ppp/chap-secrets, insérer la ligne suivante :
remi PPTP azerty *
Note : lors de la configuration du serveur on avait écrit pptpd alors que maintenant c'était PPTP
Pour plus de simplicite, le fichier peers va s'appeler /etc/ppp/peers/antiseches. Voici son contenu :
pty "pptp vpn.antiseches.net --nolaunchpppd"
name remi
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam antiseches
lcp-echo-interval 480
persist
Nous allons maintenant ajouter une table de routage grâce au fichier /etc/ppp/ip-up.d/route-traffic. Cette étape est optionnelle.
#!/bin/bash
#Ajout d'une table de routage pour accéder au réseau 192.168.0.0/24
NET="192.198.0.0/24" # Défini le réseau
IFACE="ppp0" # Défini l'interface
route add -net ${NET} dev ${IFACE}
Note : il n'y a pas besoin de supprimer cette route lors de la déconnexion du serveur PPTP car l'interface ppp0 ne sera plus active.
Il faut maitenant rendre ce fichier exécutatble :
monserveur:~# chmod +x /etc/ppp/ip-up.d/route-traffic
Pour lancer la connexion au serveur VPN, il faudra maintenant entrer la commande suivante :
monserveur:~# pppd call antiseches
On devrait maintenant voir une interface pptp0 si on tape la commande ifconfig. De plus, la commande tail /var/log/messages devrait montrer les lignes suivantes :
pppd[30088]: pppd 2.4.4 started by root, uid 0
pppd[30088]: Using interface ppp0
pppd[30088]: Connect: ppp0 <--> /dev/pts/4
pppd[30088]: CHAP authentication succeeded
kernel: [37415.524398] PPP MPPE Compression module registered
pppd[30088]: MPPE 128-bit stateless compression enabled
pppd[30088]: local IP address 192.168.0.11
pppd[30088]: remote IP address 192.168.0.10
Pour se déconnecter, il faudra juste entrer la commande killall pppd
Note : PPTP est une solution simple est efficace pour créer un VPN. Toutefois, il vaut mieux lui préférer OpenVPN qui est plus sécurisé.


















Commentaires
merciiiiiiii c trop interessant,un bon travail
Super tuto
Petite info : après la configuration du serveur, il faut penser à le redémarrer
~/etc/init.d/pptpd restart