PPTP-servilo malantaŭ hejma enkursigilo: unue ripari 1723 kaj GRE
Funkciigu PPTP malantaŭ hejma enkursigilo: TCP 1723, IP-protokolo 47, la pasiga markobutono kaj la MTU-aritmetiko, kaj kiam L2TP aŭ OpenVPN estas la pli bona interŝanĝo.
PPTP malantaŭ hejma enkursigilo malsukcesas en du nedependaj manieroj, kaj ilin konfuzi kostas tutan vesperon. Unu misfunkcio estas malpleno en plusendado: la enkursigilo pasigas TCP 1723 kaj forĵetas IP-protokolon 47, do la kliento pendas ĉe eraro 619. La alia estas granda problemo: la tunelo leviĝas, aŭtentikigas, kaj poste frostas kiam pako de plena grando devas pasi. Eltrovi, kiun vi havas, estas la unua vera paŝo; la resto komparas, kion via enkursigilo povas esprimi, ne kiu marko pli bonas.
Du transportoj, kaj nur unu havas pordon
PPTP disiĝas en du transportojn: rega konekto ĉe TCP 1723, kaj PPP-kadroj volvitaj en plibonigitan GRE, kiu estas IP-protokolo 47. GRE havas neniun pordan numeron, do regulo skribita kiel plusendo de pordo 1723 ne povas kovri ĝin, kiel ajn la reta interfaco nomas la kampon. Hejma enkursigilo kutime proponas markobutonon nomatan PPTP-pasigo anstataŭ protokolregulon, kaj tiu butono faras du taskojn: ĝi permesas protokolon 47 tra la fajroŝirmilo, kaj ĝi instruas al NAT kiel spuri la GRE-fluon. Ĉe Linux-enkursigilo tiuj taskoj estas apartaj moduloj kaj apartaj reguloj, tial duone agordita pasigo ankoraŭ produktas funkciantan regan kanalon. Eltrovu, kiu duono ĉeestas, antaŭ ol ŝanĝi ion.
La fajroŝirmilo de la servilo mem ankaŭ devas permesi protokolon 47 de la enkursigila adreso. Gastiga fajroŝirmilo, kiu akceptas nur 1723/tcp, reproduktas eraron 619 el la interno de la LAN, kio igas rompitan plusendon kaj rompitan gastigan regulon aspekti identaj.
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'
Se la moduloj mankas, ŝarĝu ilin per sudo modprobe nf_conntrack_proto_gre nf_nat_proto_gre kaj faru la ŝarĝon konstanta, ĉar restartigo, kiu forgesas la helpanton, retransformas funkciantan tunelon en eraron 619. La plusenda regulo devas akcepti protokolon 47 nur al la servila adreso, ne al la tuta LAN. La difino en RFC 2637 apartigas la regan kaj datenan vojojn, tial neniu unuopa ekrano por porda plusendo priskribas PPTP tute.
Pasiga markobutono aŭ eksplicita protokolregulo
Pasiga markobutono, kiu nur malfermas la fajroŝirmilon, estas pli proksima al ĝusta ol ALG, kiu reskribas vokajn identigilojn. La fajroŝirmila duono estas antaŭvidebla, ĉar protokolo 47 aŭ estas akceptata aŭ forĵetata, kaj la nombriloj diras kiu. La reskriba duono estas kie vendistoj malsamas, ĉar la vokaj identigiloj de PPTP estas po tunelo kaj NAT, kiu redaktas ilin, devas spuri ĉiun vokon, kiun ĝi tuŝas. Kiam unu kliento konektiĝas kaj du ne, la ALG estas la unua suspektato.
Cela NAT-regulo por 1723 ankaŭ havas posedan problemon. Se malnova regulo ankoraŭ sendas 1723 al gasto, kiu ĉesis funkciigi la servilon, pakoj surteriĝas sur fermita pordo kaj la propra PPTP-servo de la enkursigilo ĉesas respondi, kio legeblas kiel fajroŝirmila paneo sed fakte estas malnova celo. Legu la regulon kaj ĝian celon antaŭ ol aldoni duan. Ĉe enkursigiloj, kiuj mem finas PPTP, la WAN-regulo konkurras kun la enkonstruita servo, do elektu unu posedanton por 1723 kaj protokolo 47.
Du klientoj malantaŭ la sama NAT estas la kazo, kiu apartigas simplan plusendon disde lerta. Plusendi protokolon 47 sen reskribi la vokajn identigilojn kutime kondutas pli bone ol helpanto, kiu provas ripari ilin.
Mezuru la tunelon antaŭ ol kulpigi la enkursigilon
PPTP malgrandigas la uzeblan ŝarĝon, kaj tiu malgrandigo estas aritmetiko, ne mistero. Ĉiu tunela pako portas eksteran IP-kapon, plibonigitan GRE-kapon, PPP-kapon kaj, kun ĉifrado, MPPE-kapon. Kiam la vojo ne povas porti la rezultan kadron, malgrandaj pakoj pasas, la ensaluto finiĝas, kaj la sesio haltas la unuan fojon, kiam dosiera transdono aŭ TLS-manpremo sendas pakon de plena grando.
Kalkulu la nombron anstataŭ diveni ĝin. Plibonigita GRE kostas 8 bajtojn, PPP kostas 4, MPPE kostas 4, kaj la ekstera IP-kapo kostas 20, do la tunelo manĝas 36 bajtojn antaŭ iu ajn ŝarĝo. Ĉe PPPoE-WAN, kiu finiĝas ĉe 1492, la plej granda PPP-MTU, kiu eniras, estas 1492 minus 36, do 1456. Agordu mtu kaj mru al tiu valoro en la PPP-opcioj kaj retestu per ping sen fragmentado.
ping -M do -s 1464 198.51.100.7
grep -E '^(mtu|mru)' /etc/ppp/options.pptpd
La ping mezuras la vojon, ne la tunelon: 1464 bajtoj da ŝarĝo plus 28 bajtoj da IP- kaj ICMP-kapoj plenigas ĝuste kadron de 1492 bajtoj. Se tiu ping malsukcesas, malaltigu la nombron ĝis ĝi pasos, kaj subtrahu 36 de la rezulto. Tunela MTU agordita super la limo de la vojo produktas la frostigon sen eĉ unu protokola linio, kiu mencias grandecon.
PPTP, L2TP/IPsec aŭ OpenVPN ĉe la sama enkursigilo
La sama enkursigilo povas porti iun ajn el la tri kutimaj tuneloj, kaj la diferenco estas, kion ĝi devas esprimi. PPTP bezonas du regulojn en du malsamaj tavoloj. L2TP super IPsec bezonas UDP 500 kaj 4500 por la ŝlosila interŝanĝo kaj, se NAT-T ne portas ĝin, protokolon 50 por la ŝarĝo. OpenVPN bezonas unu UDP-pordon kaj tute neniun helpanton.
| 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 |
La kolumno de L2TP ne estas aŭtomate pli amika ol GRE. ESP estas IP-protokolo 50 kaj ankaŭ havas neniun pordon, do enkursigilo, kiu luktas kun protokolo 47, povas lukti kun protokolo 50 pro la sama kialo. NAT-T ekzistas por volvi ESP en UDP 4500, kaj kiam ambaŭ finoj subtenas ĝin, la regulo por protokolo 50 iĝas nenecesa. Tio estas eco de la finoj, ne de la PPTP-butono de la enkursigilo. Konfirmu, kiun enkapsuligon la kliento vere interkonsentis, antaŭ ol skribi regulojn por ambaŭ.
OpenVPN estas la opcio kun la malplej da moviĝantaj partoj ĉe la enkursigila flanko. Unu UDP-pordo, unu plusendo, neniu helpanto por spuri konektojn kaj neniu reskribo de vokaj identigiloj. La interŝanĝo estas kliento, kiun oni devas instali anstataŭ enkonstruita telefonanto, kaj tio ofte estas la sola kialo, ke PPTP restas en la diskuto.
Kion ripari kaj kion anstataŭigi
Ripari la plusendon kaj la MTU donas al vi tunelon, kiu funkcias, ne unu, kiun vi devus teni. La MSCHAPv2-aŭtentikigo de PPTP estas atakebla jam de jaroj, kaj funkcianta tunelo movas akreditaĵojn, kiujn oni povas reakiri eksterrete. Se la fora aparato povas funkciigi L2TP/IPsec aŭ OpenVPN, traktu la riparon kiel provizoran rimedon kun dato.
La decido dependas de tio, kion subtenas la fora fino kaj kiom longe la aranĝo devas daŭri. Malnova aparato, kiu parolas nur PPTP, ricevas la riparon; ĉio, kio povas instali klienton, migras.
Antaŭ ol fermi la bileton, konfirmu, ke la kliento postvivas grandan transdonon kaj ne nur ensaluton, kaj ke la enkursigilo ankoraŭ tenas sian regulon por protokolo 47 post restartigo. Tunelo, kiu trapasas unu dosierkopion kaj mortas post la sekva firmvara ĝisdatigo, neniam estis finita.