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