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).
Comments
Hi,
Klappt das prima bei euch? Ich hab vor mehr als einem Jahr das Ganze ausprobiert (unter FreeBSD 6.0 + poptop) und FreeBSD startete sich sehr oft einfach so neu (kernel panic + reboot).
Gruß
Andreas
Ja, das Ganze läuft hier auf einem 7.0-BETA4 mit poptop-1.3.4_1 bis jetzt ohne Probleme.
Gruess Beat
hm bei mir kommt immer Oct 23 22:33:31 ks30516 pptpd[688]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Oct 23 22:33:32 ks30516 ppp[689]: Warning: ff02:3::/32: Change route failed: errno: Network is unreachable
Oct 23 22:33:32 ks30516 ppp[689]: Warning: iface add: ioctl(SIOCAIFADDR, 127.0.0.1 -> 213.186.47.14): File exists
Oct 23 22:33:32 ks30516 ppp[689]: Error: ipcp_InterfaceUp: unable to set ip address
Oct 23 22:33:32 ks30516 ppp[689]: Warning: ipv4_Input: IPCP not open - packet dropped
und keine verbindung ... any help?