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

Ports-Variablen auslesen

Möchte man die gesetzten Variablen in /usr/ports/Mk/bsd.port.mk einfach auslesen, so kann das Skript portsvar.sh unter /usr/ports/Tools/scripts/ genutzt werden. Einfach die gewünschten Variablen an portsvar.sh übergeben:

# /usr/ports/Tools/scripts/portsvar.sh PORTSDIR OSVERSION
PORTSDIR = /usr/ports
OSVERSION = 602000

Auch Regex lassen sich mit Hilfe der -e Option in portsvar.sh bei der Suche nach Variablen verwenden.

# /usr/ports/Tools/scripts/portsvar.sh -e "PKG[M,D].*"
PKGDEINSTALL = ${PKGDIR}/pkg-deinstall
PKGDIR = ${MASTERDIR}
PKGMESSAGE = ${PKGDIR}/pkg-message

Standardmässig wird nur in bsd.port.mk nach Variablen gesucht. Möchte man ein anderes Makefile unter /usr/ports/Mk/ in die Suche mit aufnehmen, kann dies mit der -w Option gemacht werden. In den folgenden Beispielen wird die Standardversion vom Apache, PHP und PostgeSQL aus dem jeweiligen Makefile ausgelesen:

# /usr/ports/Tools/scripts/portsvar.sh -w apache -e "APACHE_[P,S].*"
APACHE_PORT = www/apache13
APACHE_SUPPORTED_VERSION = 13 20 21 22
# /usr/ports/Tools/scripts/portsvar.sh -w php -e "PHP_VER.*"
PHP_VER = 5
PHP_VERSION = 5.2.5
# /usr/ports/Tools/scripts/portsvar.sh -w database -e "DEFAULT_PGSQL.*"
DEFAULT_PGSQL_VER = 81

Alle Optionen von portsvar.sh erhält man mit der -h Option.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (1)  Permalink
1-2/2