Prenosný VPN klient bez administrátorských práv: čo sa stále láme
Prenosný VPN klient môže preskočiť inštalátor a napriek tomu potrebovať tunelové zariadenie, trasu a zápis do resolvera. Spustite tieto testy, kým mu uveríte.
Prenosný opisuje inštalátor, nie jadro. Klient môže prísť ako jeden spustiteľný súbor na USB kľúči a napriek tomu potrebovať tunelové zariadenie, záznam v tabuľke trás a zápis do resolvera, kým sa pohne prvý paket. Ktorý z tých troch vám cieľový stroj dovolí sa dotknúť, rozhoduje o tom, či tá zostava tam vôbec funguje. Testy nižšie odpovedajú na otázku v poradí, v akom na ne klient narazí.
Prenosnosť pokrýva tri rôzne prísľuby a len jeden je zadarmo
Bez inštalátora znamená, že dodávateľ nezaregistroval službu, nedodal odinštalátor ani nepridal položku do ponuky. Bez administrátora znamená, že bežný účet môže klienta spustiť a dokončiť pripojenie. Bez zmeny hostiteľa znamená, že stroj po ukončení vyzerá rovnako. Stránky na stiahnutie, ktoré hovoria prenosný, zvyčajne sľubujú len prvý z toho a zvyšné dva sú miestom, kde nasadenia zlyhávajú. Zostava môže byť prenosná aj v úzkom zmysle: beží z média iba na čítanie bez akýchkoľvek zápisov bodkových súborov, čo o sieťovom zásobníku stále nič nehovorí.
Drahé prísľuby sú druhý a tretí. Jeden spustiteľný súbor, ktorý potrebuje adaptér, trasu alebo zápis do resolvera, žiada od operačného systému oprávnenie, ktoré štítok prenosný nikdy nepokrýval.
Nájdite privilegovaného pomocníka, ktorého klient zavolá
Takmer žiadny VPN klient nepohybuje pakety sám. Vo Windows vedie dátová cesta cez filtre WFP a Base Filtering Engine, v macOS cez poskytovateľa NetworkExtension, ktorého používateľ schváli v Nastaveniach systému, a v Linuxe cez zariadenie tun plus smerovací zásobník. Skopírovaný binárny súbor je ovládacia plocha pre tieto komponenty, nie ich náhrada. Spýtajte sa, ktorý komponent klient očakáva, a potom potvrďte, že je nainštalovaný, beží a váš účet ho môže používať.
Linux je najjednoduchšie miesto, kde to dokázať, pretože kontrola je jediné systémové volanie. Otvorenie /dev/net/tun a požiadanie jadra o zariadenie vyžaduje CAP_NET_ADMIN, a dokumentácia jadra k TUN/TAP uvádza ako pravidlo vlastníctva, tak schopnosť. Spustite test pod účtom, ktorý klienta spustí, nie ako root.
ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest
Chyba oprávnení na prostrednom riadku je odpoveď, ktorú ste hľadali: tento účet nemôže vytvoriť tunelové rozhranie, takže každý klient v používateľskom priestore, ktorý ho potrebuje, zlyhá pri pripájaní, nie pri sťahovaní. Posledný riadok odstráni testovacie zariadenie a nič nevypíše, keď to funguje. Ak uspejú oba riadky, hostiteľ nič natrvalo nezmenil.
Otestujte zmeny trasy a resolvera pred prvým pripojením
Rozdelené tunelovanie mení pripojenie na rozhodnutie o smerovaní, zatiaľ čo plný tunel z neho robí náhradu predvolenej trasy. Oboje sú zápisy do sieťového zásobníka hostiteľa a oboje zlyhá pre neprivilegovaný účet, aj keď klient sám štartuje čisto. Resolver je tretí zápis a na hostiteľoch so systemd je zvyčajne tým, ktorý sa láme ako posledný. To poradie je dôležité, keď rozhodujete, kam minúť inštaláciu so zvýšenými právami.
Test trasy potrebuje cieľ, na ktorom vám skutočne záleží, takže namiesto zástupného symbolu nižšie dosaďte podsieti zo svojho profilu. Názov zariadenia musí existovať, aby sa trasa mala k čomu pripojiť.
ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal
Ak prvý riadok vráti RTNETLINK answers: Operation not permitted, účet nemôže nainštalovať súkromnú trasu, ktorú profil vyžaduje. Druhý riadok dokazuje to isté právo opačne, čo je dôležité, pretože klient, ktorý vie trasy pridávať, ale nie odoberať, po sebe necháva rozbitú tabuľku. Dopyt na resolver potom ukáže, či sa súkromné názvy prekladajú cez tunel alebo unikajú k resolveru, ktorému hostiteľ už dôveruje.
Spustite všetky tri, kým testovacie zariadenie ešte existuje, a potom ho zmažte. Trasa ukazujúca na zariadenie, ktoré zmizlo, je najčastejší dôvod, prečo notebook po neúspešnom pripojení stratí konektivitu.
Rozhodnite, čo musí reláciu prežiť
Zmazanie priečinka nie je plán upratovania. Adaptéry, trasy, nastavenia resolvera, dôveryhodné certifikáty a uložené prihlasovacie údaje môžu každý prežiť proces a služba pri spustení môže niektoré z nich obnoviť bez toho, aby sa pýtala. Zapíšte, čo klient smie po sebe nechať, predtým ako ho spustíte, nie po prvom neúspešnom odpojení.
Praktické pravidlo je urobiť snímku troch povrchov, ktoré sa chystáte zmeniť, a potom ich porovnať. Zaznamenajte rozhrania, hlavnú smerovaciu tabuľku a stav resolvera pred prvým pripojením a potom zopakujte tie isté tri čítania, keď klient skončí.
ip -brief addr show
ip route show table main
resolvectl status
Všetko, čo je v druhom zachytení prítomné a v prvom chýba, potrebuje vlastníka. Buď to klient pri ukončení odstráni, alebo to odstránite vy tými istými príkazmi, ktoré to vytvorili, a toto odstránenie patrí do poznámok k nasadeniu, nie do niekoho pamäti o tom, čo sa stalo. Vo Windows sú ekvivalentné čítania Get-NetAdapter, Get-NetRoute a Get-DnsClientServerAddress, ktoré nepotrebujú zvýšenie práv, ale ukazujú rovnaké zvyšky.