Portable na VPN client na walang admin rights: ano pa ang nasisira
Maaaring laktawan ng portable na VPN client ang installer at kailanganin pa rin ang tunnel device, ruta at pagsulat sa resolver. Patakbuhin ang mga pagsusuring ito bago mo ito pagkatiwalaan.
Inilalarawan ng portable ang installer, hindi ang kernel. Maaaring dumating ang client bilang isang executable sa USB at kailanganin pa rin ang tunnel device, entry sa talahanayan ng ruta at pagsulat sa resolver bago gumalaw ang unang packet. Kung alin sa tatlong ito ang papayagan kang hawakan ng target na makina ang magpapasya kung gumagana talaga ang build na iyon doon. Sinasagot ng mga pagsusuri sa ibaba ang tanong sa pagkakasunod-sunod na makikita ng client.
Sinasaklaw ng portable ang tatlong magkakaibang pangako, at isa lang ang libre
Walang installer ay nangangahulugang hindi nagrehistro ng serbisyo ang vendor, hindi nagpadala ng uninstaller at hindi nagdagdag ng menu entry. Walang administrator ay nangangahulugang kayang simulan ng ordinaryong account ang client at tapusin ang koneksyon. Walang pagbabago sa host ay nangangahulugang mukhang pareho ang makina pagkatapos mong umalis. Ang mga download page na nagsasabing portable ay karaniwang ipinapangako lamang ang una sa mga iyon, at ang dalawa pa ang lugar kung saan nabibigo ang mga deployment. Maaari ring portable ang isang build sa makitid na kahulugan: tumatakbo ito mula sa read-only na media na walang anumang pagsulat ng dotfile, na wala pa ring sinasabi tungkol sa network stack.
Ang mamahaling pangako ay ang pangalawa at pangatlo. Ang isang executable na nangangailangan ng adapter, ruta o pagsulat sa resolver ay humihingi sa operating system ng awtoridad na hindi kailanman sinakop ng label na portable.
Hanapin ang privileged helper na tatawagin ng client
Halos walang VPN client na naglilipat ng packet nang mag-isa. Sa Windows dumadaan ang data path sa WFP filters at Base Filtering Engine, sa macOS sa isang NetworkExtension provider na inaprubahan ng user sa System Settings, at sa Linux sa isang tun device kasama ang routing stack. Ang binary na kinopya mo ay control surface para sa mga bahaging iyon, hindi kapalit ng mga ito. Itanong kung aling bahagi ang inaasahan ng client, pagkatapos ay kumpirmahing naka-install ito, tumatakbo at magagamit ng iyong account.
Ang Linux ang pinakamadaling lugar upang patunayan ito, dahil isang system call lang ang pagsusuri. Ang pagbukas ng /dev/net/tun at paghingi ng device mula sa kernel ay nangangailangan ng CAP_NET_ADMIN, at dokumentasyon ng kernel tungkol sa TUN/TAP binabanggit ang parehong tuntunin ng pagmamay-ari at kakayahan. Patakbuhin ang pagsusuri sa account na maglulunsad ng client, hindi bilang root.
ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest
Ang error sa pahintulot sa gitnang linya ang sagot na hinahanap mo: hindi makakagawa ang account na ito ng tunnel interface, kaya ang anumang client sa user space na nangangailangan nito ay nabibigo sa pagkonekta, hindi sa pag-download. Tinatanggal ng huling linya ang test device at wala itong ini-print kapag gumana. Kung magtagumpay ang dalawang linya, wala pang permanenteng binago ang host.
Subukan ang mga pagbabago sa ruta at resolver bago ang unang koneksyon
Ang split tunneling ay ginagawang routing decision ang koneksyon, habang ang buong tunnel ay ginagawang kapalit ito ng default na ruta. Pareho silang pagsulat sa network stack ng host, at parehong nabibigo para sa account na walang pribilehiyo kahit malinis na magsimula ang client mismo. Ang resolver ang pangatlong pagsulat, at sa mga host na systemd ito ang karaniwang huling nasisira. Mahalaga ang pagkakasunod-sunod na iyon kapag nagpapasya ka kung saan gagastusin ang elevated na pag-install.
Ang pagsusuri sa ruta ay nangangailangan ng destinasyong talagang mahalaga sa iyo, kaya palitan ang placeholder sa ibaba ng subnet mula sa sarili mong profile. Dapat umiral ang pangalan ng device upang makakapit ang ruta sa kahit ano.
ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal
Kung ang unang linya ay nagbabalik ng RTNETLINK answers: Operation not permitted, hindi maaaring i-install ng account ang pribadong rutang hinihingi ng profile. Pinatutunayan ng pangalawang linya ang parehong karapatan sa kabaligtaran, na mahalaga dahil ang client na kayang magdagdag ng ruta pero hindi mag-alis ng mga ito ay nag-iiwan ng sirang talahanayan. Pagkatapos, ipinapakita ng query sa resolver kung nalulutas ang mga pribadong pangalan sa tunnel o tumatagas sa resolver na pinagkakatiwalaan na ng host.
Patakbuhin ang tatlo habang umiiral pa ang test device, pagkatapos ay burahin ito. Ang rutang tumuturo sa device na wala na ang pinakakaraniwang dahilan kung bakit nawawalan ng connectivity ang laptop pagkatapos ng bigong koneksyon.
Magpasya kung ano ang dapat mabuhay sa sesyon
Ang pagbura ng folder ay hindi plano sa paglilinis. Ang mga adapter, ruta, setting ng resolver, pinagkakatiwalaang certificate at nakaimbak na kredensyal ay maaaring tumagal pa kaysa sa proseso, at ang serbisyo sa boot ay maaaring magpanumbalik ng ilan sa mga ito nang hindi nagtatanong. Isulat kung ano ang pinapayagang iwanan ng client bago mo ito patakbuhin, hindi pagkatapos ng unang bigong pagdiskonekta.
Ang praktikal na tuntunin ay kumuha ng snapshot ng tatlong surface na babaguhin mo at pagkatapos ay ihambing ang mga ito. Itala ang mga interface, ang pangunahing routing table at ang estado ng resolver bago ang unang koneksyon, pagkatapos ay ulitin ang parehong tatlong pagbasa kapag umalis na ang client.
ip -brief addr show
ip route show table main
resolvectl status
Anumang nasa ikalawang capture at wala sa una ay nangangailangan ng may-ari. Alinman sa client ang nag-aalis nito sa paglabas, o ikaw ang nag-aalis nito gamit ang parehong mga utos na lumikha nito, at ang pag-aalis na iyon ay kabilang sa mga tala ng deployment, hindi sa alaala ng sinuman tungkol sa nangyari. Sa Windows ang katumbas na pagbasa ay Get-NetAdapter, Get-NetRoute at Get-DnsClientServerAddress, na hindi nangangailangan ng elevation pero nagpapakita ng parehong mga labi.