Přenosný VPN klient bez administrátorských práv: co se stále láme
Přenosný VPN klient může přeskočit instalátor a přesto potřebovat tunelové zařízení, trasu a zápis do resolveru. Spusťte tyto testy, než mu uvěříte.
Přenosný popisuje instalátor, ne jádro. Klient může přijít jako jeden spustitelný soubor na USB disku a přesto potřebovat tunelové zařízení, záznam v tabulce tras a zápis do resolveru, než se první paket pohne. Který z těch tří vám cílový stroj dovolí se dotknout, rozhoduje o tom, zda ta sestava tam vůbec funguje. Testy níže odpovídají na otázku v pořadí, v jakém na ně klient narazí.
Přenosnost pokrývá tři různé sliby a jen jeden je zdarma
Bez instalátoru znamená, že dodavatel nezaregistroval službu, nedodal odinstalátor ani nepřidal položku do nabídky. Bez administrátora znamená, že běžný účet může klienta spustit a dokončit připojení. Bez změny hostitele znamená, že stroj po ukončení vypadá stejně. Stránky ke stažení, které říkají přenosný, obvykle slibují jen první z toho a zbylé dva jsou místem, kde nasazení selhávají. Sestava může být přenosná i v úzkém smyslu: běží z média pouze pro čtení bez jakýchkoli zápisů tečkových souborů, což o síťovém zásobníku stále nic neříká.
Drahé sliby jsou druhý a třetí. Jeden spustitelný soubor, který potřebuje adaptér, trasu nebo zápis do resolveru, žádá od operačního systému oprávnění, která štítek přenosný nikdy nepokrýval.
Najděte privilegovaného pomocníka, kterého klient zavolá
Téměř žádný VPN klient nepohybuje pakety sám. Ve Windows vede datová cesta přes filtry WFP a Base Filtering Engine, v macOS přes poskytovatele NetworkExtension, kterého uživatel schválí v Nastavení systému, a v Linuxu přes zařízení tun plus směrovací zásobník. Zkopírovaný binární soubor je ovládací plocha pro tyto komponenty, ne jejich náhrada. Zeptejte se, kterou komponentu klient očekává, a pak potvrďte, že je nainstalovaná, běží a že ji váš účet může používat.
Linux je nejjednodušší místo, kde to dokázat, protože kontrola je jediné systémové volání. Otevření /dev/net/tun a požadavek na zařízení od jádra vyžaduje CAP_NET_ADMIN, a dokumentace jádra k TUN/TAP uvádí jak pravidlo vlastnictví, tak schopnost. Spusťte test pod účtem, který klienta spustí, ne jako root.
ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest
Chyba oprávnění na prostředním řádku je odpověď, kterou jste hledali: tento účet nemůže vytvořit tunelové rozhraní, takže každý klient v uživatelském prostoru, který ho potřebuje, selže při připojení, ne při stahování. Poslední řádek odstraní testovací zařízení a nic nevypíše, když to funguje. Pokud uspějí oba řádky, hostitel nic trvale nezměnil.
Otestujte změny trasy a resolveru před prvním připojením
Rozdělené tunelování mění připojení na rozhodnutí o směrování, zatímco plný tunel z něj dělá náhradu výchozí trasy. Obojí jsou zápisy do síťového zásobníku hostitele a obojí selže pro neprivilegovaný účet, i když klient sám startuje čistě. Resolver je třetí zápis a na hostitelích se systemd je obvykle tím, který se láme jako poslední. To pořadí je důležité, když rozhodujete, kam utratit instalaci se zvýšenými právy.
Test trasy potřebuje cíl, na kterém vám skutečně záleží, takže místo zástupného symbolu níže dosaďte podsíť ze svého profilu. Název zařízení musí existovat, aby se trasa měla k čemu připojit.
ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal
Pokud první řádek vrátí RTNETLINK answers: Operation not permitted, znamená to, že účet nemůže nainstalovat soukromou trasu, kterou profil vyžaduje. Druhý řádek dokazuje stejné právo opačně, což je důležité, protože klient, který umí trasy přidávat, ale ne odebírat, po sobě nechává rozbitou tabulku. Dotaz na resolver pak ukáže, zda se soukromá jména překládají přes tunel, nebo unikají k resolveru, kterému hostitel už věří.
Spusťte všechny tři, dokud testovací zařízení ještě existuje, a pak ho smažte. Trasa ukazující na zařízení, které zmizelo, je nejčastější důvod, proč notebook po neúspěšném připojení ztratí konektivitu.
Rozhodněte, co musí relaci přežít
Smazání složky není plán úklidu. Adaptéry, trasy, nastavení resolveru, důvěryhodné certifikáty a uložené přihlašovací údaje mohou každý přežít proces a služba při spouštění může některé z nich obnovit, aniž by se ptala. Zapište, co klient smí po sobě nechat, než ho spustíte, ne až po prvním neúspěšném odpojení.
Praktické pravidlo je pořídit snímek tří povrchů, které se chystáte změnit, a potom je porovnat. Zaznamenejte rozhraní, hlavní směrovací tabulku a stav resolveru před prvním připojením a poté zopakujte stejná tři čtení, jakmile klient skončí.
ip -brief addr show
ip route show table main
resolvectl status
Vše, co je v druhém zachycení přítomné a v prvním chybí, potřebuje vlastníka. Buď to klient při ukončení odstraní, nebo to odstraníte vy stejnými příkazy, které to vytvořily, a toto odstranění patří do poznámek k nasazení, ne do něčí paměti o tom, co se stalo. Ve Windows jsou ekvivalentní čtení Get-NetAdapter, Get-NetRoute a Get-DnsClientServerAddress, která nepotřebují zvýšení práv, ale ukazují stejné zbytky.