tas2580
Blog über Webentwicklung

VPN mit PPTP einrichten

tas2580  

Ich muss immer mal wieder von unterwegs auf meinen Dateiserver zuhause zugreifen. Dazu habe ich zwar das Webinterface, aber wenn man ganze Ordner mit mehreren Dateien kopieren will ist das über das Webinterface recht umständlich. Für das Problem muss ich mir bei Gelegenheit mal was einfallen lassen, bis dahin verwende ich dazu ein VPN, so kann ich über das Internet so auf mein LAN verbinden als ob ich mich zuhause an das Switch anstecke oder per W-LAN verbinde. Außerdem kann man über VPN wunderbar LAN fähige Spiele mit Freunden spielen. Oder sein Internet zuhause nutzen wenn man irgendwo sitzt wo das Internet eingeschränkt ist.

Moderne Fritz Boxen haben einen VPN-Server schon eingebaut so das man es einfach nur einschalten muss, leider kann meine alte Fritz Box das nicht, aber ich habe ja meinen Raspberry PI für solche Sachen. Es gibt verschiedene VPN Protokolle die alle ihre Vor- und Nachteile haben, meine Wahl ist auf PPTP gefallen. PPTP ist zwar nicht besonders sicher, hat aber den großen Vorteil das es ohne zusätzliche Software mit jedem Windows Rechner oder Android Gerät funktioniert. Für Linux gibt es für alle mir bekannten Distributionen Pakete um PPTP zu nutzen.

Installation unter Debian

Die Installation ist recht einfach, es werden nur die Pakete pptpd und bcrelay benötigt

apt-get install bcrelay pptpd

Hat man die beiden Pakete erfolgreich installiert muss die Konfiguration noch ein wenig angepasst werden. Dazu öffnet man die Datei /etc/pptpd.conf und macht folgende Anpassungen.

# Aktiviert bcrelay auf dem angegebenen Netzwerk Interface somit werden alle Broadcasts an die VPN Clients weitergeleitet
bcrelay eth0

# Dies ist die IP des Servers. Diese IP erhält der Client als Standard Gateway.
localip 192.168.0.1

# Hier kann der IP Adressbereich für die Clients angegeben werden. Diese IP Adressen erhalten die Clients.
remoteip 192.168.0.10-20

Danach noch die Datei /etc/ppp/pptpd-options

# Hier muss ein Name für das System angegeben werden
name pptpd

# Hier werden der Primäre und der Sekundäre DNS Server für die Windows
# Clients angegeben
ms-dns 8.8.8.8
ms-dns 192.168.0.1

Hier muss eigentlich nichts geändert werden, evtl. sollte man die IP-Adressen anpassen.

Jetzt muss man noch die /etc/sysctl.conf anpassen und das Forwarding aktivieren.

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

Wenn die Zeilen schon vorhanden sind muss man die Kommentare davor entfernen. Danach muss sysctl -p aufgerufen werden um die Änderung zu aktivieren.

Benutzer einrichten

Der einfache Weg ist Benutzer in die /etc/ppp/chap-secrets einzutragen, die Datei muss folgendermaßen aufgebaut sein:

# Secrets for authentication using CHAP
# client   server  secret      IP addresses
test   pptpd   passwort    *

In der ersten Spalte steht der Name des Benutzers, in der zweiten muss der Name des Systems der schon in der pptpd-options eingetragen wurde angegeben werden, in der dritten Spalte steht das Passwort für den Benutzer in Klartext. Das Sternchen am Ende bedeutet das der Benutzer von jeder IP aus zugreifen kann, hier kann auch ein IP-Bereich angegeben werden um den Zugriff einzuschränken.

Samba Benutzer nutzen

Da ich meine Benutzer aber in einem LDAP Verzeichnis habe ist diese Lösung für mich nicht zufriedenstellend, schon alleine weil ich den Benutzern gerne selber die Möglichkeit geben möchte ihr Passwort zu ändern. Wenn auf dem Server auf dem PPTP läuft auch ein Samba Winbind Server läuft der an eine Domäne angebunden ist kann man PPTP so konfigurieren das Domänen Benutzer VPN Zugriff haben. Da die Benutzer meiner SMB-Domäne im LDAP-Verzeichnis liegen ist das für mich eine recht gute Möglichkeit. Welche Benutzer lokal über Winbind verfügbar sind kann man mit wbinfo -u anzeigen lassen. Sollten die Domänenbenutzer damit nicht aufgelistet werden muss man mit net rpc join -U root den Samba-Server der Domäne beitreten lassen. Wenn die Benutzer aufgelistet werden kann man PPTP so konfigurieren das Winbind zur Authentifizierung benutz wird. Dazu muss in die /etc/ppp/pptpd-options folgendes eingefügt werden:

plugin winbind.so
ntlm_auth-helper "/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1 -d 2"

PPTP starten

Wenn alles fertig eingerichtet ist kann man den PPTP-Server mit /etc/init.d/pptpd start starten. Damit man sich über das Internet darauf verbinden kann müssen im Router die Ports 1723 (TCP) und 47 (GRE) freigeschaltet werden.

Um im Netzwerk noch andere IP-Adressen erreichen, muss man einen forwarding-Befehl hinzufügen. Dazu öffnet man die Datei /etc/sysctl.conf und editiert folgende Zeile:

net.ipv4.ip_forward = 1 # Die Auskommentierung dieser Zeile muss einfach gelöscht werden.

Um diese Änderung auch ohne Neustart zu übernehmen muss echo 1 > /proc/sys/net/ipv4/ip_forward auf der Konsole ausgeführt werden.


Kommentare


Bitte warten ...

Kommentar schreiben

URLs werden automatisch umgewandelt.
[b]DEIN TEXT[/b] für Fett gedruckt
[quote]DEIN ZITAT[/quote] für Zitate
[code]DEIN CODE[/code] für Code
captcha