sysctl -w net.inet.ip.forwarding=1sysctl -w net.inet.gre.allow=1Configuration minimale de /etc/pptpd.conf :
# noipparam est nécessaire si le message suivant apparait dans les logs : # Warning: Label ipparam rejected -direct connection: Configuration label not found noipparam # # Liste des adresses IP attribuées aux clients : remoteip 10.0.0.250-254
Configuration minimale de /etc/ppp/ppp.conf :
pptp: set dial set login # # Attribution de l'adresse 10.0.0.1 au serveur et de la plage 10.0.0.250-254 aux clients set ifaddr 10.0.0.1 10.0.0.250-10.0.0.254 set log phase lcp ipcp command set timeout 1800 disable ipv6cp enable mschapv2 # # Bidouille pour faire fonctionner l'arp-proxying (00:e0:81:24:a7:43 = adresse MAC de la patte DMZ) bg arp -s HISADDR 00:e0:81:24:a7:43 pub accept dns set dns 62.4.16.70
Exemple de fichier /etc/ppp/ppp.secret (3 utilisateurs dont 1 avec une IP non négociable) :
utilisateur1 motdepasse1 * utilisateur2 motdepasse2 * utilisateur3 motdepasse3 10.0.0.250
Configuration minimale /etc/pf.conf :
# Les 3 interfaces de la passerelle :
net_if="fxp0"
lan_if="fxp1"
dmz_if="fxp2"
#
# Nom du groupe d'interface de type tunnel(4) :
tun_group="tun"
# Les 3 IP de la passerelle :
net_ip="172.16.0.1"
lan_ip="192.168.0.1"
dmz_ip="10.0.0.1"
#
# IP réservées pour le VPN PPTP
pptp_net="{10.0.0.250, 10.0.0.251, 10.0.0.252, 10.0.0.253, 10.0.0.254}"
block all
#
# Filtrage du port PPTP et du protocole GRE sur l'interface NET :
pass in on $net_if inet proto tcp from any to $net_ip port 1723
pass in on $net_if proto gre
#
# Filtrage du trafic provenant du tunnel :
pass in on $tun_group from $pptp_net
pass in on $dmz_if from $pptp_net