Kiu macOS-ilo povas devigi unu aplikaĵon iri nur tra la VPN?
Limo «nur VPN» bezonas kaj vojon kaj rifuzon. Komparu profilojn por unuopa aplikaĵo, prokurilojn, filtrilojn kaj PF, poste testu la unu aplikaĵon, kiu gravas al vi.
Unu linio en postulara dokumento, «ĉi tiu aplikaĵo rajtas uzi la VPN-on kaj nenion alian», kviete postulas du mekanismojn, kiujn neniu unuopa ŝaltilo provizas. Trafiko bezonas vojon tra la celita tunelo, kaj trafiko, kiu alie elirus rekte, devas esti rifuzata. Iloj, kiuj faras unu el tiuj aferoj bone kaj la alian tute ne, oftas, tial komparo, kiu demandas nur ĉu io povas bloki, memfide respondas duonon de la demando. Unue skribu la limon, poste elektu la komponentojn, kiuj kovras ambaŭ ĝiajn duonojn.
Du postuloj kaŝitaj en unu frazo
Gvidado estas la parto, kiu metas konekton en la tunelon aŭ la prokurilon. Rifuzo estas la parto, kiu malhelpas la saman konekton eliri laŭ iu ajn alia vojo. Malsamaj komponentoj realigas ilin, ili malsukcesas laŭ malsamaj manieroj, kaj produkto povas esti bonega en unu kaj diri nenion pri la alia:
| 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 |
Legu la tabelon kiel kontrolan liston, ne kiel rangotabelon. Neniu vico plenigas ambaŭ mezajn kolumnojn, kaj la vicoj, kiuj kovras ilin, estas du kunlaborantaj komponentoj: unu posedas la vojon, la alia la rifuzon. La identeca kolumno gravas pro alia kialo, ĉar regulo, kiu ne povas nomi la aplikaĵon, ne povas plenumi regulon pri tiu aplikaĵo. Kion ajn vi deplojos, ĝi devas respondi al ĉiuj tri, alie la limo en la postulara dokumento ne estas la limo sur la maŝino.
Gvidado sola lasas eliron
La agordo de aplikaĵa prokurilo estas la plej klara ekzemplo de gvidado sen rifuzo. Ĝi povas gvidi petojn de aplikaĵo, kiu respektas la sisteman prokurilon, kaj ĝi kovras nenion alian: helpa procezo, ĝisdatigilo, fona servo aŭ malsama protokolo povas vojaĝi laŭ sia propra vojo sen iam legi tiun preferon. Do elekti SOCKS-finpunkton en unu panelo ne kreas politikon de nenia rekta eliro por la aplikaĵo. Se la postulo temas pri la aplikaĵo kiel tuto, demandu, kiujn komponentojn la regulo vere identigas.
VPN-profilo por unuopa aplikaĵo gvidas pli bone ol prokurilo, ĉar la platformo decidas, kiuj aplikaĵoj eniras la tunelon anstataŭ ke ĉiu aplikaĵo decidas por si. Tamen ĝi rifuzas nenion: la profilo provizas vojon, kaj trafiko, kiu ne kongruas kun ĝi, prenas la ordinaran vojon. Ĝuste tiu breĉo estas la loko, kie dua komponento meritas sian lokon, kaj tial produktoj, kiuj aspektas kiel unu ŝaltilo, kutime estas du.
Rifuzo sola rompas la aplikaĵon
La dokumentaro de Apple pri enhavfiltriloj priskribas verdikton permesi-aŭ-bloki pri trafiko, dum ĝi pasas tra la reta stako. Tiu verdikto ne estas tunelo nek prokurila konekto, ĉar ĝi decidas ĉu io rajtas daŭri, ne kien ĝi iras. Filtrilo sola perfekte plenumas la rifuzon kaj lasas la aplikaĵon neuzebla, kun puraj protokoloj kaj sen klarigo. Verdikto de filtrilo povas haltigi konekton sed neniam provizas la tunelon, do parigi ĝin kun gvidado estas la dezajna decido, ne kroma opcio.
Loke administrata PF-regula aro staras ĉe la alia fino de tiu spektro. Ĝi estas legitima subtena decido sur maŝino, kiun posedas administranto, kaj ĝi ne aŭtomate estas la fundamento de disdonebla produkto, ĉar tiu, kiu posedas la regulan aron, posedas ankaŭ ĝiajn interagojn kun aliaj fajroŝirmilaj uzantoj, ĝian ĝisdatigan vojon kaj ĝian rekuperon, kiam regulo estas malĝusta. Aldoni PF al produkto ne forigas tiun posedan demandon; ĝi difinas ĝin.
La deplojo decidas, ĉu la regulo ankoraŭ ekzistos morgaŭ
Kiel Network Extension estas deplojata en la platformoj de Apple dependas de la provizanttipo, la pakaĵo kaj la OS-versio antaŭ vi. Aplikaĵa etendaĵo en macOS funkcias en uzanta kunteksto kaj finiĝas, kiam tiu uzanto elsalutas, dum sistema etendaĵo havas tutmondan kuntekston, kiu ne dependas de la sesio. Se protekto devas postvivi elsaluton, tiu diferenco estas la tuta dezajno, ne piednoto. Konfirmu la deplojan vojon antaŭ ol promesi la konduton, ĉar la sama kodo surteriĝas malsame depende de tio, kiu etendaĵa tipo estas sendita.
Disponebleco de fontkodo estas aparta afero de plenumado. Legi deponejon diras al vi, kiel io estas realigita, ne kion la instalita binara dosiero rajtas fari sur ĉi tiu maŝino. Subskribo, instalado kaj rajtigo ankoraŭ validas, kaj instrukcioj konstruitaj ĉirkaŭ eksmoda kerno-etendaĵo aŭ bibliotek-injekta lertaĵo priskribas alian platformon kaj alian riskan sintenon, kiel ajn bone ili iam funkciis.
Akcepta kazo, kiu nomas la aplikaĵon
Elektu unu agon, kiun la aplikaĵo faras per si mem, notu la adreson, kiun ĝi devus atingi kaj ĉu tiu adreso estas IPv4 aŭ IPv6, poste ripetu la saman agon en la aprobita sen-tunela stato. La dua rulado devas produkti la deklaritan rifuzon, ne silentan rektan reprovon. Tio estas la duono, kiun homoj lasas ne precizigita, kaj la sola duono, kiu pruvas, ke rifuzo entute ekzistas. Rulu ĝin unue kun la tunelo disponebla, por ke diferenco inter la du rezultoj povu veni nur de la mankanta tunelo.
Poste trairu la transirojn, kiujn la postulo nomas: restartigi la aplikaĵon, helpa procezo ekfunkcias, la tunelo rekonektiĝas, la maŝino ŝanĝas retojn, kaj elsaluto aŭ restartigo, kie ili aplikiĝas. Publika-IP-paĝo de retumilo ne estas testo de la ingoj de alia aplikaĵo, do ĝi ne povas anstataŭi ĉi tiun. Kie neniu subtenata deplojo kovras la realan konduton de la aplikaĵo, rajtigita izolita medio kun eksplicita enirejo kaj sen alternativa eliro estas enferma decido kun propraj administraj kostoj, ne anstataŭaĵo por markobutono.
Finu skribante kvar erojn: el kiuj komponentoj konsistas la aplikaĵo, kiu posedas gvidadon, kiu posedas rifuzon, kaj la statoj, en kiuj la regulo ankoraŭ devas validi. Publika deponejo povas esti unu elektokriterio, sed ĝi ne estas unu el la kvar, kaj tiuj eroj decidas, ĉu donita ilo plenumas la retan postulon.