Üks rida nõuete dokumendis — „see rakendus tohib kasutada VPN-i ja mitte midagi muud“ — palub vaikselt kahte mehhanismi, mida üksi lüliti ei paku. Liiklus vajab teed kavandatud tunnelist, ja liiklus, mis muidu läheks otse välja, tuleb tagasi lükata. Tööriistad, mis teevad üht neist hästi ja teist üldse mitte, on tavalised, seepärast vastab võrdlus, mis küsib ainult, kas miski suudab blokeerida, enesekindlalt poolele küsimusele. Kirjutage esmalt piir üles ja valige siis komponendid, mis katavad selle mõlemad pooled.

Kaks nõuet, mis on peidetud ühte lausesse

Suunamine on osa, mis paneb ühenduse tunnelisse või puhverserverisse. Keeldumine on osa, mis takistab samal ühendusel lahkuda ükskõik millist muud teed pidi. Neid rakendavad erinevad komponendid, need nurjuvad erineval moel ja toode võib olla ühes suurepärane, öeldes teise kohta mitte midagi:

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

Lugege tabelit kontrollnimekirjana, mitte edetabelina. Ükski rida ei täida mõlemat keskmist veergu, ja read, mis neid katavad, on kaks koostööd tegevat komponenti: üks omab teed, teine keeldumist. Identiteediveerg on oluline teisel põhjusel, sest reegel, mis ei suuda rakendust nimetada, ei suuda täita reeglit selle rakenduse kohta. Mida iganes te juurutate, see peab vastama kõigile kolmele, muidu ei ole nõuete dokumendi piir masina piir.

Üksi suunamine jätab väljapääsu

Rakenduse puhverserveri säte on kõige selgem näide suunamisest ilma keeldumiseta. See suudab suunata sellise rakenduse päringuid, mis järgib süsteemi puhverserverit, ega kata midagi muud: abiprotsess, uuendaja, taustateenus või muu protokoll võivad liikuda oma teed, lugemata seda eelistust kunagi. Seega ei loo SOCKS-i lõpp-punkti valimine ühes paanil rakendusele otseväljundi keelu poliitikat. Kui nõue käib rakenduse kui terviku kohta, küsige, milliseid komponente reegel tegelikult tuvastab.

Rakendusepõhine VPN-profiil suunab paremini kui puhverserver, sest platvorm otsustab, millised rakendused tunnelisse lähevad, selle asemel et iga rakendus otsustaks ise. Ometi ei keeldu see millestki: profiil annab tee ja liiklus, mis sellega ei klapi, läheb tavalisel marsruudil. Just see tühik on koht, kus teine komponent teenib oma koha välja, ja seepärast on tooted, mis näevad välja nagu üks lüliti, tavaliselt kaks.

Üksi keeldumine lõhub rakenduse

Apple’i dokumentatsioon sisufiltrite kohta kirjeldab liikluse kohta luba-või-blokeeri otsust, kui see läbib võrgupinu. See otsus ei ole tunnel ega puhverserveri ühendus, sest see otsustab, kas miski tohib jätkuda, mitte kuhu see läheb. Filter üksi rakendab keeldumist laitmatult ja jätab rakenduse kasutuskõlbmatuks, puhtate logidega ja ilma selgituseta. Filtri otsus suudab ühenduse peatada, kuid ei anna kunagi tunnelit, seepärast on selle sidumine suunamisega disainiotsus, mitte valikuline lisa.

Kohapeal hallatav PF-reeglistik asub selle spektri teises otsas. See on seaduslik toeotsus masinas, mille omanik on administraator, ja see ei ole automaatselt levitatava toote alus, sest see, kes omab reeglistikku, omab ka selle vastastikmõju teiste tulemüüri kasutajatega, selle uuendusteed ja taastamist, kui reegel on vale. PF-i lisamine tootele ei kõrvalda seda omandi küsimust; see määratleb selle.

Juurutamine otsustab, kas reegel on homme veel olemas

Kuidas Network Extension Apple’i platvormidel juurutatakse, sõltub teenusepakkuja tüübist, pakendist ja teie ees olevast OS-i versioonist. Rakenduse laiendus macOS-is töötab kasutaja kontekstis ja lõpeb, kui see kasutaja välja logib, samas kui süsteemilaiendil on üldine kontekst, mis ei sõltu seansist. Kui kaitse peab väljalogimise üle elama, on see erinevus kogu disain, mitte joonealune märkus. Kinnitage juurutustee enne käitumise lubamist, sest sama kood maandub erinevalt sõltuvalt sellest, millist laienditüüpi saadetakse.

Lähtekoodi kättesaadavus on jõustamisest eraldi küsimus. Hoidla lugemine ütleb teile, kuidas miski on rakendatud, mitte mida paigaldatud binaarfail sellel masinal tohib teha. Allkirjastamine, paigaldamine ja autoriseerimine kehtivad endiselt, ja aegunud kerneli laiendi või teegi süstimise nipi ümber ehitatud juhised kirjeldavad teist platvormi ja teist riskihoiakut, ükskõik kui hästi need kunagi töötasid.

Vastuvõtujuhtum, mis nimetab rakenduse

Valige üks toiming, mille rakendus ise teeb, märkige aadress, mida see peaks saavutama, ja kas see aadress on IPv4 või IPv6, seejärel korrake sama toimingut kinnitatud tunnelita olekus. Teine käivitus peab andma deklareeritud keeldumise, mitte vaikse otsese katse. See on pool, mille inimesed jätavad täpsustamata, ja ainus pool, mis tõestab, et keeldumine üldse olemas on. Käivitage see esmalt tunneli olemasolul, et kahe tulemuse erinevus saaks tulla ainult puuduvast tunnelist.

Seejärel käige läbi üleminekud, mida nõue nimetab: rakenduse taaskäivitamine, abiprotsessi käivitumine, tunneli taasühendamine, masina võrguvahetus ning väljalogimine või taaskäivitamine, kus need kehtivad. Brauseri avaliku IP leht ei ole teise rakenduse soklite test, seega ei saa see seda asendada. Kui ükski toetatud juurutus ei kata rakenduse tegelikku käitumist, on volitatud isoleeritud keskkond selge lüüsiga ja alternatiivse väljundita piiramisotsus, millel on oma halduskulu, mitte märkeruudu asendus.

Lõpetage, kirjutades üles neli kirjet: millistest komponentidest rakendus koosneb, kes omab suunamist, kes omab keeldumist ja millistes olekutes peab reegel veel kehtima. Avalik hoidla võib olla üks valikukriteerium, kuid see ei ole üks neist neljast, ja just need kirjed otsustavad, kas antud tööriist vastab võrgunõudele.

Seotud artiklid