Преносиви VPN клијент без администраторских права: шта се још увек квари
Преносиви VPN клијент може да прескочи инсталатер и ипак затражи тунелски уређај, руту и упис у резолвер. Покрените ове провере пре него што му поверујете.
Преносиво описује инсталатер, не кернел. Клијент може да дође као једна извршна датотека на USB-у и ипак затражи тунелски уређај, унос у табели рута и упис у резолвер пре него што се први пакет помери. Који од та три циљна машина дозволи да дотакнете одлучује да ли та градња тамо уопште ради. Провере испод одговарају на питање редом којим ће клијент на њих наићи.
Преносивост покрива три различита обећања, а само једно је бесплатно
Без инсталатера значи да добављач није регистровао услугу, испоручио деинсталатер ни додао ставку у менију. Без администратора значи да обичан налог може да покрене клијент и доврши везу. Без промене на хосту значи да машина изгледа идентично након што изађете. Странице за преузимање које кажу преносиво обично обећавају само прво од тога, а друга два су место где примене пропадају. Градња може бити преносива и у ужем смислу: ради са медија само за читање без икаквих уписа тачкастих датотека, што још увек ништа не говори о мрежном стек-у.
Скупа обећања су друго и треће. Једна извршна датотека којој треба адаптер, рута или упис у резолвер тражи од оперативног система овлашћење које ознака преносиво никада није покрила.
Пронађите привилегованог помоћника који ће клијент позвати
Готово ниједан VPN клијент сам не помера пакете. На Windows-у путања података иде кроз WFP филтере и Base Filtering Engine, на macOS-у кроз провајдера NetworkExtension који корисник одобри у Системским поставкама, а на Linux-у кроз tun уређај плус стек за рутирање. Бинарна датотека коју сте копирали је контролна површина за те компоненте, не њихова замена. Питајте коју компоненту клијент очекује, затим потврдите да је инсталирана, да ради и да је ваш налог може користити.
Linux је најлакше место да то докажете јер је провера један системски позив. Отварање /dev/net/tun и тражење уређаја од кернела захтева CAP_NET_ADMIN, а документација кернела за TUN/TAP наводи и правило власништва и способност. Покрените проверу као налог који ће покренути клијент, не као root.
ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest
Грешка дозволе на средњој линији је одговор који сте тражили: овај налог не може да створи тунелски интерфејс, па сваки клијент у корисничком простору коме је он потребан пада при повезивању, а не при преузимању. Последња линија уклања тест уређај и не исписује ништа када успе. Ако обе линије успеју, хост није трајно променио ништа.
Тестирајте промене руте и резолвера пре прве везе
Подељени тунел претвара везу у одлуку о рутирању, док је пуни тунел претвара у замену подразумеване руте. Обе су упису у мрежни стек хоста, и обе падају за налог без привилегија чак и када сам клијент стартује чисто. Резолвер је трећи упис, а на systemd хостовима обично је онај који се квари последњи. Тај редослед је важан када одлучујете где да потрошите инсталацију са повишеним правима.
Провера руте захтева одредиште које вам је заиста важно, зато замените доњи заменски текст подмрежом из сопственог профила. Назив уређаја мора да постоји да би се рута могла причврстити за било шта.
ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal
Ако прва линија врати RTNETLINK answers: Operation not permitted, налог не може да инсталира приватну руту коју профил захтева. Друга линија доказује исто право обрнуто, што је важно јер клијент који може да додаје руте али не да их уклања оставља покварену табелу за собом. Затим упит резолверу показује да ли се приватна имена решавају кроз тунел или цуре ка оном резолверу коме хост већ верује.
Покрените све три док тест уређај још постоји, а затим га избришите. Рута која показује на уређај кога нема најчешћи је разлог зашто лаптоп изгуби повезаност након неуспешне везе.
Одлучите шта мора да преживи сесију
Брисање фасцикле није план чишћења. Адаптери, руте, поставке резолвера, поуздани сертификати и сачувани акредитиви могу сваки да надживе процес, а услуга при подизању може неке од њих да врати без питања. Запишите шта је клијенту дозвољено да остави за собом пре него што га покренете, а не након првог неуспешног прекида везе.
Практично правило је да направите снимак три површине које ћете мењати и да их после упоредите. Пре прве везе забележите интерфејсе, главну табелу рутирања и стање резолвера, а затим поновите иста три читања када клијент изађе.
ip -brief addr show
ip route show table main
resolvectl status
Све што је присутно у другом снимку, а одсутно у првом, треба власника. Или клијент то уклони при изласку, или то уклоните ви истим командама које су га створиле, и то уклањање припада белешкама о примени, а не нечијем сећању на то шта се догодило. На Windows-у су еквивалентна читања Get-NetAdapter, Get-NetRoute и Get-DnsClientServerAddress, која не траже повишење права али показују исте остатке.