Kiekvienas kliento profilis nurodo vieną serverį, todėl iš naudotojo vietos yra vienas tunelis ir viena vieta, kurioje apsauga baigiasi. Tai, kas vyksta po to pirmojo tinklelio, yra dizaino sprendimas, kurio klientas niekada nemato, o du įprasti dizainai tikrinimo metu elgiasi labai skirtingai. Nuoseklioje grandinėje pirmasis tinklelis iššifruoja ir vėl užšifruoja. Įdėtoje grandinėje jis pašalina išorinį sluoksnį ir persiunčia vidinį tunelį, kurio negali atidaryti. Šuolių skaičius abiem atvejais vienodas, todėl skirtumą reikia piešti, o ne skaičiuoti.

Pradėkite nuo kliento ir įvardykite abu galus

Pradėkite ten, kur pradeda naudotojas, ryšio profilyje. Jame yra vienas nuotolinis adresas, vienas autentifikavimo metodas ir, jei dizainas tai palaiko, maršrutų sąrašas. Pažymėkite tą išorinį tunelį nuo kliento iki tinklelio A ir suteikite jam pavyzdinius adresus: kliento tunelio adresas 10.77.0.2, A adresas 10.77.0.1 ir A viešasis galinis taškas 198.51.100.10, paimti iš TEST-NET-2 dokumentacijos diapazono, kad niekas pavyzdyje nesusidurtų su tikru hostu.

Tame profilyje niekas nemini tinklelio B, ir tai nėra defektas. Antrasis šuolis priklauso A, o vienintelė kliento prievolė yra pristatyti srautą A ir priimti tai, kas grįžta. Ar A užbaigia tunelį, persiunčia jį ar atidaro naują, yra klausimas, į kurį atsako likusi šio apžvalgos dalis, ir tai lemia, ką A gali skaityti.

Nuosekliai: A iššifruoja, tada vėl užšifruoja

Nuosekliame dizaine A užbaigia srautą du kartus. Jis pašalina apsaugą nuo kliento, gauna programos IP paketą ir tada siunčia tą paketą antru tuneliu, kurį A sukuria link B. Tarp šių dviejų operacijų paketas yra A persiuntimo kelyje kaip paprastas IP paketas, adresuotas į privatų tikslą.

Tai duoda dvi pasekmes, kurias verta pasakyti tiesiai. A gali taikyti politiką vidiniam paketui maršrutų, filtro taisyklių ir šaltinio bei tikslo registravimo forma, ir A turi laikyti du kredencialų rinkinius: vieną kaip serveris klientui ir vieną kaip B klientas. Apsauga egzistuoja kiekvieną akimirką, bet saugomas objektas A vietoje keičia tapatybę.

Iš to neišplaukia, kad A skaito programos atvirą tekstą. Kai klientas ir paslauga naudoja TLS ir tikrina vienas kito sertifikatus, A mato TLS įrašų srautą, o ne skaitomą užklausą. Norint patvirtinti, kur ta apsauga baigiasi, reikia pažvelgti į paslaugos sertifikatų grandinę, o ne į tunelio schemą.

Įdėta: A pašalina tik išorinį sluoksnį

Įdėtame dizaine klientas pirmiausia sukuria vidinį tunelį link B, o paskui neša tą tunelį išoriniame iki A. A nuima išorinę antraštę, randa vidinį tunelį ir persiunčia jį nelaikydamas jo raktų, todėl vidinė apsauga vis dar baigiasi B.

Tada kliento aukštutinė jungtis neša du sluoksnius, o kelias tarp A ir B neša vieną. A mato vidinio tunelio išorinius adresus, ko pakanka žinoti, kad srautas egzistuoja ir maždaug kur jis eina, ir nepakanka naudingajai apkrovai perskaityti. Tai yra visas skirtumas nuo nuoseklaus atvejo, ir joks šuolių skaitiklis to neparodo. Ką A dar gali padaryti, tai atsisakyti persiųsti tai, ko negali perskaityti, ir tai to tinklelio operatoriui visada prieinama.

Įdėjimas kainuoja už tą savybę. Kiekvienas sluoksnis prideda antraštės sąnaudų, todėl MTU ir MSS planavimas tampa privalomas, o ne tik tvarkingas, ir kelias, kuris veikia su vienu sluoksniu, su dviem gali tyliai numesti didelius paketus. Kiekvienam sluoksniui taip pat reikia savo persijungimo ir gyvybės palaikymo elgsenos, o vieno sluoksnio gedimas per kitą atrodo kaip dalinis sutrikimas.

Pieškite stebėtojus, o ne tik tunelius

Tuneliai yra lengvoji piešinio dalis. Stebėtojai yra tai, apie ką dizainas, todėl rašykite po vieną eilutę kiekvienam požiūrio taškui ir užpildykite, ką kiekvienas iš tikrųjų gali perskaityti.

Vantage pointSerial chainNested chain
Client's access networkOuter tunnel onlyOuter tunnel only
Operator of AInner IP packet between A and BOuter addresses of the inner tunnel, not its payload
Path between A and BSecond tunnelSecond tunnel
Operator of BInner packet re-originated by APayload after the inner layer is removed
Service edgeTraffic from the exit addressTraffic from the exit address

Dvi eilutės nuolat painiojamos: A operatorius ir kliento tunelio teikėjas. Jie gali būti vienas subjektas, o atskiri tinklelių pavadinimai nepadaro jų nepriklausomais. Nepriklausomai nuosavybei reikia atskiro administracinio valdymo, atskirų kredencialų ir atskiro registravimo.

Metaduomenys išlieka abiejuose dizainuose. Laikas, paketų dydžiai ir jungčių skaičiai lieka stebimi kiekviename šuolyje, todėl du šuoliai padidina koreliacijos kainą, o ne pašalina signalą. Dizainą, kuris žada nematomumą, reikėtų patikrinti pagal tą sąrašą, prieš kam nors juo pasikliaujant.

Pereikite gedimų kelius prieš rinkdamiesi

Sąmoningai laužykite dalykus iš kliento pusės, ta tvarka, kuria naudotojas juos sutiktų. Pradėkite nuo sąsajos ir jos MTU, nes įdėjimas žlunga dėl paketo dydžio daug anksčiau nei dėl autentifikavimo.

ip -4 addr show dev tun0
ip link show dev tun0 | grep mtu
ping -M do -s 1380 -c 2 10.77.1.1

Tada patvirtinkite apsaugos galinius taškus, o ne darykite prielaidas. Paprašykite paslaugos sertifikato iš bet kurio aktyvaus tunelio vidaus ir palyginkite grandinę, kurią mato klientas, su grandine, kurią paslauga iš tikrųjų pateikia. Tinklelis, kuris perrašo parašą arba perima, pakeičia tą sertifikatą, ir patikra tampa matoma viena komanda.

openssl s_client -connect intranet.example.com:443 -brief < /dev/null

Baigkite persijungimo matrica: kliento tunelis krenta, B tunelis krenta, kelias tarp A ir B pasikeičia. Užsirašykite, kas grįžta ir kas ne, ir ar vidinė jungtis kada nors krenta į maršrutą už savo numatyto nešėjo. Užregistruokite adresus, kuriuos naudojo kiekvienas testas, nes kartojimas kitame prieigos tinkle atsako į kitą klausimą. Pakartokite ir MTU patikrą po kiekvieno persijungimo, nes pasikeitęs kelias gali sumažinti naudingą dydį, nepajudinus nė vienos konfigūracijos eilutės.

Rinkitės nuoseklų, kai A turi taikyti politiką vidiniam paketui, arba kai klientas negali paleisti dviejų sudėtų tunelių. Rinkitės įdėjimą, kai vidinė apkrova turi likti neperskaitoma A. Užrašykite pasirinkimą su jo stebėtojais ir MTU skaičiais, ir kitam žmogui nereikės perpiešti viso vaizdo, kad atsakytų į vieną klausimą.

Susiję straipsniai