Kaks koduruuterit, ühtegi edastatud porti ja VPN, mis mõnikord siiski ühendub. UDP lubab seda, sest tulemüür laseb läbi paketi, mille see suudab sobitada vooga, mille masin on juba alustanud. See on tingimuslik trikk, mitte funktsioon, ja tingimusi on lihtne loetleda, kui tead, mida tulemüür võrdleb. Need on ka põhjus, miks identsed profiilid käituvad eri võrkudes erinevalt.

Võrdlus, mille tulemüür teeb

Iga väljuv datagramm loob lühiajalise kirje: lähteaadress, lähteport, sihtaadress, sihtport. Kõik saabuv, mis kirjega sobib, käsitletakse vastusena ja lastakse läbi. Sissetuleva liikluse reeglid ei mängi selles mingit rolli.

Seega küsimus ei ole, kas tulemüür laseb partneri sisse. Küsimus on, kas partneri pakett näeb välja nagu vastus, mida kirje ootab. Muuda selle neljaosalise korteeži üht välja ja paketist saab võõras. Seetõttu võib töötav seadistus katki minna, kui muutub ainult pordi number, ja seetõttu võib sama port ühel ruuteril töötada ja järgmisel nurjuda.

Kinnita kohalik lähteport ja sama number ilmub vahetuse mõlemale poolele. See on kogu mehhanism ja see selgitab, miks trikk on habras, mitte salapärane.

Ühe pordi kinnitamine kummaski otsas

OpenVPN-i vaikimisi UDP-port on 1194 ja lport määrab lähteporti, kust see saadab. Kinnita mõlemad partnerid ja kummagi väljuv korteež osutab pordile, millel teine kuulab:

# peer A
lport 1194
remote 198.51.100.20 1194
# peer B
lport 1194
remote 203.0.113.10 1194

See töötab ainult seni, kuni ükski nendevaheline ruuter lähteporti ümber ei kirjuta. Kui paketid ilmuvad tabamuses, aga tunnel ei tõuse, on ümberkirjutus esimene kahtlusalune.

Kus korteež enam ei sobi

NAT, mis kaardistab sihi järgi, annab kummalegi partnerile erineva välise pordi. Aadress, mida sinu partneril kästi kasutada, ei ole aadress, mis temani jõuab, seega ei sobi saabuv pakett millegagi ja visatakse vaikselt kõrvale.

Operaatoritasandi tõlkimine, kihistatud NAT ja portide juhuslikustamine lõpevad kõik ühtemoodi. Samuti iga vahesein, mis kirjutab porte ümber, jättes aadressid puutumata.

Voogedastuse transportidel läheb halvemini. TCP kätlust jälgitakse samm-sammult, seega TCP-l põhinevat VPN-i ei saa niimoodi üldse läbi augustada ja see vajab kuulajat kuskil teel.

Tavaliselt nurjub esimesena üks pool

Praktikas käituvad need kaks võrku harva ühtemoodi. Üks ruuter võib anda etteaimatava kaardistuse, samal ajal kui teine annab pordid sihi järgi, ja tulemuseks on seadistus, mis töötab kahe kodu vahel ja nurjub mobiilivõrgust. Vasturääkivad raportid kirjeldavad tavaliselt kahte erinevat ruuteripaari. Kumbki autor ei eksi ja kumbki tulemus ei üldistu.

Enne profiilide puutumist tee kindlaks, kumb pool paketi maha viskas. Tabamused mõlemas otsas lahendavad selle ühe katsega: datagrammid, mis lahkuvad A-st ega jõua kunagi B-sse, tähendavad, et voog kirjutati teel ümber, samas kui datagrammid, mis jõuavad B-sse ilma vastuseta, tähendavad, et tulemüür ei võtnud neid seotutena vastu.

Kaks avaliku IPv6-aadressiga partnerit väldivad kogu probleemi. Tõlkimiseta pole midagi sobitada, seega piisab tulemüüri reeglist, mis partnereid nimetab, ja disain lakkab sõltumast ruuteri käitumisest.

Millal proovimine lõpetada

Avaliku aadressiga host on usaldusväärne vastus. See saab tunneli mõlema partneri jaoks lõpetada või lihtsalt aidata neil teineteise praegust välist aadressi avastada, ja mõlemad lahendused töötavad ükskõik mida NAT-id teevad. Hallatav ülekihikiht pakub sama koordineerimist, kui poliitika seda lubab.

Ükski neist ei vaja väljalülitatud tulemüüri. Kaitse väljalülitamine otsese ühenduse võitmiseks heidab kõrvale põhjuse, miks otsene katse oli ahvatlev, ja jätab masina katse kestel lahti.

Proovi esmalt otsest lahendust ja pane siis kirja, mida nägid. NAT-i käitumine ja selle näidanud tabamus on väärt rohkem kui poripaar, mille juurde lõpuks jäid, sest järgmine võrk on teistsugune. OpenVPN 2.6 käsiraamat dokumenteerib lport ja remote-valikud, millest see sõltub.

Seotud artiklid