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 ;)