Kuri „macOS“ priemonė gali priversti vieną programą eiti tik per VPN?
Tik-VPN riba reikalauja ir kelio, ir atmetimo. Palyginkite profilius pagal programą, tarpines, filtrus ir PF, tada išbandykite tą vieną programą, kuri jums svarbi.
Viena eilutė reikalavimų dokumente — „ši programa gali naudotis VPN ir niekuo kitu“ — tyliai prašo dviejų mechanizmų, kurių nesuteikia joks vienas jungiklis. Srautui reikia kelio per numatytą tunelį, o srautas, kuris išeitų tiesiogiai, turi būti atmetamas. Priemonės, kurios vieną iš šių dalykų daro gerai, o kito visai ne, yra įprastos, todėl palyginimas, kuris klausia tik ar kažkas gali blokuoti, užtikrintai atsako į pusę klausimo. Pirmiausia užrašykite ribą, tada pasirinkite komponentus, kurie apima abi jos puses.
Du reikalavimai, paslėpti viename sakinyje
Nukreipimas yra dalis, kuri įdeda ryšį į tunelį arba tarpinę. Atmetimas yra dalis, kuri neleidžia tam pačiam ryšiui išeiti jokiu kitu maršrutu. Juos įgyvendina skirtingi komponentai, jie nepavyksta skirtingai, o produktas gali būti puikus viename ir nieko nesakyti apie kitą:
| Approach | Steers traffic | Refuses direct egress | Knows the app identity |
|---|---|---|---|
| Per-app VPN profile | Yes, for the apps it names | Only if a filter or firewall also blocks | Yes, within its own rules |
| Application proxy setting | Partly, for requests that honour it | No | No |
| Content filter | No | Yes | Yes, if the filter is written that way |
| Local PF ruleset | No | Yes, by address and port | Not reliably |
Skaitykite lentelę kaip kontrolinį sąrašą, o ne kaip reitingą. Nė viena eilutė neužpildo abiejų vidurinių stulpelių, o jas apimančios eilutės yra du bendradarbiaujantys komponentai: vienas valdo kelią, kitas — atmetimą. Tapatybės stulpelis svarbus dėl kitos priežasties, nes taisyklė, kuri negali įvardyti programos, negali vykdyti taisyklės apie tą programą. Kad ir ką diegtumėte, jis turi atsakyti į visus tris, kitaip reikalavimų dokumento riba nėra riba mašinoje.
Vien nukreipimas palieka išėjimą
Programos tarpinės nustatymas yra aiškiausias nukreipimo be atmetimo pavyzdys. Jis gali nukreipti programos, kuri gerbia sistemos tarpinę, užklausas ir nieko daugiau neapima: pagalbinis procesas, atnaujinimo programa, foninė tarnyba ar kitas protokolas gali eiti savo keliu net niekada neperskaitę šio nustatymo. Todėl SOCKS galinio taško pasirinkimas viename skydelyje nesukuria draudimo išeiti tiesiogiai politikos programai. Jei reikalavimas yra apie visą programą, paklauskite, kuriuos komponentus taisyklė iš tikrųjų identifikuoja.
VPN profilis pagal programą nukreipia geriau nei tarpinė, nes platforma nusprendžia, kurios programos patenka į tunelį o ne kiekviena programa sprendžia pati. Vis dėlto jis nieko neatmeta: profilis suteikia kelią, o srautas, kuris jam netinka, eina įprastu maršrutu. Būtent ta spraga yra vieta, kur antras komponentas užsitarnauja savo vietą, ir todėl produktai, kurie atrodo kaip vienas jungiklis, paprastai yra du.
Vien atmetimas sugadina programą
Apple dokumentacija apie turinio filtrus aprašo leisti-ar-blokuoti sprendimą srautui, kai jis eina per tinklo krūvą. Tas sprendimas nėra tunelis ir nėra tarpinės ryšys, nes jis nusprendžia, ar kažkas gali tęstis, o ne kur jis eina. Filtras vienas pats tobulai įgyvendina atmetimą ir palieka programą netinkamą naudoti, su švariais žurnalais ir be jokio paaiškinimo. Filtro sprendimas gali sustabdyti ryšį, bet niekada nesuteikia tunelio, todėl jo poravimas su nukreipimu yra dizaino sprendimas, o ne pasirenkamas priedas.
Vietiškai administruojamas PF taisyklių rinkinys stovi kitame to spektro gale. Tai teisėtas palaikymo sprendimas mašinoje, kurią valdo administratorius, ir jis automatiškai nėra platinamo produkto pagrindas, nes tas, kas valdo taisyklių rinkinį, valdo ir jo sąveikas su kitais ugniasienės naudotojais, jo atnaujinimo kelią ir atkūrimą, kai taisyklė neteisinga. PF pridėjimas prie produkto nepašalina to nuosavybės klausimo; jis jį apibrėžia.
Diegimas nusprendžia, ar taisyklė egzistuos ir rytoj
Kaip Network Extension diegiamas Apple platformose, priklauso nuo teikėjo tipo, pakavimo ir priešais jus esančios OS versijos. Programos plėtinys macOS veikia naudotojo kontekste ir baigiasi, kai tas naudotojas atsijungia, o sistemos plėtinys turi globalų kontekstą, kuris nepriklauso nuo sesijos. Jei apsauga turi išlikti po atsijungimo, tas skirtumas yra visas dizainas, o ne išnaša. Patvirtinkite diegimo kelią prieš žadėdami elgseną, nes tas pats kodas nusileidžia skirtingai priklausomai nuo to, koks plėtinio tipas siunčiamas.
Šaltinio prieinamumas yra atskiras klausimas nuo vykdymo. Saugyklos skaitymas pasako, kaip kažkas įgyvendinta, o ne ką įdiegtas dvejetainis failas gali daryti šioje mašinoje. Pasirašymas, diegimas ir autorizacija vis dar galioja, o instrukcijos, sukurtos apie pasenusį branduolio plėtinį ar bibliotekos įterpimo triuką, aprašo kitą platformą ir kitą rizikos poziciją, kad ir kaip gerai jos kadaise veikė.
Priėmimo atvejis, kuris įvardija programą
Pasirinkite vieną veiksmą, kurį programa atlieka pati, užrašykite adresą, kurį ji turėtų pasiekti, ir ar tas adresas yra IPv4, ar IPv6, tada pakartokite tą patį veiksmą patvirtintoje būsenoje be tunelio. Antras paleidimas turi duoti paskelbtą atmetimą, o ne tylų tiesioginį pakartotinį bandymą. Tai ta pusė, kurią žmonės palieka nenurodytą, ir vienintelė pusė, įrodanti, kad atmetimas apskritai egzistuoja. Paleiskite jį pirmiausia esant tuneliui, kad skirtumas tarp dviejų rezultatų galėtų kilti tik iš trūkstamo tunelio.
Tada pereikite per perėjimus, kuriuos įvardija reikalavimas: programos paleidimas iš naujo, pagalbinio proceso suveikimas, tunelio prisijungimas iš naujo, mašinos tinklo keitimas ir atsijungimas ar perkrovimas, kur jie taikomi. Naršyklės viešo IP puslapis nėra kitos programos lizdų testas, todėl negali jo pakeisti. Kai joks palaikomas diegimas neapima tikrosios programos elgsenos, įgaliota izoliuota aplinka su aiškiu tinklų sietuvu ir be alternatyvios išėjimo yra sulaikymo sprendimas su savo valdymo sąnaudomis, o ne žymės langelio pakaitalas.
Užbaikite užrašydami keturis punktus: iš kokių komponentų susideda programa, kas valdo nukreipimą, kas valdo atmetimą ir būsenos, kuriose taisyklė dar turi galioti. Vieša saugykla gali būti vienas atrankos kriterijus, bet ji nėra vienas iš keturių, ir būtent tie punktai nusprendžia, ar konkreti priemonė atitinka tinklo reikalavimą.