Serveur VPN PPTP

Ce mécanisme se base sur un tunnel GRE au travers de TCP pour encapsuler des paquets PPP dans le but de former un réseau virtuel privé. Pour ce faire, le client ouvre un tunnel avec le serveur sur le port 1723. Une fois la liaison établie, il ouvre un second tunnel dans le premier en utilisant le protocole GRE (port 47) pour faire transiter les informations.

Assez ancien et non standardisé, il est reconnu comme vulnérable, mais il a l'avantage d'être utilisable nativement dans la plupart des OS (plus d'information sur cette page).

Donc tenez vous le pour dit, ce n'est pas ce qui se fait de mieux en VPN, mais ça peut servir.

1 . Installation

Nous allons donc mettre en place un serveur capable de gérer ce mécanisme. Pour ce faire j'utilise un serveur Ubuntu avec le paquet pptpd. Il s'agit en réalité du serveur Poptop :

sudo aptitude install pptpd

2 . Configuration

Nous allons d'abord configurer le serveur PPTP. Ouvrir le fichier /etc/pptpd.conf. Ce fichier est relativament bien documenté :

sudo cp /etc/pptpd.conf /etc/pptpd.conf.orig
sudo vi /etc/pptpd.conf
Voici une configuration standard :

option /etc/ppp/pptpd-options   #   fichier où lire les options de configuration
logwtmp                         #   logguer les connexions/déconnexions client
localip 192.168.0.10            #   ip LAN du serveur pptp
remoteip 192.168.0.230-240      #   plage ip attribuées aux clients. Attention aux conflits avec le DHCP
Le second fichier à éditer,/etc/ppp/pptpd-options ,permet de spécifier les options du serveur :

sudo cp /etc/ppp/pptpd-options /etc/pptpd-options.orig   # copie de sauvegarde
sudo vi /etc/ppp/pptpd-options
Voici un exemple de configuration :

name maison                #   le nom votre serveur pptp (rien à voir avec le nom DNS)
refuse-pap                 #   ne pas utiliser le protocole PAP
refuse-chap                #   "            "           "   CHAP
refuse-mschap              #   "            "           "   MSCHAP
require-mschap-v2          #   utiliser le protocole MSCHAP-V2
require-mppe-128           #   utiliser l'encription MMPE 128 bit
ms-dns 192.168.0.1         #   ip du DNS LAN (votre box ou un serveur dédié)
proxyarp                   #   ajoute la machine client dans la table ARP pour une visibilité par les machines du réseau
lock                       #   utilisation d'un mécanisme de type UUCP
nobsdcomp                  #   pas de compression BSD-compress
debug                      #   mode verbose dans le /var/log/syslog
nodefaultroute             #   évite l'ajout de route par défaut par les clients
noipx                      #   ne pas utiliser le protocole IPXCP/IPX
mtu 1490
mru 1490
Le troisième et dernier fichier à modifier est /etc/ppp/chap-secrets. C'est là que l'on spécifie les comptes autorisés à se connecter:
sudo cp /etc/ppp/chap-secrets /etc/chap-secrets.orig
sudo vi /etc/ppp/chap-secrets
Pour une configuration avec un seul utilisateur :

# client     serveur     secret              IP addresses
bishop     maison     mon_mot_de_passe    *
les paramètres :
client : le nom d'utilisateur pour la connexion
server : le nom du serveur spécifié dans le fichier /etc/ppp/pptpd-options
secret : le mot de passe pour la connexion
IP addresses : la/les ip d'où l'on peut se connecter. Cela peut être une plage, un masque CIDR, ou une adresse, mais aussi un wildcard *

 

3 . IP forwarding

Pour que les machines du LAN communiquent avec les machines connectés par pptp il faut activer le routage vers celles-ci.

sudo cp  /etc/sysctl.conf  /etc/sysctl.conf.orig
sudo vi  /etc/sysctl.conf
Il faut alors modifier le fichier /etc/sysctl.conf comme suit :

net.ipv4.ip_forward=1
Simplement supprimer le # du début de ligne.

 

4 . mise en service

maintenant que notre service est configuré, il ne reste plus qu'à relancer la machine.

sudo reboot
Le serveur pptp est maintenant fonctionnel. Quelques configurations sur votre windows, mac , linux ou iTruc et vous voilà à la maison :)

La discussion continue ailleurs

URL de rétrolien : http://www.leslamas.net/index.php?trackback/44

Fil des commentaires de ce billet