Prijenosni VPN klijent bez administratorskih prava: što se još uvijek kvari
Prijenosni VPN klijent može preskočiti instalater i ipak trebati tunelski uređaj, rutu i upis u razrješivač. Pokrenite ove provjere prije nego mu povjerujete.
Prijenosno opisuje instalater, ne jezgru. Klijent može doći kao jedna izvršna datoteka na USB sticku i ipak trebati tunelski uređaj, unos u tablicu ruta i upis u razrješivač prije nego se prvi paket pomakne. Koji od ta tri ciljno računalo dopusti da dotaknete odlučuje radi li ta gradnja tamo uopće. Provjere ispod odgovaraju na pitanje redom kojim će klijent na njih naići.
Prijenosnost pokriva tri različita obećanja, a samo je jedno besplatno
Bez instalatera znači da dobavljač nije registrirao uslugu, isporučio deinstalater ni dodao stavku u izborniku. Bez administratora znači da običan račun može pokrenuti klijent i dovršiti vezu. Bez promjene na hostu znači da računalo izgleda jednako nakon što izađete. Stranice za preuzimanje koje kažu prijenosno obično obećavaju samo prvo od toga, a druga dva su mjesto gdje implementacije propadaju. Gradnja može biti prijenosna i u užem smislu: radi s medija samo za čitanje bez ikakvih upisa točkastih datoteka, što još uvijek ništa ne govori o mrežnom stogu.
Skupa obećanja su drugo i treće. Jedna izvršna datoteka kojoj treba adapter, ruta ili upis u razrješivač traži od operacijskog sustava ovlasti koje oznaka prijenosno nikada nije pokrivala.
Nađite privilegiranog pomoćnika kojeg će klijent pozvati
Gotovo nijedan VPN klijent sam ne prenosi pakete. Na Windowsu put podataka ide kroz WFP filtre i Base Filtering Engine, na macOS-u kroz NetworkExtension pružatelja kojeg korisnik odobri u Postavkama sustava, a na Linuxu kroz tun uređaj plus stog za usmjeravanje. Binarna datoteka koju ste kopirali kontrolna je površina za te komponente, ne njihova zamjena. Pitajte koju komponentu klijent očekuje, zatim potvrdite da je instalirana, da radi i da je vaš račun može koristiti.
Linux je najlakše mjesto da to dokažete jer je provjera jedan sistemski poziv. Otvaranje /dev/net/tun i traženje uređaja od jezgre zahtijeva CAP_NET_ADMIN, a dokumentacija jezgre za TUN/TAP navodi i pravilo vlasništva i sposobnost. Pokrenite provjeru kao račun koji će pokrenuti klijent, ne kao root.
ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest
Pogreška dopuštenja na srednjem retku odgovor je koji ste tražili: ovaj račun ne može stvoriti tunelsko sučelje, pa svaki klijent u korisničkom prostoru kojem ono treba pada pri povezivanju, a ne pri preuzimanju. Zadnji redak uklanja testni uređaj i ne ispisuje ništa kada uspije. Ako oba retka uspiju, host nije trajno promijenio ništa.
Testirajte promjene rute i razrješivača prije prvog povezivanja
Podijeljeno tuneliranje pretvara vezu u odluku o usmjeravanju, dok je puni tunel pretvara u zamjenu zadane rute. Oboje su upisi u mrežni stog hosta, i oboje padaju za neprivilegiran račun čak i kada sam klijent starta čisto. Razrješivač je treći upis, a na systemd hostovima obično je onaj koji se kvari posljednji. Taj redoslijed je važan kada odlučujete gdje potrošiti instalaciju s povišenim pravima.
Provjera rute treba odredište koje vam je doista važno, zato zamijenite podmrežu iz vlastitog profila umjesto rezerviranog mjesta ispod. Naziv uređaja mora postojati da bi se ruta mogla pričvrstiti za bilo što.
ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal
Prvi redak koji vrati RTNETLINK answers: Operation not permitted znači da račun ne može instalirati privatnu rutu koju profil zahtijeva. Drugi redak dokazuje isto pravo obrnuto, što je važno jer klijent koji može dodavati rute ali ne uklanjati ih ostavlja pokvarenu tablicu za sobom. Upit razrješivaču zatim pokazuje rješavaju li se privatna imena kroz tunel ili cure prema kojem god razrješivaču host već vjeruje.
Pokrenite sve tri dok testni uređaj još postoji, zatim ga izbrišite. Ruta koja pokazuje na uređaj kojeg nema najčešći je razlog zašto laptop izgubi povezanost nakon neuspjelog povezivanja.
Odlučite što mora preživjeti sesiju
Brisanje mape nije plan čišćenja. Adapteri, rute, postavke razrješivača, pouzdani certifikati i pohranjene vjerodajnice mogu svaki nadživjeti proces, a usluga pri podizanju može neke od njih vratiti bez pitanja. Zapišite što klijentu smije ostati za sobom prije nego ga pokrenete, a ne nakon prvog neuspjelog prekida veze.
Praktično pravilo je napraviti snimku tri površine koje ćete promijeniti i usporediti ih poslije. Zabilježite sučelja, glavnu tablicu usmjeravanja i stanje razrješivača prije prvog povezivanja, zatim ponovite ista tri čitanja nakon što klijent izađe.
ip -brief addr show
ip route show table main
resolvectl status
Sve što je prisutno u drugom snimku, a odsutno u prvom, treba vlasnika. Ili klijent to ukloni pri izlasku, ili to uklonite vi istim naredbama koje su ga stvorile, i to uklanjanje pripada u bilješke o implementaciji, a ne u nečije sjećanje na to što se dogodilo. Na Windowsu su ekvivalentna čitanja Get-NetAdapter, Get-NetRoute i Get-DnsClientServerAddress, koja ne trebaju povišenje prava ali pokazuju iste ostatke.