PPTP VPN Tunnel – Ein paar Tipps

Vor kurzem habe ich einen VPN-Server aufgesetzt und habe mich dabei für das PPTP entschieden. Auf die grundlegende Installation unter Debian möchte ich hier nicht eingehen denn dafür gibt es bereits genügen Anleitungen im Netz. (z.B. hier)

Allerdings waren (zumindest bei mir) nach der Installation noch einige kleine Kniffe notwendig bis der Tunnel vernünftig lief. An dieser Stelle noch kurz der Hinweis, dass als Clients Windows 7 bzw. Windows XP Rechner zum Einsatz kommen.

Problem 1: Clients können sich einwandfrei verbinden, es können jedoch keine Daten empfangen werden.
Lösung: Damit der Server empfangene Daten zu den Clients “weiterrouten” kann ist eine IPTables Regel notwendig. Bei mir brachte folgendes die Lösung:

iptables --table nat --append POSTROUTING  --out-interface eth0 --jump MASQUERADE


Problem 2: Der Tunnel funktioniert grundlegend, die Verbindung “friert jedoch bei gößeren Datenmenegen ein”.
Lösung: Auch hier hilft ein Regeln in den IPTables weiter:

iptables --append FORWARD --protocol tcp --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu

Desweiteren habe ich zur Lösung dieses Problems die MTU und MRU angepasst und auf einen Wert von 1400 eingestellt.
Diese Werte können in der Datei /etc/ppp/pptpd-options angepasst werden.

Problem 3: Clients werden immer wieder vom VPN-Server getrennt.
Lösung: In meinem Fall brachten mich diese Zeilen in den Logfiles auf die Lösung:

No response to 4 echo-requests
Serial link appears to be disconnected.

Offensichtlich antworteten einige Clients nicht (oder nicht zuverlässig) auf die vom Server verschickten LCP-Echo-Requests. Nachdem auch die Erhöhung der maximal nicht beantworteten Requests keine Abhilfe brachte habe ich die Echo-Anfragen schließlich komplett deaktiviert. Dies kann man in der Datei /etc/ppp/options erledigen indem man folgende zwei Werte auf 0 setzt:

lcp-echo-interval 0
lcp-echo-failure 0

Ich hoffe dieser Beitrag kann helfen falls jemand auf die gleichen Probleme stößt, z.B. ich wenn ich in ein paar Monaten mal wieder einen pptpd aufsetze ;)

Fork me on GitHub
6 Responses to PPTP VPN Tunnel – Ein paar Tipps
  1. Oliver Reply

    Rät nicht selbst Mickeysoft von PPTP ab?

  2. Lemmingz Shadow Reply

    Quellen? Gründe?

  3. Oliver Reply

    A summary of these vulnerabilities is below:

    MSCHAP-v1 is fundamentally insecure. Tools exist to trivially extract the NT Password hashes from a captured MSCHAP-v1 exchange.

    MSCHAP-v2 is vulnerable to dictionary attack on the captured challenge response packets. Tools exist to perform this process rapidly.

    When using MSCHAP-v1, MPPE uses the same RC4 session key for encryption in both directions of the communication flow. This can be cryptanalysed with standard methods by XORing the streams from each direction together.

    MPPE uses RC4 stream cipher for encryption. There is no method for authentication of the ciphertext stream and therefore the ciphertext is vulnerable to a bit-flipping attack. An attacker could modify the stream in transit and adjust single bits to change the output stream without possibility of detection. These bit flips may be detected by the protocols themselves through checksums or other means.

    http://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol#Security_of_the_PPTP_protocol

    Ausserdem werden wohl DNS Anfragen nicht getunnelt, was auch extremst suboptimal ist.

  4. Lemmingz Shadow Reply

    Stimmt schon, Sicherheitstechnisch optimal sieht anders aus. Allerdings kann man Dictionary-Attacken mit vernünftigen Passwörtern vorbeugen.

    Fehlendes DNS-Tunneling ist in der Tat suboptimal. Als kleiner Trost bleibt zu sagen, dass man den DNS-Server der per DHCP vergeben wird festlegen kann. So kann man immerhin einen “vertrauenswürdigen” Server nutzen.

    Ob man nun PPTP oder eine Alternative nutzt muss letztendlich jeder selbst entscheiden. Enormer Vorteil ist allerdings: PPTP läuft plattformübergreifend ohne einen extra Client.

  5. Oliver Reply

    Als kleiner Trost bleibt zu sagen, dass man den DNS-Server der per DHCP vergeben wird festlegen kann. So kann man immerhin einen “vertrauenswürdigen” Server nutzen.

    Damit kann man sich fies in die Nesseln setzen, denn einevertrauenswürdiger Server nutzt Dir nichts, wenn das Netzwerk, in dem Du bist kompromitiert ist, denn Deine DNS Abfragen kann ich mitsniffen und per MITM auch verändern. Dein Vorteil liegt dann nur darin, dass Du gesichert auf die Phishingseite kommst. :-D

    Ich halte das für gefährlich und so schwer ist openvpn auch nicht zu installieren.

  6. Lemmingz Shadow Reply

    Zur Info: Ein schönes Tutorial zum Einrichten eins OpenVPN-Servers unter Debian gibt es hier: http://library.linode.com/networking/openvpn/debian-6-squeeze

    Unterscheidet sich im Aufwand der Einrichtung nicht wesentlich von PPTP.

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">