BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

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 (3)  Permalink

Comments

Andreas Steinel @ 30.12.2007 21:14 UTC
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
Beat @ 01.01.2008 18:57 UTC
Ja, das Ganze läuft hier auf einem 7.0-BETA4 mit poptop-1.3.4_1 bis jetzt ohne Probleme.

Gruess Beat
byte @ 23.10.2008 22:43 UTC
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?
No new comments allowed (anymore) on this post.