Polni tunel ali pot do končne točke: kako ohraniti strežnik VPN dosegljiv
Tunel potuje skozi omrežje, ki ga nadomešča. Primerjajte izjemo poti do gostitelja z oznako vtičnice na ravni aplikacije in ugotovite, kdaj vsaka odpove.
Dodajte privzeto pot skozi tunel in lastni paketi tunela ji bodo sledili. Tabela takrat vsebuje pravilo, ki samo sebe premaga. Šifrirana povezava do strežnika poskuša potovati znotraj povezave, ki jo poskuša vzpostaviti.
Dva mehanizma preprečujeta to zanko. Eden je viden v usmerjevalni tabeli, drugi živi znotraj aplikacije.
Notranji in zunanji promet sta različni odločitvi
Paket aplikacije vstopi v navidezni vmesnik in se zapakira. Rezultat je nov paket, naslovljen na javni naslov strežnika. Ta paket potrebuje pot v fizičnem omrežju, ker nič od njega ne sme vstopiti v tunel.
Oba sta usmerjevalni odločitvi in samo prva pripada tunelu. Ko odjemalec namesti privzeto pot, ki pokriva tudi strežnik, je zunanji paket prav tako ujet.
Simptomi so takojšnji in popolni. Roko-seg se zaključi in nato nič ne teče, ali pa povezava pade v trenutku, ko je pot nameščena. V obeh primerih keepalive ne more več ven.
Prva možnost: pot do gostitelja za končno točko
Neposredni pristop doda pot do naslova strežnika prek izvirnega prehoda. Potrebuje eno vrstico. Vidna je vsakomur, ki bere tabelo. Prav tako jo je enostavno razložiti v zapisu o spremembi.
Njena šibkost se pokaže, ko se spodnja pot spremeni. Shranjena pot imenuje prehod in vmesnik iz starega omrežja. Po zamenjavi Wi-Fi tega prehoda morda ni, pot pa ostane, izgleda pravilno in ne naredi ničesar.
# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7
# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0
# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7
Ime gostitelja to oteži. Če je končna točka ime, ki se razreši v več naslovov, mora izjema pokriti naslov, ki se dejansko uporablja. Kasnejše iskanje lahko vrne nekaj, česar pot ni nikoli pokrila.
Druga možnost: zaščititi vtičnico
Drugi pristop se nikoli ne dotakne usmerjevalne tabele. Odjemalec označi ali zaščiti vtičnico, ki nosi tunel, zato operacijski sistem pošlje promet te vtičnice izven tunela v skladu s politiko. Android izpostavi mehanizem neposredno aplikacijam VPN. Namizni odjemalci izvajajo ustreznike z oznakami požarnega zidu ali klici za vezavo na napravo.
Prednost je, da izjema sledi povezavi in ne shranjenemu prehodu. Sprememba omrežja prepiše spodnjo pot in zaščitena vtičnica se premakne z njo, ker ni bila nikoli pripeta na naslov. Usmerjevalna tabela ostane čista.
Cena je vidnost. Nič v usmerjevalni tabeli ne pokaže izjeme, zato pregledovalec, ki išče pot do gostitelja, ne najde ničesar in lahko sklepa, da zasnova ni varna. Zaščita živi v kodi odjemalca in v pravilih politike, ki jih ta koda namesti.
Izbira med njima
Izberite mehanizem na ravni vtičnice, ko ga odjemalec podpira, ker preživi omrežne spremembe, ki zlomijo pripeto pot. Izberite pot do gostitelja, ko mora biti izjema vidna drugim orodjem ali ko odjemalec ne ponuja nič boljšega.
Noben mehanizem ne odpravi potrebe, da je naslov strežnika sploh dosegljiv. Zasebni prehod ima javni naslov za poslušanje in prav ta naslov mora ostati zunaj tunela. Notranja omrežja za njim postanejo dosegljiva šele, ko tunel obstaja.
Karkoli izberete, imejte to pri komponenti, ki ima tunel. Zablodeča pot do gostitelja, dodana ročno, deluje do naslednjega omrežja, nato pa postane jutrišnja skrivnostna prekinitev.