Serveur vpn PPTP sous debian en MS-CHAPv2

Ayant besoin d’un VPN en pptp pour un client qui ne supporte par openvpn, j’ai essayé et réussis d’installer une serveur pptp sur un de mes serveur dédié.
Donc pour tous ceux qui ont des dedibox, kimsufi et autre serveur ovh et qui veulent un serveur vpn plus simple à mettre en place que openvpn et moins sécurisé ce tuto est pour vous ! Dans cet exemple j’utilise le MS-CHAPv2 mais le CHAP ou le PAP sont aussi disponible.

Pour ceux qui préfère openvpn (moi) voici le liens pour mon tuto openvpn : http://www.artiflo.net/2008/05/ubuntu-openvpn/

J’ai réalisé l’installation sous debian etch mais cela devrait être le même concept pour les autres distribution.

Installation du serveur pptpd :

# apt-get install pptpd

Configuration du serveur :

# nano /etc/pptpd.conf

Il faut décommenter les 2 lignes localip et remonteip. Vous indiqué l’ip du votre serveur et ensuite la plage d’adresse d’ip locale que vous voulez attribué au pc qui se connecteront au VPN

localip IP.DE.VOTRE.SERVEUR
remoteip 192.168.0.234-238,192.168.0.245

A présent nous allons configurer la méthode d’authentification. Nous allons utiliser le MS-CHAPv2. Mais les autres protocole que ce soit pap ou chap sont aussi possible c’est a vous de le configurer.

# nano /etc/ppp/options

Il faut rajouter ces lignes a la fin du fichier :

refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp 

Maintenant il reste a créer les utilisateurs.

# nano /etc/ppp/chap-secrets

Cela se présente ainsi :

artiflo pptpd artiflopassword "*"

* est pour signifier que les utilisateurs peuvent se connecter de n’importe quel ip. Dans le cas contraire spécifié l’ip.

Et enfin, pour ce concerne le firewall il faut en premier que vous autoriser le port 1723 et le protocole GRE ainsi :

# iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
# iptables -A INPUT -p gre -j ACCEPT

Et ensuite il faut configurer le routage en spécifiant que toutes les adresse locale que vous avez définis toutes a l’heure doivent être rediriger sur l’adresse de la carte eth0. Et en activant l’ip forwarding.

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to IP.DE.VOTRE.SERVEUR

Redémarrer pptp et cela doit fonctionner 🙂

# /etc/init.d/pptpd restart

Je n’explique pas dans ce billet la configuration du client pour Windows XP ou Vista car c’est du clic-clic.

13 réflexions sur « Serveur vpn PPTP sous debian en MS-CHAPv2 »

  1. Bonjour

    Merci de ce tutoriel d’une part et pour petite information la commande suivante

    iptables -A INPUT -p tcp –dport 1723 -j ACCEPT

    doit avoir deux – devant dport soit:

    iptables -A INPUT -p tcp –-dport 1723 -j ACCEPT

    Sinon ça ne fonctionne pas.

  2. Merci 🙂

    Ils y sont, mais en fait wordpress convertis les — en un grand -. Quand j’utilise la balise doublequote.
    Je vais voir pour corriger cela.

  3. Salut

    Je cherche à connecter mon windows mobile via VPN sur RPS OVH ubuntu.
    J’ai suivi tout ce que tu decris ici.
    Mais pour winmo, j’ai trouvé un tuto de connection VPN via openVPN (que je n’ai pas reussi a config via l’autre tuto: a la fin, au restart de openvpn, je recois un bon vieux « Fail »)
    Bref !
    Dans le cadre de CE tuto,… comment faire avec WinMo ??

    D’avance, merci

    Stef

  4. Pour la partie serveur cela ne change rien et je pense que pour la partie client (winmo) ça doit pas être bien différent entre Windows XP et winMO.
    Teste d’abord sous windows xp et aprés sous ton WinMo.

  5. Bonjour et un grand merci pour ce tuto…
    J’ai constaté que lors du reboot du serveur, il faut à nouveau entrer ces deux lignes de commandes :

    # echo 1 > /proc/sys/net/ipv4/ip_forward
    # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT –to IP.DE.VOTRE.SERVEUR

    sinon le routage ne fonctionne plus… N’y aurait-il pas une solution pour que ce soit permanent ? Je débute sous linux, alors les conseils sont bienvenus.

    Merci d’avance et une très bonne continuation.

    Fred

  6. Pour :
    echo 1 > /proc/sys/net/ipv4/ip_forward

    Il suffit d’editer le fichier /etc/sysctl.conf et de décommenter/rajouter la ligne :
    net.ipv4.ip_forward=1

    Pour :
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT –to IP.DE.VOTRE.SERVEUR
    Soit rajouter la ligne dans sa config de iptables soit utiliser iptables-save

  7. Bonjour,

    Merci pour le tuto.
    Tu parles de serveur Kimsufi/Dedibox, mais sur ce genre de serveur on a pas d’ip locale. Je pense qu’il n’y a tout simplement pas de sous réseaux, pas de DHCP, l’ip public étant l’ip locale.

    Comment faire pour la localeip et la (plage) remoteip ?

  8. Tout à fait ! Mon message précédent n’était en rien critique ou méchant, simplement une demande d’aide 😉

    Comment faire ? (si tu as un lien ou un tuto)

    Merci par avance !

  9. Salut,
    J’ai qq petites questions…

    1) J’ai un tenté d’appliquer ton tuto mais j’ai un petit doute à propos de la localip : je dois indiquer la vraie ip du serveur ou celle que j’ai choisi genre « 192.168.0.1 » qui sera ensuite redirigée vers eth0 ?

    2) Est-il possible d’utiliser ce genre de solution afin de connecter un petit routeur,qui agira en tant que client et qui utilise GRE, au serveur ?

    Merci…

  10. J’ai suivi le tuto a la lettre mais ca ne fonctionne pas sur mon serveur OVH. Lorsque je tente de me connecter avec mon tel android j’ai le droit a <>. Et sur Windows a une erreur 2250, 31, 651 et enfin parfois 619.

Laisser un commentaire