PPTP-Server hannert engem Heimproouter: fir d'éischt 1723 an GRE reparéieren
PPTP hannert engem Heimproouter lafen: TCP 1723, IP-Protokoll 47, d'Passthrough-Këschtchen an d'MTU-Arithmetik, a wéini L2TP oder OpenVPN dee bessere Tausch ass.
PPTP hannert engem Heimproouter fält op zwou onofhängege Weeër aus, a si verwiesselen kascht en ganzen Owend. Ee Feeler ass eng Lück an der Viruleedung: de Router léisst TCP 1723 duerch a verwerft IP-Protokoll 47, dofir hänkt de Client um Feeler 619. Den aneren ass e Gréissteproblem: den Tunnel kënnt erop, authentifizéiert sech, an dann fréiert en, wann e Pak vun der voller Gréisst duerch muss. Erauszefannen, wéi enger vun deenen zwee dir hutt, ass den éischte richtegen Schrëtt; de Rescht vergläicht, wat ären Router ausdrécke kann, net wéi eng Mark besser ass.
Zwee Transporten, an nëmmen een huet e Port
PPTP deelt sech op zwou Transporten: eng Steierverbindung op TCP 1723, an PPP-Framen, déi a erweidert GRE agewéckelt sinn, also IP-Protokoll 47. GRE huet keng Portnummer, dofir kann eng Regel, déi als Viruleedung vum Port 1723 geschriwwe gëtt, en net ofdecken, egal wéi d'Webinterface d'Feld nennt. En Heimproouter bitt meeschtens eng Këscht mam Numm PPTP-Passthrough amplaz vun enger Protokollregel un, an déi Këscht mécht zwou Aarbechten: si léisst de Protokoll 47 duerch d'Firewall an si léiert dem NAT, de GRE-Floss ze verfollegen. Op engem Linux-Router sinn déi Aarbechten getrennt Moduler a getrennt Regelen, dofir gëtt en hallef konfiguréierte Passthrough nach ëmmer e funktionéierende Steierkanal. Fannt eraus, wéi eng Halschent do ass, ier dir eppes ännert.
D'Firewall vum Server selwer muss och de Protokoll 47 vun der Routeradress erlaben. Eng Host-Firewall, déi nëmmen 1723/tcp akzeptéiert, reproduzéiert de Feeler 619 vun innerhalb vum LAN, dofir gesinn eng kaputt Viruleedung an eng kaputt Host-Regel identesch aus.
sudo iptables -S FORWARD | grep -i gre
sudo nft list ruleset | grep -i gre
lsmod | grep -E 'nf_conntrack_proto_gre|nf_nat_proto_gre'
Wann d'Moduler feelen, lued si mat sudo modprobe nf_conntrack_proto_gre nf_nat_proto_gre a maach d'Luede permanent, well en Neistart, deen den Hëllef vergësst, aus engem funktionéierenden Tunnel nees de Feeler 619 mécht. D'Viruleedungsregel muss de Protokoll 47 nëmmen an d'Richtung vun der Serveradress erlaben, net de ganze LAN. D'Definitioun vun RFC 2637 trennt de Steier- an den Datenwee, dofir beschreift keen eenzelen Ëmleedungsschrëtt PPTP vollstänneg.
Passthrough-Këschtchen oder eng explizit Protokollregel
E Passthrough-Këschtchen, dat nëmmen d'Firewall opmécht, ass méi no um Richtegen wéi en ALG, deen d'Uruff-Identifizéierer ëmschreift. D'Firewall-Halschent ass viraussobar, well de Protokoll 47 entweder akzeptéiert oder verwerft gëtt, an d'Zieler soen, wat. D'Ëmschreif-Halschent ass de Punkt, wou d'Fabrikante sech ënnerscheeden, well d'Uruff-Identifizéierer vum PPTP pro Tunnel sinn an en NAT, deen se editéiert, all Uruff muss verfollegen, déi en beréiert. Wann een Client verbënnt an zwee net, ass den ALG deen éischte Verdächtegen.
Eng Destinatiouns-NAT-Regel fir 1723 huet och e Besëtzproblem. Wann eng al Regel nach ëmmer 1723 un en Host schéckt, deen de Server gestoppt huet, landen d'Pakken op engem zouenen Port an den eegenen PPTP-Service vum Router hält op ze äntweren, wat wéi e Firewallfeeler ze liesen ass, awer tatsächlech en iwwerholl Zil. Liest d'Regel an hir Destinatioun, ier dir eng zweet derbäi setzt. Op Router, déi PPTP selwer terminéieren, konkurréiert d'WAN-Regel mam agebaute Service, dofir wielt ee Besëtzer fir 1723 a Protokoll 47.
Zwee Clienten hannert demselwechten NAT sinn de Fall, deen eng einfach Viruleedung vun enger schlauer trennt. De Protokoll 47 viruleeden, ouni d'Uruff-Identifizéierer ëmzeschreiwen, verhält sech meeschtens besser wéi en Hëllef, deen se probéiert ze reparéieren.
Miess den Tunnel, ier dir de Router beschëllegt
PPTP verklengert d'notzbar Laascht, an déi Verklengerung ass Arithmetik, keen Geheimnis. All Tunnelpak dréit en äusseren IP-Kapp, en erweiderten GRE-Kapp, e PPP-Kapp an, mat Verschlësselung, en MPPE-Kapp. Wann de Wee de resultéierende Frame net droe kann, ginn kleng Paken duerch, d'Anmeldung geet fäerdeg, an d'Sitzung hält um éischte Kéier op, wou en Dateitransfer oder en TLS-Handshake e Pak vun der voller Gréisst schéckt.
Rechent d'Zuel aus, amplaz se ze roden. Erweidert GRE kascht 8 Byte, PPP kascht 4, MPPE kascht 4, an den äusseren IP-Kapp kascht 20, dofir ësst den Tunnel 36 Byte virun all Laascht. Op engem PPPoE-WAN, deen op 1492 ophält, ass de gréissten PPP-MTU, deen dra passt, 1492 minus 36, also 1456. Setzt mtu an mru op dee Wäert an den PPP-Optiounen an test nach eng Kéier mat engem Ping ouni Fragmentéierung.
ping -M do -s 1464 198.51.100.7
grep -E '^(mtu|mru)' /etc/ppp/options.pptpd
De Ping misst de Wee, net den Tunnel: 1464 Byte Laascht plus 28 Byte IP- an ICMP-Käpp fëllen genau e Frame vun 1492 Byte. Wann dee Ping feelt, maacht d'Zuel méi kleng, bis en duerchgeet, an zitt 36 vum Resultat of. En Tunnel-MTU, deen iwwer dem Limite vum Wee gesat ass, produzéiert de Fréieren ouni eng eenzeg Loglinn, déi d'Gréisst ernimmt.
PPTP, L2TP/IPsec oder OpenVPN um selwechte Router
Deen selwechte Router ka jidderee vun den dräi üblechen Tunnele droen, an den Ënnerscheed ass, wat en ausdrécke muss. PPTP brauch zwou Regele an zwou verschiddenen Schichten. L2TP iwwer IPsec brauch UDP 500 an 4500 fir den Schlësselaustausch an, ausser NAT-T dréit en, de Protokoll 50 fir d'Laascht. OpenVPN brauch een UDP-Port an iwwerhaapt keen Hëllef.
| Tunnel | What the router must allow | Practical note |
|---|---|---|
| PPTP | TCP 1723 and IP protocol 47 | Two transports, two rules |
| L2TP/IPsec | UDP 500, UDP 4500, protocol 50 without NAT-T | ESP has no port either |
| OpenVPN | UDP 1194 or a chosen TCP port | Single rule, no helper |
D'L2TP-Kolonn ass net automatesch frëndlecher wéi GRE. ESP ass IP-Protokoll 50 an huet och kee Port, dofir kann e Router, deen et mam Protokoll 47 schwéier huet, et aus demselwechte Grond mam Protokoll 50 schwéier hunn. NAT-T existéiert, fir ESP an UDP 4500 ze wéckelen, a wann déi zwou Enner et ënnerstëtzen, gëtt d'Regel fir de Protokoll 50 iwwerflësseg. Dat ass eng Eegenschaft vun den Enner, net vun der PPTP-Këscht vum Router. Bestätegt, wéi eng Encapsulation de Client tatsächlech verhandelt huet, ier dir Regele fir béid schreift.
OpenVPN ass d'Optioun mat de mannste beweeglechen Deeler op der Routersäit. Een UDP-Port, eng Viruleedung, keen Hëllef fir Verbindungen ze verfollegen a keng Ëmschreiwung vun Uruff-Identifizéierer. Den Tausch ass e Client, deen installéiert muss ginn, amplaz vun engem agebaute Wähler, an dat ass dacks deen eenzegen Grond, firwat PPTP am Gespréich bleift.
Wat reparéieren a wat ersetzen
D'Viruleedung an den MTU reparéieren gëtt dir en Tunnel, deen funktionéiert, net een, deen dir sollt halen. D'MSCHAPv2-Authentifikatioun vum PPTP ass zënter Jore uschléissbar, an en funktionéierenden Tunnel transportéiert Umeldungsdaten, déi een offline ka recuperéieren. Wann dat wäit ewech Apparat L2TP/IPsec oder OpenVPN ka lafen, behandelt d'Reparatur als temporär Mesure mat engem Datum.
D'Entscheedung hänkt dovun of, wat dat wäit Enn ënnerstëtzt a wéi laang d'Arrangement misst halen. En eelere Apparat, deen nëmme PPTP schwätzt, kritt d'Reparatur; alles, wou een e Client ka installéieren, gëtt migréiert.
Ier dir den Ticket zoumaacht, bestätegt, datt de Client en groussen Transfer iwwersteet an net nëmmen eng Umeldung, an datt de Router seng Regel fir de Protokoll 47 och no engem Neistart hält. En Tunnel, deen eng Dateikopie packt an no der nächster Firmwareaktualiséierung stierft, war ni fäerdeg.