Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
freebsd:vpn_avec_mpd [2006/09/23 18:58]
twisla
freebsd:vpn_avec_mpd [2010/01/12 13:29] (current)
Line 1: Line 1:
 +//​(Attention,​ le serveur de tests tourne une FreeBSD-5.x,​ donc je ne sais pas si cela fonctionne sous un FreeBSD-4.x et/ou s'il faut recompiler des choses dans son kernel chéri :-) )//
  
 +Voici en quelques lignes comment obtenir un serveur de tunnels PPTP (compatible nativement avec des clients Windows XP et consorts et Mac OSX).
 +
 +Tout d'​abord,​ installer le port MPD :
 +
 +<​code>​
 +cd /​usr/​ports/​net/​mpd/​
 +make install clean
 +</​code>​
 +
 +Dans /​usr/​local/​etc/​rc.d/,​ copier le fichier mpd.sh.sample en mpd.sh
 +
 +Personnellement j'ai modifié le script mpd.sh afin que la console de MPD ne soit lancée que sur localhost en ajoutant le flag '​-a'​ (la console tourne par défaut sur le port 5005, sans mot de passe)
 +
 +
 +Ce qui donne 
 +
 +<​code>​
 +-                       "​${DAEMON}"​ -b -p "​${PIDFILE}"​
 ++                       "​${DAEMON}"​ -b -a 127.0.0.1 -p "​${PIDFILE}"​
 +</​code>​
 +
 +Dans le répertoire /​usr/​local/​etc/​mpd/​ se trouvent les 3 fichiers nécessaires au bon fonctionnement de MPD :
 +mpd.conf, mpd.links et mpd.secret
 +
 +<​code>​
 +############​
 +# mpd.conf #
 +############​
 +
 +default:
 +        load pptp01
 +        load pptp02
 +        load pptp03
 +        load pptp04
 +        load pptp05
 +
 +pptp01:
 +        new -i ng01 pptp01 pptp01
 +        set ipcp ranges 10.0.0.254/​32 10.0.0.001/​32
 +        load pptp_default
 +
 +pptp02:
 +        new -i ng02 pptp02 pptp02
 +        set ipcp ranges 10.0.0.254/​32 10.0.0.002/​32
 +        load pptp_default
 +
 +pptp03:
 +        new -i ng03 pptp03 pptp03
 +        set ipcp ranges 10.0.0.254/​32 10.0.0.002/​32
 +        load pptp_default
 +
 +pptp04:
 +        new -i ng04 pptp04 pptp04
 +        set ipcp ranges 10.0.0.254/​32 10.0.0.002/​32
 +        load pptp_default
 +
 +pptp05:
 +        new -i ng05 pptp05 pptp05
 +        set ipcp ranges 10.0.0.254/​32 10.0.0.002/​32
 +        load pptp_default
 +
 +pptp_default:​
 +        set iface disable on-demand
 +        set bundle disable multilink
 +#       set bundle max-logins 1
 +        set iface enable proxy-arp
 +        set iface enable tcpmssfix
 +        set link yes acfcomp protocomp
 +        set link no pap chap
 +        set link enable chap chap-md5 chap-msv1 chap-msv2
 +        set link keep-alive 60 180
 +        set ipcp yes vjcomp
 +        set ipcp dns IP_de_votre_serveur_DNS_resolver
 +#       set ipcp nbns IP_de_votre_serveur_DNS_resolver
 +#       set bundle enable compression
 +        set ccp yes mppc
 +        set ccp yes mpp-e40
 +        set ccp yes mpp-e56
 +        set ccp yes mpp-e128
 +        set ccp yes mpp-stateless
 +        set bundle yes crypt-reqd
 +#       log +ccp2 +ccp3 +pptp2 +pptp3
 +
 +
 +
 +#############​
 +# mpd.links #
 +#############​
 +
 +pptp01:
 +        set link type pptp
 +        set pptp self IP_publique_du_serveur_VPN
 +        set pptp enable incoming
 +        set pptp disable originate
 +
 +pptp02:
 +        set link type pptp
 +        set pptp self IP_publique_du_serveur_VPN
 +        set pptp enable incoming
 +        set pptp disable originate
 +
 +pptp03:
 +        set link type pptp
 +        set pptp self IP_publique_du_serveur_VPN
 +        set pptp enable incoming
 +        set pptp disable originate
 +
 +pptp04:
 +        set link type pptp
 +        set pptp self IP_publique_du_serveur_VPN
 +        set pptp enable incoming
 +        set pptp disable originate
 +
 +pptp05:
 +        set link type pptp
 +        set pptp self IP_publique_du_serveur_VPN
 +        set pptp enable incoming
 +        set pptp disable originate
 +</​code>​
 +
 +<​code>​
 +##############​
 +# mpd.secret #
 +##############​
 +
 +
 +user1 password1
 +user2 password2
 +user3 password3
 +user4 password4
 +user5 password5
 +</​code>​
 +
 +
 +
 +Quelques petites explications concernant la configuration du fichier mpd.conf :
 +  * en décommentant la ligne "set bundle max-logins 1", 1 seul login ne sera autorisé, par défaut un même user peut se logguer plusieurs fois.
 +  * la ligne "set bundle enable compression"​ est commentée car j'ai rencontré quelques soucis avec un client PPTP Windows XP qui refusait de se logguer car la compression était activée mais il y avait une erreur dans le module du kernel et donc la connexion VPN échouait.
 +\\ 
 +\\ 
 +MPD ne sachant pas allouer dynamiquement une IP, il faut donc la spécifier tunnel par tunnel (ici, on ne pourra avoir que 5   ​tunnels actifs simultanément,​ mais rien n'​empêche de créer d'​autres entrées dans la configuration) ; prendre garde donc aux  ​
 +collisions dans le plan d'​adressages IP côté client, peut être choisir quelque chose de plus judicieux que 10.0.0.x/24
 +
 +J'ai modifié mon /​etc/​syslog.conf afin que MPD loggue dans son propre fichier ​
 +
 +<​code>​
 +!mpd
 +*.*                                             /​var/​log/​mpd.log
 +</​code>​
 +
 +(ne pas oublier de faire un touch du fichier et de redémarrer syslogd ;) )
 +
 +Au démarrage de MPD, les interfaces ng01 à ng05 seront "​statiquement"​ créées, visibles par un simple '​ifconfig'​.
 +
 +A-pu-ka tester en configurant une connexion VPN toute simple, avec les réglages pas défaut dans votre XP préféré (pour MacOSX, c'est plus simple : il n'y a pas de réglages ni options de configuration :) )
 +
 +A noter qu'il peut être nécessaire de configurer un peu de routage ou du nat selon la configuration réseau "​d'​arrivée",​ à l'​autre extrémité du VPN.
 +
 +Cya
 +-- 
 +/​SClo\\ ​
 +sclo(at)teaser.fr
freebsd/vpn_avec_mpd.txt · Last modified: 2010/01/12 13:29 (external edit)