Viena SSH sesija, viena žiniatinklio programa ir vienas vardų užklausimas gali dalytis viena VPN jungtimi, nekovodami dėl prievadų. Klientas sukuria vieną šifruotą srautą į tinklų sietuvą, ir kiekvienas programos pokalbis keliauja jo viduje. Išorėje matomas tik paties tunelio transportas ir prievadas. Viduje kiekviena paslauga išlaiko savo prievadą ir vis tiek reikalauja savo leidimo.

Ką neša išorinis srautas ir ką jis slepia

Klientas apgaubia kiekvieną paketą tunelio transportu, kol šis dar nepaliko įrenginio. Tas išorinis srautas turi vieną paskirties prievadą, nustatytą konfigūruojant VPN. Apvalkalo viduje kiekvienas pirminis paketas išlaiko paslaugos, į kurią jis nukreiptas, adresą ir prievadą. Tinklų sietuvas nuima apvalkalą ir maršrutizuoja pagal vidinę antraštę, todėl paskirties taškas mato įprastą klientą, atvykstantį iš tinklo.

Todėl WAN sąsajos fiksavimas rodo vieną pokalbį, o ne tris. Vidiniai prievadai pasirodo tik po išpakavimo. Štai kodėl viena užkardos anga gali vienu metu pernešti SSH, HTTPS ir DNS.

# WAN side: one outer tuple, whatever the inner services are
tcpdump -ni wan0 'udp port 443'
# tunnel side: the inner tuples appear after decapsulation
tcpdump -ni tun0

TUN/TAP dokumentacija aprašo perdavimą, kai maršrutizuotas TUN įrenginys perduoda IP paketus tarp branduolio ir naudotojo erdvės proceso. Būtent šis perdavimas leidžia tinklų sietuvui matyti vidinę antraštę savo maršrutizavimo ir užkardos kode. Jis taip pat paaiškina, kodėl išorinis prievadas nieko nesako apie tai, kurios paslaugos leidžiamos.

NAT peradresavimas priklauso klausytuvui, o ne programoms

Savarankiškai talpinamam tinklų sietuvui už IPv4 NAT reikia vieno įeinančio vertimo: viešas adresas ir prievadas susiejami su VPN klausytuvu. Jokia taisyklė nereikalinga SSH, HTTPS ar DNS vien todėl, kad tunelio naudotojai juos pasiekia. Tų prievadų paskelbimas atskleistų paslaugas, kurias tunelis jau apsaugo. Peradresavimo taisyklė apibūdina klausytuvo pasiekiamumą, o ne leidimą kažkam viduje.

Galioja ir priešingai. Tunelio prievado atidarymas neatskleidžia nieko kito, todėl paslauga, pasiekiama tik per tunelį, išlaiko savo viešą paviršių uždarą. Būtent šis atskyrimas paprastai ir yra priežastis laikyti paslaugą privačią.

Vidinė politika yra vieta, kur iš tikrųjų sprendžiama prieiga

Šifravimas saugo kelią; jis neįgalioja paskirties taško. Kliento maršrutai nusprendžia, kurie priešdėliai patenka į tunelį, tinklų sietuvo peradresavimo politika nusprendžia, ar paketai gali jį palikti, o paskirties taško užkarda ir prisijungimas nusprendžia, ar paslauga atsakys. DNS yra aiškiausias atvejis: užklausų pernešimas nepriverčia resolverio priimti jų iš jūsų klientų telkinio. Kiekvienas sluoksnis gali atsisakyti savarankiškai.

Tikrinkite kiekvieną paslaugą atskirai per tunelį. Sėkminga užklausa nieko nesako apie žiniatinklio prievadą, o sėkminga žiniatinklio užklausa nieko nesako apie SSH.

dig @10.40.0.53 app.corp.example
nc -vz 10.40.0.10 8443
ssh -p 2222 [email protected]

Kai tunelis veikia, o viskas nepavyksta, pirmiausia skaitykite kliento maršrutų lentelę. Kai viena paslauga nepavyksta, o kitos veikia, gedimas yra tame paskirties taške. Šie du pastebėjimai rodo skirtingus savininkus, o jų painiojimas eikvoja laiką.

WireGuard brėžia tą pačią liniją

WireGuard savo išorinį klausytuvą įvardija ListenPort pavadinimu, o vidinė programa vis tiek naudoja tokį paslaugos prievadą, kokio jai reikia. AllowedIPs yra maršrutizuotų priešdėlių rinkinys, o ne leidžiamų paslaugos prievadų sąrašas. Skaitant jį kaip prievadų leidimų sąrašą gaunamos taisyklės, kurios neatitinka to, ką daro tunelis. Pavadinimas kitas; sluoksniavimas ne.

Leiskite paslaugą vietinės įvesties politikoje, kai ji veikia pačiame galiniame taške, arba peradresavimo politikoje, kai ji yra už to galinio taško. Šis skirtumas nusprendžia, kuris taisyklių rinkinys mato paketą.

Bendroji forma yra vienas išorinis transportas su daugybe vidinių pokalbių. Produktai, kuriems reikia kelių išorinių mainų ar kito IP protokolo, primena, kad vieno viešo prievado modelis apibūdina šį sprendimą, o ne kiekvieną VPN.

Susiję straipsniai