1. Introduction

1.1. Introduction

Ce document décrit comment configurer le masquage d'un trafic VPN de type IPsec ou PPTP. Les VPNs utilisant SSH (comme celui vendu par F-Secure, et référencé dans le VPN mini-HOWTO) sont fondés sur un trafic TCP standard, et ne nécessitent aucune modification particulière du noyau.

Le masquage de VPN vous permet d'établir une ou plusieurs sessions IPsec et/ou PPTP vers des serveurs VPN accessibles sur internet via votre pare-feu internet sans que vous deviez connecter la machine sur laquelle tourne le client VPN directement à votre FAI (Fournisseur d'Accès Internet) - donc en conservant tous les avantages de votre pare-feu internet sous Linux. Il vous est également possible de configurer un serveur VPN avec une adresse IP de réseau privé (voir le RFC1918) derrière un pare-feu Linux faisant du masquage, vous permettant ainsi de fournir de façon assez sécurisée un accès à un réseau privé via seulement une seule adresse IP référencée - y compris si cette adresse IP représente celle d'une connexion modem pouvant varier.

Il est très fortement recommandé que vous compreniez, configuriez et testiez le masquage IP avant de tenter de mettre en place du masquage VPN. Consultez le IP Masquerade HOWTO et la page de ressources sur le masquage IP à l'adresse http://ipmasq.cjb.net/ avant de commencer. La planification et la mise en place de votre VPN et de votre pare-feu dépassent le cadre de ce document. Voici quelques ressources :

Le patch pour les noyaux de la série 2.0.x fonctionne bien sur la version 2.0.36 du noyau Linux, et a été intégré dans la version 2.0.37. Il doit également fonctionner sur les versions antérieures à la 2.0.36, et devrait fonctionner sur les noyaux Linux jusqu'à la version 2.1.102. Le code du masquage IP se trouvant dans le noyau a été restructuré autour de la version 2.1.103, nécessitant un patch différent pour les séries de noyaux 2.1.105+ et 2.2.x.. Un patch est disponible pour les noyaux de 2.2.5 à 2.2.17, et il devrait fonctionner sur les noyaux antérieurs.

1.2. Avis, Crédits & Ressources

Le site où trouver les patchs du noyau pour le masquage VPN avec Linux est http://www.impsec.org/linux/masquerade/ip_masq_vpn.html

N'hésitez pas à m'envoyer votre avis ou des commentaires sur ce document à l'adresse <jhardin@wolfenet.com>. La version actuelle est disponible à l'adresse :

Si vous travaillez avec un noyau dont le numéro de version est supérieur à tous ceux mentionnés dans ce document, merci de regarder s'il n'y a pas une version à jour de ce HOWTO sur le site cité ci-dessus avant de me contacter directement.

Il peut également être trouvé via le répertoire HOWTO du Linux Documentation Project et le répertoire /usr/doc/HOWTO/ sur la machine Linux la plus proche. Ces copies ne sont pas directement mises à jour par moi, donc elles peuvent être un peu dépassées.

J'ai personnellement de l'expérience sur le masquage de clients IPsec et PPTP tournant sur MS W'98 et NT, sur la configuration d'un serveur PPTP avec une adresse IP publique, et sur l'utilisation de PPTP pour du routage inter-réseaux.

Les informations sur le masquage d'un serveur PPTP avec une adresse IP privée proviennent de discussions avec Len Bayles <len@isdi.com>, Simon Cocking <simon@ibs.com.au> et C. Scott Ananian <cananian@lcs.mit.edu>.

Le site pour le patch du noyau concernant uniquement le masquage PPTP pour les séries de noyaux 2.1.105+ et les premiers 2.2.x est http://bmrc.berkeley.edu/people/chaffee/linux_pptp.html.

Le site pour le patch du noyau concernant la redirection de port ipportfw et pour l'outil de configuration des noyaux 2.0.x est http://www.ox.compsoc.org.uk/~steve/portforwarding.html. La redirection de port est incluse dans les noyaux 2.2.x, et l'outil de configuration ipmasqadm contrôlant la redirection de port des 2.2.x peut être obtenu à l'adresse http://juanjox.kernelnotes.org/.

Le site pour le redirecteur IP générique ipfwd est http://www.pdos.lcs.mit.edu/~cananian/Projects/IPfwd/.

Pleins de remerciements à Gordon Chaffee <chaffee@cs.berkeley.edu> pour avoir codé et partagé un patch pour traceroute qui permet de tracer le trafic GRE. Il va se montrer d'une valeur inestimable pour la détection d'erreurs si votre trafic GRE se trouve bloqué quelque part. Le patch est disponible à l'adresse http://www.wolfenet.com/~jhardin/pptp-traceroute.patch.gz

Encore plus de remerciements à Steve Chinatti <chinatti@alumni.Princeton.EDU> pour avoir partagé sa modification du masquage IPsec, d'où j'ai récupéré sans vergogne quelques idées très importantes...

De plus amples informations sur comment installer des règles de pare-feu s'exécutant automatiquement - y compris comment utiliser automatiquement la bonne adresse IP dans un environnement d'adressage IP dynamique - peuvent se trouver à l'adresse http://www.wolfenet.com/~jhardin/ipfwadm/invocation.html

Le site pour Linux FreeS/WAN (IPsec pour Linux) est http://www.xs4all.nl/~freeswan/ - c'est la solution de VPN sous Linux conseillée.

Un serveur PPTP Linux natif appelé PoPToP est disponible à l'adresse http://www.moretonbay.com/vpn/pptp.html - pour les informations les plus à jour sur PPTP sous Linux, allez y.

Paul Cadach <paul@odt.east.telecom.kz> a écrit des patchs qui ajoutent au pppd de Linux le support MS-CHAP-v2, MPPE et Multilink. Allez voir ftp://ftp.east.telecom.kz/pub/src/networking/ppp/ppp-2.3.5-my.tgz pour MS-CHAP et MPPE, et ftp://ftp.east.telecom.kz/pub/src/networking/ppp/multilink/ppp-2.3.5-mp.tgz pour Multilink. Un autre ensemble de patchs (probablement intéressants) pour pppd est disponible sur le site de téléchargement de PoPToP à l'adresse http://www.moretonbay.com/vpn/download_pptp.html.

Le site du projet original PPTP pour Linux est http://www.pdos.lcs.mit.edu/~cananian/Projects/PPTP et un patch pour ajouter les fonctionnalités de serveur PPTP est disponible à l'adresse http://debs.fuller.edu/cgi-bin/display?list=pptp=222

Merci à Eric Raymond de maintenir Le fichier du Jargon (The Jargon File), et à Denis Howe de maintenir Le dictionnaire en ligne gratuit de l'informatique (The Free On-line Dictionary of Computing).

1.3. Copyright & mise en garde

Ce document est Coyright © 1999-2000 par John D. Hardin. Vous avez la permission de le redistribuer sous les termes de la licence LDP, disponible à l'adresse http://www.linuxdoc.org/COPYRIGHT.html

Les informations fournies dans ce document sont correctes dans la limite de mon savoir. Le masquage IP est expérimental, et il est possible que j'aie fait des erreurs en écrivant ou testant le patch du noyau, ou encore en écrivant les instructions dans ce document ; à vous de décider si vous souhaitez effectuer les changements indiqués dans ce document.

L'AUTEUR NE PEUT ETRE TENU RESPONSABLE POUR DES DEGATS CAUSES PAR DES
ACTIONS BASEES SUR LES INFORMATIONS CONTENUES DANS CE DOCUMENT.
SAUVEGARDEZ TOUTES LES DONNEES CRITIQUES AVANT D'EFFECTUER LES
CHANGEMENTS INDIQUES DANS CE DOCUMENT. ASSUREZ VOUS D'AVOIR UN NOYAU
QUI MARCHE, SUR LEQUEL VOUS POUVEZ DEMARRER, AVANT DE PATCHER ET
DE RECOMPILER VOTRE NOYAU COMME INDIQUE DANS CE DOCUMENT. 
En d'autres mots, prenez des précautions.