PPTP VPN Server einrichten
Möchte man einen PPTP-VPN-Server zum Beispiel für Windows-Clients einrichten, kann man dazu poptop verwenden. Zuerst muss sichergestellt werden, dass der Kernel des Systems mit Tunnelsupport gebaut ist. Dies ist beim GENERIC-Kernel der Fall:
# grep tun /usr/src/sys/i386/conf/<KERNELCONFIGURATION>
device tun # Packet tunnel.
Nun muss noch das Weiterleiten von Paketen auf dem System aktiviert werden:
# sysctl net.inet.ip.forwarding=1
# echo 'gateway_enable="YES"' >> /etc/rc.conf
Danach kann poptop aus dem Portsbaum installiert werden:
# cd /usr/ports/net/poptop && make install clean
Nun kann die /usr/local/etc/pptpd.conf erstellt werden. Bei der localip ist die IP-Adresse einzutragen, welche der PPTP Server kriegt, bei der remoteip sind die IP-Adressen einzutragen, welche an die Clients verteilt werden:
debug
localip 192.168.0.1
remoteip 192.168.0.100-120
Danach können folgende Einträge in der /etc/ppp/ppp.conf gemacht werden. Bei set ifaddr wird zuerst die IP-Adresse des Servers und danach der Range der Clients angegeben:
pptp:
set dial
set login
set ifaddr 192.168.0.1 192.168.0.100-120 255.255.255.255
set log phase lcp ipcp command
set timeout 1800
enable chap
enable pap
enable mschap
enable mschapv2
enable proxy
enable mssfixup
accept dns
set dns <IP des DNS Servers>
Nun wird noch eine /etc/ppp/options mit folgendem Inhalt erstellt:
debug
proxyarp
+MSChap-V2 mppe-128 mppe-stateless
In der /etc/ppp/ppp.secret werden nun die VPN-Benutzer und deren Passwörter konfiguriert:
<Benutzername 1> <Passwort> *
<Benutzername 2> <Passwort> *
...
Da die Passwörter im Klartext gespeichert werden, werden nun noch die richtigen Rechte auf der Datei gesetzt:
# chmod 600 /etc/ppp/ppp.secret
Nun wird noch der pptpd und ARP-Proxy in der /etc/rc.conf aktiviert:
# echo 'pptpd_enable="YES"' >> /etc/rc.conf
# echo 'arpproxy_all="YES"' >> /etc/rc.conf
Danach kann der pptpd gestartet werden:
# /usr/local/etc/rc.d/pptpd start
Verwendet man die pf Firewall, müssen noch die benötigten Ports für PPTP freigeschaltet werden. Das NAT für die Clients kann gleich aktiviert werden. Folgende Regeln in die bestehende /etc/pf.conf an der richtigen Stelle einfügen:
ext_if="<Externe Netzwerkschnittstelle>"
set skip on tun0
nat on $ext_if from 192.168.0.0/24 to any -> ($ext_if)
pass in on $ext_if proto gre keep state
pass in on $ext_if proto tcp from any to any port 1723 keep state
Mehr Informationen zum pptpd findet man in der Manpage pptpd(8).