PPTP kodukruuteri taga ebaõnnestub kahel sõltumatul viisil ja nende segamine maksab terve õhtu. Üks tõrge on edastuslünk: ruuter laseb TCP 1723 läbi ja viskab IP-protokolli 47 kõrvale, mistõttu klient jääb rikke 619 juures rippuma. Teine on suuruse probleem: tunnel tõuseb, autendib ja külmub siis, kui peab läbima täissuuruses pakett. Välja selgitada, kumb neist sul on, on esimene tõeline samm; ülejäänu võrdleb, mida sinu ruuter suudab väljendada, mitte see, milline mark on parem.

Kaks transporti ja ainult ühel neist on port

PPTP jaguneb kaheks transpordiks: juhtühendus TCP 1723 peal ja PPP-kaadrid, mis on mähitud täiustatud GRE-sse, see on IP-protokoll 47. GRE-l puudub pordi number, mistõttu porti 1723 edastavaks kirjutatud reegel ei saa seda katta, ükskõik kuidas veebiliides välja nimetab. Tarbijaruuter pakub tavaliselt protokollireegli asemel märkeruutu nimega PPTP läbilase ja see ruut teeb kaks tööd: see lubab protokolli 47 läbi tulemüüri ja õpetab NAT-ile GRE voolu jälgimist. Linuxi ruuteril on need tööd eraldi moodulid ja eraldi reeglid, seepärast annab pooleldi seadistatud läbilase ikka töötava juhtkanali. Uuri, milline pool on olemas, enne kui midagi muudad.

Serveri enda tulemüür peab samuti lubama protokolli 47 ruuteri aadressilt. Hostide tulemüür, mis võtab vastu ainult 1723/tcp, taastoodab rikke 619 LAN-i seest, mistõttu katkine edastus ja katkine hostireegel näevad välja ühesugused.

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'

Kui moodulid puuduvad, laadi need käsuga sudo modprobe nf_conntrack_proto_gre nf_nat_proto_gre ja tee laadimine püsivaks, sest taaskäivitus, mis aituri unustab, muudab töötava tunneli taas rikkeks 619. Edastusreegel peab protokolli 47 vastu võtma ainult serveri aadressi suunas, mitte kogu LAN-i ulatuses. RFC 2637 määratlus eraldab juht- ja andmetee, seepärast ei kirjelda ükski pordiedastuse ekraan PPTP-d täielikult.

Läbilaskmise märkeruut või selgesõnaline protokollireegel

Läbilaskmise märkeruut, mis ainult avab tulemüüri, on õigele lähemal kui ALG, mis kirjutab kõneidentifikaatorid ümber. Tulemüüri pool on ettearvatav, sest protokoll 47 kas võetakse vastu või visatakse kõrvale, ja loendurid ütlevad, kumb. Ümberkirjutamise pool on koht, kus tootjad erinevad, sest PPTP kõneidentifikaatorid on iga tunneli kohta ja NAT, mis neid muudab, peab jälgima iga kõnet, mida puudutab. Kui üks klient ühendub ja kaks mitte, on ALG esimene kahtlusalune.

Sihtkoha NAT-reegel pordile 1723 kannab samuti omaniku probleemi. Kui vana reegel saadab endiselt 1723 hostile, mis lõpetas serveri käitamise, maanduvad paketid suletud pordile ja ruuteri enda PPTP-teenus lakkab vastamast, mis loetakse tulemüüri rikkena, kuid on tegelikult vananenud sihtkoht. Loe reeglit ja selle sihtkohta enne teise lisamist. Ruuteritel, mis ise PPTP-d lõpetavad, võistleb WAN-reegel sisseehitatud teenusega, seega vali 1723 ja protokolli 47 jaoks üks omanik.

Kaks klienti sama NAT-i taga on juhtum, mis eristab lihtsat edastust nutikast. Protokolli 47 edastamine ilma kõneidentifikaatoreid ümber kirjutamata käitub tavaliselt paremini kui aituri, mis üritab neid parandada.

Mõõda tunnelit enne, kui süüdistad ruuterit

PPTP kahandab kasulikku koormust ja see kahandamine on aritmeetika, mitte mõistatus. Iga tunneli pakett kannab välist IP-päist, täiustatud GRE-päist, PPP-päist ja krüpteerimise korral MPPE-päist. Kui tee ei suuda tekkivat kaadrit kanda, lähevad väikesed paketid läbi, sisselogimine lõpeb ja seanss jääb seisma esimesel korral, kui failiülekanne või TLS-kätlus saadab täissuuruses paketi.

Arvuta number välja, mitte ära oleta. Täiustatud GRE maksab 8 baiti, PPP maksab 4, MPPE maksab 4 ja väline IP-päis maksab 20, seega tunnel sööb 36 baiti enne igasugust koormust. PPPoE WAN-il, mis lõpeb 1492 juures, on suurim PPP MTU, mis mahub, 1492 miinus 36, see tähendab 1456. Sea mtu ja mru sellele väärtusele PPP valikutes ja testi uuesti fragmenteerimata pingiga.

ping -M do -s 1464 198.51.100.7
grep -E '^(mtu|mru)' /etc/ppp/options.pptpd

Ping mõõdab teed, mitte tunnelit: 1464 baiti koormust pluss 28 baiti IP- ja ICMP-päiseid täidavad täpselt 1492-baidise kaadri. Kui see ping ebaõnnestub, langeta numbrit, kuni see läbib, ja lahuta tulemusest 36. Üle tee piiri seatud tunneli MTU tekitab külmumise ilma ühegi logireata, mis suurust mainiks.

PPTP, L2TP/IPsec või OpenVPN samas ruuteris

Sama ruuter suudab kanda ükskõik millist kolmest tavalisest tunnelist ja erinevus on selles, mida see peab väljendama. PPTP vajab kahte reeglit kahes erinevas kihis. L2TP üle IPsec-i vajab võtmevahetuseks UDP 500 ja 4500 ning, kui NAT-T seda ei kanna, koormuse jaoks protokolli 50. OpenVPN vajab ühte UDP-porti ja üldse mitte aituri.

TunnelWhat the router must allowPractical note
PPTPTCP 1723 and IP protocol 47Two transports, two rules
L2TP/IPsecUDP 500, UDP 4500, protocol 50 without NAT-TESP has no port either
OpenVPNUDP 1194 or a chosen TCP portSingle rule, no helper

L2TP veerg ei ole automaatselt GRE-st sõbralikum. ESP on IP-protokoll 50 ja sellelgi puudub port, mistõttu ruuter, millel on raskusi protokolliga 47, võib samal põhjusel raskusi olla protokolliga 50. NAT-T on olemas selleks, et mähkida ESP UDP 4500 sisse, ja kui mõlemad otsad seda toetavad, muutub protokolli 50 reegel tarbetuks. See on otste omadus, mitte ruuteri PPTP-märkeruudu oma. Kinnita, millise kapselduse klient tegelikult läbi rääkis, enne kui kirjutad reeglid mõlema jaoks.

OpenVPN on valik, millel on ruuteri poolel kõige vähem liikuvaid osi. Üks UDP-port, üks edastus, ükski ühenduste jälgimise aitaja ja mingit kõneidentifikaatorite ümberkirjutamist. Vahetuseks on klient, mis tuleb paigaldada, mitte sisseehitatud valijat, ja sageli on see ainus põhjus, miks PPTP vestlusse jääb.

Mida parandada ja mida välja vahetada

Edastuse ja MTU parandamine annab sulle tunneli, mis töötab, mitte sellise, mida peaksid alles hoidma. PPTP MSCHAPv2-autentimine on olnud rünnatav juba aastaid ja töötav tunnel liigutab volitusi, mida saab võrguühenduseta taastada. Kui kaugseade suudab käitada L2TP/IPsec-i või OpenVPN-i, käsitle parandust ajutise meetmena, millel on kuupäev.

Otsus taandub sellele, mida kaugots toetab ja kui kaua korraldus vastu pidama peab. Vananenud seade, mis räägib ainult PPTP-d, saab paranduse; kõik, mis suudab kliendi paigaldada, migreeritakse.

Enne pileti sulgemist kinnita, et klient peab vastu suurele ülekandele, mitte ainult sisselogimisele, ja et ruuter hoiab pärast taaskäivitust alles oma protokolli 47 reegli. Tunnel, mis läbib ühe failikopeerimise ja sureb järgmise püsivara uuenduse järel, ei olnud kunagi valmis.

Seotud artiklid