Isang linya sa dokumento ng mga pangangailangan — “ang app na ito ay maaaring gumamit ng VPN, at wala nang iba” — tahimik na humihingi ng dalawang mekanismo na hindi ibinibigay ng iisang switch. Kailangan ng trapiko ng landas sa nilalayong tunnel, at ang trapikong dadaan nang direkta ay dapat tanggihan. Karaniwan ang mga tool na mahusay sa isa at wala talaga sa isa pa, kaya ang paghahambing na nagtatanong lamang kung may makakapigil ay may kumpiyansang sumasagot sa kalahati ng tanong. Isulat muna ang hangganan, pagkatapos piliin ang mga bahaging sumasaklaw sa dalawang hati nito.

Dalawang pangangailangang nakatago sa isang pangungusap

Ang paggabay ay ang bahaging naglalagay ng koneksyon sa tunnel o sa proxy. Ang pagtanggi ay ang bahaging pumipigil sa parehong koneksyon na lumabas sa anumang ibang ruta. Iba't ibang bahagi ang nagpapatupad sa kanila, nabibigo sila sa iba't ibang paraan, at ang isang produkto ay maaaring mahusay sa isa nang walang sinasabi tungkol sa isa pa:

ApproachSteers trafficRefuses direct egressKnows the app identity
Per-app VPN profileYes, for the apps it namesOnly if a filter or firewall also blocksYes, within its own rules
Application proxy settingPartly, for requests that honour itNoNo
Content filterNoYesYes, if the filter is written that way
Local PF rulesetNoYes, by address and portNot reliably

Basahin ang talahanayan bilang checklist at hindi bilang ranggo. Walang hilera ang pumupuno sa dalawang gitnang hanay, at ang mga hilerang sumasaklaw sa kanila ay dalawang bahaging nagtutulungan: isa ang may-ari ng landas, ang isa ay may-ari ng pagtanggi. Mahalaga ang hanay ng pagkakakilanlan sa ibang dahilan, dahil ang patakarang hindi makapangalan sa app ay hindi makapagpapatupad ng patakaran tungkol sa app na iyon. Anuman ang i-deploy mo, kailangan nitong sagutin ang tatlo, kung hindi, ang hangganan sa dokumento ng pangangailangan ay hindi ang hangganan sa makina.

Ang paggabay lamang ay nag-iiwan ng labasan

Ang setting ng proxy ng aplikasyon ang pinakamalinaw na halimbawa ng paggabay na walang pagtanggi. Maaari nitong gabayan ang mga kahilingan mula sa app na gumagalang sa proxy ng sistema, at wala nang iba pang sinasaklaw: ang isang helper na proseso, updater, serbisyong background o ibang protocol ay maaaring dumaan sa sariling landas nang hindi kailanman binabasa ang setting na iyon. Kaya ang pagpili ng SOCKS endpoint sa isang panel ay hindi lumilikha ng patakarang pagbabawal sa direktang paglabas para sa aplikasyon. Kung tungkol sa buong app ang pangangailangan, itanong kung aling mga bahagi ang tunay na kinikilala ng patakaran.

Ang profile ng VPN sa bawat app ay naggagabay nang mas mabuti kaysa proxy, dahil ang platform ang nagpapasya kung aling mga app ang pumapasok sa tunnel sa halip na bawat app ang magpasya para sa sarili nito. Gayunman wala itong tinatanggihan: nagbibigay ng landas ang profile, at ang trapikong hindi umaayon dito ay dumadaan sa karaniwang ruta. Ang puwang na iyon mismo ang lugar kung saan nakakamit ng ikalawang bahagi ang puwesto nito, at iyon ang dahilan kung bakit ang mga produktong mukhang isang switch ay kadalasang dalawa.

Ang pagtanggi lamang ay sumisira sa app

Ang dokumentasyon ng Apple tungkol sa mga filter ng nilalaman ay naglalarawan ng hatol na payagan-o-harangan sa trapiko habang dumadaan ito sa stack ng network. Ang hatol na iyon ay hindi tunnel at hindi koneksyon ng proxy, dahil nagpapasya ito kung may maaaring magpatuloy, hindi kung saan ito pupunta. Ang filter lamang ay nagpapatupad ng pagtanggi nang perpekto at iniiwan ang aplikasyon na hindi magamit, may malinis na log at walang paliwanag. Ang hatol ng filter ay makakapigil ng koneksyon ngunit hindi kailanman nagbibigay ng tunnel, kaya ang pagsasama nito sa paggabay ay ang desisyon sa disenyo at hindi opsyonal na dagdag.

Ang set ng mga patakaran ng PF na pinamamahalaan sa lokalidad ay nakatayo sa kabilang dulo ng spektrum na iyon. Ito ay lehitimong desisyon sa suporta sa isang makinang pag-aari ng isang administrador, at hindi ito awtomatikong pundasyon ng isang produktong maaaring ipamahagi, dahil ang may-ari ng set ng mga patakaran ay may-ari din ng mga interaksyon nito sa ibang gumagamit ng firewall, ng landas ng pag-upgrade at ng pagbawi kapag mali ang isang patakaran. Ang pagdaragdag ng PF sa isang produkto ay hindi nag-aalis ng tanong na iyon ng pagmamay-ari; tinutukoy nito iyon.

Ang deployment ang nagpapasya kung mananatili pa ang patakaran bukas

Ang paraan ng deployment ng Network Extension sa mga platform ng Apple ay nakasalalay sa uri ng provider, packaging at bersyon ng OS sa harap mo. Ang extension ng app sa macOS ay tumatakbo sa konteksto ng gumagamit at nagtatapos kapag nag-log out ang gumagamit na iyon, samantalang ang extension ng sistema ay may pandaigdigang konteksto na hindi nakasalalay sa session. Kung ang proteksyon ay dapat mabuhay pagkatapos ng log out, ang pagkakaibang iyon ang buong disenyo at hindi footnote. Kumpirmahin ang landas ng deployment bago mangako sa pag-uugali, dahil ang parehong code ay lumalapag nang iba depende sa uri ng extension na ipinapadala.

Ang pagkakaroon ng source ay hiwalay na usapin sa pagpapatupad. Ang pagbasa ng repository ay nagsasabi sa iyo kung paano ipinatupad ang isang bagay, hindi kung ano ang pinapayagang gawin ng naka-install na binary sa makinang ito. Nalalapat pa rin ang pagpirma, pag-install at awtorisasyon, at ang mga tagubiling itinayo sa paligid ng laos na kernel extension o ng pakana ng library injection ay naglalarawan ng ibang platform at ibang tindig sa panganib, gaano man kahusay ang mga ito noong una.

Isang kaso ng pagtanggap na nagpapangalan sa app

Pumili ng isang aksyon na ginagawa ng aplikasyon nang mag-isa, itala ang address na dapat nitong maabot at kung ang address na iyon ay IPv4 o IPv6, pagkatapos ulitin ang parehong aksyon sa aprubadong kalagayang walang tunnel. Ang ikalawang pagtakbo ay dapat magbunga ng deklaradong pagtanggi at hindi ng tahimik na direktang muling pagtatangka. Iyon ang kalahating iniiwan ng mga tao na hindi tinukoy, at ang tanging kalahating nagpapatunay na may pagtanggi talaga. Patakbuhin ito muna habang may tunnel, upang ang pagkakaiba ng dalawang resulta ay maaaring magmula lamang sa nawawalang tunnel.

Pagkatapos daanan ang mga transisyong binabanggit ng pangangailangan: pag-restart ng app, paggana ng helper na proseso, muling pagkonekta ng tunnel, pagpalit ng network ng makina, at pag-log out o reboot kung saan angkop. Ang pahina ng pampublikong IP sa browser ay hindi pagsubok sa mga socket ng ibang aplikasyon, kaya hindi nito mapapalitan ito. Kung walang sinusuportahang deployment ang sumasaklaw sa tunay na pag-uugali ng app, ang awtorisadong hiwalay na kapaligiran na may malinaw na gateway at walang alternatibong labasan ay desisyon sa pagpigil na may sariling gastos sa pamamahala, hindi kapalit ng checkbox.

Tapusin sa pamamagitan ng pagsulat ng apat na entry: anong mga bahagi ang bumubuo sa app, sino ang may-ari ng paggabay, sino ang may-ari ng pagtanggi, at ang mga kalagayang dapat pa ring umiral ang patakaran. Ang pampublikong repository ay maaaring maging isang pamantayan sa pagpili, ngunit hindi ito isa sa apat, at ang mga entry na iyon ang nagpapasya kung natutugunan ng isang partikular na tool ang pangangailangan sa network.

Kaugnay na mga artikulo