Bon tuyaux Linux / *BSD -
Mardi 29 Mars 2005
<Précédent
Suivant>
Voici une des méthodes permettant de monter un serveur VPN PPTP :
Il s'agit de MPD pour Multi link PPP Daemon.
L'avantage est qu'il permet de faire de l'encryption.
De plus, MPD ne gère pas seulement le PPTP, mais aussi PPPOE, et peut fonctionner aussi en tant que client PPTP.
Pour l'installer, faites simplement :
$ cd /usr/ports/net/mpd
$ make install clean
Ensuite, 3 fichiers sont à éditer : mpd.conf, mpd.links et mpd.secret
Ces fichiers se trouvent normalement dans /usr/local/etc/mpd
Voici un exmple de mpd.conf :
default:
load pptp0
load pptp1
load pptp2
pptp0:
new -i ng0 pptp0 pptp0
set ipcp ranges 10.2.0.1/32 10.2.0.2/32
load pptp
pptp1:
new -i ng1 pptp1 pptp1
set ipcp ranges 10.2.0.1/32 10.2.0.3/32
load pptp
pptp2:
new -i ng2 pptp2 pptp2
set ipcp ranges 10.2.0.1/32 10.2.0.4/32
load pptp
pptp:
# new -i ng0 pptp pptp
set iface disable on-demand
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set bundle enable multilink
# enable TCP-Wrapper (hosts_access(5)) to block unfriendly clients
# set bundle enable tcp-wrapper
# use RADIUS servers
# load radius
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
set link mtu 1460
set ipcp yes vjcomp
# set ipcp ranges 10.2.0.1/32 10.2.0.10/32
set ipcp dns 10.2.0.1
# set ipcp nbns 10.2.0.1
#
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
#
set bundle enable compression
set ccp yes mppc
set ccp yes mpp-e40
set ccp yes mpp-e128
set ccp yes mpp-stateless
Pour mpd.links :
pptp0:
set link type pptp
set pptp self 192.168.1.1
set pptp enable incoming
set pptp disable originate
pptp1:
set link type pptp
set pptp self 192.168.1.1
set pptp enable incoming
set pptp disable originate
pptp2:
set link type pptp
set pptp self 192.168.1.1
set pptp enable incoming
set pptp disable originate
Dans cet exemple, le serveur PPTP dispose d'une carte réseau configurée avec l'adresse 192.168.1.1 .
Son adresse du réseau VPN sera 10.2.0.1 ,
et seul 3 clients simultanés peuvent être connectés avec les adresses 10.2.0.2 , 10.2.0.3 et 10.2.0.4 .
A chaque client, une interface y sera associé.
ng0 pour le premier client, ng1 pour le deuxième et ng2 pour le troisième.
Si on le souhaite, on peut tout à fait ajouter le nombre de clients PPTP qu'on veut.
La limite sera a priori, sur le nombre possible d'interface netgraph c'est à dire "ng".
Viens ensuite un exemple de fichier mpd.secret contenant la liste des utilsateurs et leur mot de passe :
fred "fred-pw"
joe "foobar" 192.168.1.1
bob "\x34\"foo\n" 192.168.1.10/24
sal "yipee" 192.168.1.254
Sur chaque ligne, le login en 1ère colonne et le mot de passe en 2ème colonne sont obligatoires.
La 3ème colonne est optionnelle et correspond à l'adresse IP du client qu'on autorise pour le login concerné.
Pour récupérer les logs syslog de mpd, vous pouvez modifier votre /etc/syslog.conf :
!mpd
*.* /var/log/mpd.log
Si vous utiliser syslog-ng, vous pouvez modifier votre /usr/local/etc/syslog-ng/syslog-ng.conf
et ajouter ces 3 lignes :
destination mpd { file("/var/log/mpd.log" owner("root") group("wheel") perm(0640)); };
filter f_mpd { program("^mpd$"); };
log { source(src); filter(f_mpd); destination(mpd); };
Il ne vous reste plus qu'à lancer mpd
Ajouter :
mpd_enable="YES" dans votre /etc/rc.conf
Puis
$ /usr/local/etc/rc.d/mpd.sh start
Voici une des méthodes permettant de monter un serveur VPN PPTP :
Il s'agit d'utiliser Poptop.
L'avantage est que son installation est très simple.
Le problème, c'est qu'il n'y a pas d'encryption.
A l'heure où je rédige cet article, il s'agit de la version 1.1.4.
Pour l'installer, faites un petit :
$ cd /usr/ports/net/poptop
$ make -DWITH_KERNPPP install clean
Au préalable, il faut avoir activer ppp au niveau du kernel FreeBSD , ce qui est le cas avec le kernel GENERIC.
Ensuite, éditer le fichier /usr/local/etc/pptpd.conf
option /etc/ppp/options.pptpd
localip 10.2.0.1
remoteip 10.2.0.2-10
Ensuite, éditer ce fichier /etc/ppp/options.pptpd
Reste à remplir votre fichier d'utilisateur dans le fichier /etc/ppp/chap-secrets
login1 * password1 *
login2 * password2 *
ATTENTION , ce fichier est sensible car les mots de passe sont en clair, donc
$ chmod 600 /etc/ppp/chap-secrets
$ chown root /etc/ppp/chap-secrets
Dans cet exemple, l'IP du réseau VPN du serveur sera 10.2.0.1 .
Les IP de 10.2.0.2 à 10.2.0.10 correspondront à la plage d'adresses pour les clients PPTP.
Ensuite, il n'y a plus qu'à lancer le script suivant :
$ /usr/local/etc/rc.d/pptpd.sh start
<Précédent
Suivant>