Melyik macOS-eszköz tud egyetlen alkalmazást kizárólag a VPN-en keresztül kényszeríteni?
A csak-VPN határhoz útvonal és elutasítás is kell. Hasonlítsa össze az alkalmazásonkénti profilokat, proxykat, szűrőket és a PF-et, majd tesztelje azt az egy alkalmazást, amely számít Önnek.
Egyetlen sor egy követelménydokumentumban — „ez az alkalmazás használhatja a VPN-t, és semmi mást” — csendesen két olyan mechanizmust kér, amelyet egyetlen kapcsoló sem nyújt. A forgalomnak útvonalra van szüksége a szánt szalagon át, és a forgalmat, amely közvetlenül távozna, el kell utasítani. Gyakoriak az olyan eszközök, amelyek az egyiket jól, a másikat egyáltalán nem tudják, ezért az az összehasonlítás, amely csak azt kérdezi, tud-e valami blokkolni, magabiztosan a kérdés felére válaszol. Először írja le a határt, aztán válassza ki azokat az összetevőket, amelyek mindkét felét lefedik.
Két követelmény egyetlen mondatba rejtve
Az irányítás az a rész, amely egy kapcsolatot a szalagba vagy a proxyba tesz. Az elutasítás az a rész, amely megakadályozza, hogy ugyanaz a kapcsolat bármely más útvonalon távozzon. Különböző összetevők valósítják meg őket, különböző módon hibáznak, és egy termék lehet kiváló az egyikben, miközben semmit nem mond a másikról:
| 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 |
A táblázatot ellenőrzőlistaként olvassa, nem rangsorként. Egyetlen sor sem tölti ki mindkét középső oszlopot, és az ezeket lefedő sorok két együttműködő összetevő: az egyik az útvonalat birtokolja, a másik az elutasítást. Az identitásoszlop más okból fontos, mert az a szabály, amely nem tudja megnevezni az alkalmazást, nem tud szabályt érvényesíteni arról az alkalmazásról. Bármit telepít, mindháromra válaszolnia kell, különben a követelménydokumentum határa nem a gépen lévő határ.
Az irányítás önmagában kijáratot hagy
Az alkalmazásproxy-beállítás a legvilágosabb példa az elutasítás nélküli irányításra. Képes irányítani egy olyan alkalmazás kéréseit, amely tiszteli a rendszer proxyt, és semmi mást nem fed le: egy segédfolyamat, egy frissítő, egy háttérszolgáltatás vagy egy másik protokoll a saját útvonalán haladhat anélkül, hogy valaha is olvasná ezt a beállítást. Ezért egy SOCKS végpont kiválasztása egy panelen nem hoz létre közvetlen kimenet tilalmára vonatkozó szabályt az alkalmazás számára. Ha a követelmény az alkalmazás egészéről szól, kérdezze meg, mely összetevőket azonosítja valójában a szabály.
Az alkalmazásonkénti VPN-profil jobban irányít a proxynál, mert a platform dönti el, mely alkalmazások lépnek be a szalagba ahelyett, hogy minden alkalmazás maga döntene. Mégis semmit nem utasít el: a profil útvonalat ad, és a forgalom, amely nem illeszkedik hozzá, a szokásos útvonalat veszi. Pontosan ez a rés az, ahol egy második összetevő kiérdemli a helyét, és ezért az egyetlen kapcsolóra hasonlító termékek általában ketten vannak.
Az elutasítás önmagában elrontja az alkalmazást
Az Apple dokumentációja a tartalomszűrőkről engedélyez-vagy-blokkol ítéletet ír le a forgalomról, miközben az áthalad a hálózati vermen. Ez az ítélet nem szalag és nem proxykapcsolat, mert azt dönti el, hogy valami folytatódhat-e, nem azt, hogy hova megy. Egy szűrő önmagában tökéletesen érvényesíti az elutasítást, és használhatatlanná teszi az alkalmazást, tiszta naplókkal és magyarázat nélkül. A szűrő ítélete megállíthat egy kapcsolatot, de soha nem adja a szalagot, ezért az irányítással való párosítás a tervezési döntés, és nem választható kiegészítés.
A helyileg felügyelt PF-szabálykészlet ennek a spektrumnak a másik végén áll. Ez legitim támogatási döntés egy olyan gépen, amely egy rendszergazda tulajdonában van, és nem automatikusan egy terjeszthető termék alapja, mert aki a szabálykészletet birtokolja, az birtokolja annak más tűzfalhasználókkal való kölcsönhatásait, frissítési útvonalát és helyreállítását is, amikor egy szabály hibás. A PF hozzáadása egy termékhez nem szünteti meg ezt a tulajdonkérdést; meghatározza azt.
A telepítés dönti el, hogy a szabály holnap is létezik-e
Az, hogy egy Network Extension hogyan települ az Apple platformjain, a szolgáltató típusától, a csomagolástól és az előtted lévő operációsrendszer-verziótól függ. Egy alkalmazásbővítmény macOS-en felhasználói környezetben fut, és akkor ér véget, amikor az a felhasználó kijelentkezik, míg egy rendszerbővítmény globális környezettel rendelkezik, amely nem függ a munkamenettől. Ha a védelemnek túl kell élnie egy kijelentkezést, ez a különbség a teljes tervezés, és nem lábjegyzet. Erősítse meg a telepítési útvonalat, mielőtt megígéri a viselkedést, mert ugyanaz a kód másként landol attól függően, melyik bővítménytípus kerül kiszállításra.
A forráskód elérhetősége külön kérdés az érvényesítéstől. Egy tároló olvasása megmondja, hogyan van megvalósítva valami, nem azt, hogy a telepített bináris mit tehet ezen a gépen. Az aláírás, a telepítés és a felhatalmazás továbbra is érvényes, és az elavult kernelbővítmény vagy a könyvtár-injektálási trükk köré épített utasítások más platformot és más kockázati álláspontot írnak le, bármilyen jól is működtek egykor.
Egy átvételi eset, amely megnevezi az alkalmazást
Válasszon egyetlen műveletet, amelyet az alkalmazás magától végez, jegyezze fel a címet, amelyet el kellene érnie, és hogy az a cím IPv4 vagy IPv6, majd ismételje meg ugyanazt a műveletet a jóváhagyott, szalag nélküli állapotban. A második futásnak a kinyilvánított elutasítást kell eredményeznie, nem pedig csendes közvetlen újrapróbálkozást. Ez az a fél, amelyet az emberek meghatározatlanul hagynak, és az egyetlen fél, amely bizonyítja, hogy az elutasítás egyáltalán létezik. Először a szalag elérhetősége mellett futtassa, hogy a két eredmény közötti különbség csak a hiányzó szalagból származhasson.
Aztán járja végig a követelmény által megnevezett átmeneteket: az alkalmazás újraindítása, egy segédfolyamat aktiválódása, a szalag újracsatlakozása, a gép hálózatváltása, valamint kijelentkezés vagy újraindítás, ahol ezek érvényesek. Egy böngésző nyilvános IP-oldala nem egy másik alkalmazás foglalatainak tesztje, ezért nem helyettesítheti ezt. Ahol egyetlen támogatott telepítés sem fedi le az alkalmazás valódi viselkedését, egy engedélyezett, elkülönített környezet kifejezett átjáróval és alternatív kimenet nélkül saját kezelési költséggel járó elszigetelési döntés, nem egy jelölőnégyzet helyettesítője.
Fejezze be négy tétel leírásával: milyen összetevőkből áll az alkalmazás, ki birtokolja az irányítást, ki birtokolja az elutasítást, és mely állapotokban kell a szabálynak még érvényesülnie. Egy nyilvános tároló lehet egy kiválasztási szempont, de nem tartozik a négy közé, és ezek a tételek döntik el, hogy egy adott eszköz megfelel-e a hálózati követelménynek.