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 😉

10 thoughts on “PPTP VPN Tunnel – Ein paar Tipps

  1. Oliver

    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.

  2. Simon

    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.

  3. Oliver

    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. 😀

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

  4. Samuel

    Ich bin leider nicht so gut in Linux und versuche es seit tagen ohne Erfolg zum laufen zu bringen. Habe leider keine andere Möglichkeit da man bei Kabel nur noch DS-Lite bekommt und da die meisten ja noch IPv4 haben gibt es im Internet leider auch kaum Hinweise dafür. Könntest du mir bei dem Problem ggf. helfen? Gerne auch über E-Mail oder so.

Leave a Reply

Your email address will not be published. Required fields are marked *

π