# [TIP] VPN sous ms-chap-v2 et mppe

## GaMeS

Suite à mes différents test en tout genre, je vous fais profiter de mes nouvelles trouvailles  :Smile: 

(MAJ le 05 octobre 2007)

 1. Introduction

 2. Configuration du noyau (>= 2.6.20)

 3. Le logiciel ppp

 3.1 Installation

 3.2 Configuration du VPN

 3.2.1 /etc/ppp/peers/VPN_NAME

 3.2.2 /etc/ppp/options.VPN_NAME

 3.2.3 /etc/ppp/chap-secrets

 3.2.4 /etc/conf.d/net

 3.3 Lancement et premiers tests

 4. Problème de routage VPN

 1. Introduction

Ce TIP va aborder les différentes étapes de la mise en place d'un client VPN pour un serveur fonctionnant sous authentification ms-chap-v2 et l'encapsulation mppe.

 2. Configuration du noyau

Seule la branche 2.6.20 du kernel intègre la gestion de Microsoft Point-to-Point Encryption. Je vous invite très fortement à installer la derniere version en date du kernel pour profiter des dernières mise à jour concernant ce protocole.

Activation du protocole MPPE

Device Drivers

	Network device Support

		<*> PPP (point-to-point protocol) support

                <*> PPP support for async serial ports

                <*> PPP support for sync tty ports

                <*> PPP Deflate compression

                <*> PPP BSD-Compress compression

                <*> PPP MPPE compression (encryption) (EXPERIMENTAL)

                <*> PPP over Ethernet (EXPERIMENTAL)

Activez également l'ensemble des Cryptographic options pour permettre d'avoir un plus grand pannel des encryptions.

 3. Le logiciel ppp

Le logiciel ppp permet la création d'un lien sur beaucoup de support, tel que les connections modems, WAN, ou tty.

D'une manière générale, il crée une nouvelle interface réseau servant de point d'entrée au niveau réseau virtuel privé.

 3.1 Installation

Il est très conseiller d'obtenir la dernière version de net-dialup/ppp permettant ainsi des dernières fonctionnalitées liées à MPPE.

```

echo "net-dialup/ppp ~amd64">>/etc/portage/package.keywords

```

On active également l'utilisation de mppe dans ppp et on lance son installation

```

echo "net-dialup/ppp mppe-mppc">>/etc/portage/package.use

emerge -va net-dialup/ppp

```

 3.2 Configuration

Pour créer un VPN, il faut au préalable configurer les fichiers suivants.

 /etc/ppp/peers/NOM_DU_VPN (spécifications des protocoles, du nom d'hôte, etc...)

 /etc/ppp/options.VPN_NAME (définition du mode de fonctionne des protocoles, authentification, mtu, etc...)

 /etc/ppp/chap-secrets (définition de l'identifiant et du mot de passe sur le VPN_NAME)

 /etc/conf.d/net (définition des différents paramètres liée à l'interface local du VPN)

 3.2.1 /etc/ppp/peers/NOM_DU_VPN

Le fichier s'ordonne de la façon suivante.

 *Quote:*   

> 
> 
> pty "pptp VPN_HOST --nolaunchpppd"
> 
> name VPN_USERNAME
> ...

 

D'une manière moins générique cela donne ceci.

 *Quote:*   

> 
> 
> pty "pptp vpn.supinfo.com --nolaunchpppd"
> 
> name blob
> ...

 

 3.2.2 /etc/ppp/options.VPN_NAME

Dans le fichier de configuration suivant, il ne faut surtout pas oublier de spécifier mppe stateless sinon vous risquez d'obtenir une erreur de protocole MPPE.

 *Quote:*   

> 
> 
> lock
> 
> noauth
> ...

 

 3.2.3 /etc/ppp/chap-secrets

 *Quote:*   

> 
> 
> VPN_USERNAME   VPN_NAME VPN_PASSWORD  *
> 
> VPN_NAME VPN_USERNAME   VPN_PASSWORD  *
> ...

 

 3.2.4 /etc/conf.d/net

Le nom de l'interface est tout à fait configurable en PPP9 si vous le souhaitez.

 *Quote:*   

> 
> 
> config_PPP0=( "ppp" )
> 
> pppd_PPP0=(
> ...

 

 3.3 Lancement et premiers tests

Pour son premier lancement, n'hésitez pas à être dans un mode debug pon VPNNAME debug dump logfd 2 nodetach.

 *Quote:*   

> 
> 
> geekb0x ppp # pon supinfo debug dump logfd 2 nodetach
> 
> pppd options in effect:
> ...

 

Sinon, pour son utilisation quotidienne un simple pon VPNNAME suffit  :Smile: 

Par defaut, le VPN doit nous obtenir une adresse passerelle (grâce à l'option defaultroute du fichier /etc/ppp/options.VPN_NAME). Si ce n'est pas le cas, c'est certainement que vous avez un routeur ou tout équipement qui vous a déjà fourni une passerelle par defaut. Je vous invite à suivre le paragraphe 4 Problème de routage VPN pour supprimer de désagrément.

 4. Problème de routage VPN

Si dans le debug de la connection vous obtenez ceci not replacing existing default route to eth0 [192.168.0.254] c'est que comme bon nombre de personne vous utilisez le mode DHCP pour votre eth0.

La méthode dite "manuelle" sera de créer votre route à la main à chaque démarrage du vpn.

 *Quote:*   

> 
> 
> route add -net NETWORK netmask MASK dev DEVICE_PPP
> 
> 

 

Une méthode plus conventionnelle dirons-nous, va être d'intégré un petit script qui détecte l'adresse réseau de destination, le device pour ajouter cette route automatique. 

C'est chose faite, j'ai conçu un petit script vraiment très pratique qui répare ce problème.

Editez le fichier /etc/ppp/ip-up, le nouveau s'apparente à ceci.

 *Quote:*   

> 
> 
> #!/bin/bash
> 
> # this is a script which is executed after connecting the ppp interface.
> ...

 

Maintenant la route est correctement créée.

 *Quote:*   

> 
> 
> geekb0x ppp # route
> 
> Table de routage IP du noyau
> ...

 

Une fonction de log est également disponible pour permettre d'avoir un visuel sur le bon fonctionnement (ou non) du script.

Celui-ci est disponible par defaut dans /var/tmp/logRoute et modifiable dans le script via la modification de la valeur LOGFILE.

 *Quote:*   

> 
> 
> geekb0x ppp # cat /var/log/logRoute 
> 
> 04/10/2007-00:51:56 Routing 10.0.0.0/8 via ppp0
> ...

 

Merci de m'avoir suivi tout au long de ce périple ! Si vous avez des commentaires, etc.. n'hésitez pas !

----------

## kwenspc

ppp ou le VPN du pauvre  :Laughing: 

Est ce que monitorer le VPN sous cette méthode est aisé? j'en ai pas l'impression si? (sous openvpn on peut facilement monitorer via l'interface telnet, sans parler du fait que c'est très facilement scriptable etc...)

En tout cas chapeau pour le tuto, ça a pas l'air ultra simple à mettre en place from scratch mais tu réussis à expliquer ça de manière didactique.

----------

