Tələblər sənədindəki bir sətir — “bu tətbiq VPN-dən istifadə edə bilər, başqa heç nə” — heç bir açarın təqdim etmədiyi iki mexanizm istəyir. Trafikin nəzərdə tutulan tuneldən keçən yola ehtiyacı var, birbaşa çıxacaq trafik isə rədd edilməlidir. Bu işlərdən birini yaxşı yerinə yetirib digərini heç etməyən alətlər çoxdur, buna görə də yalnız “bir şey bloklaya bilərmi?” soruşan müqayisə sualın yarısını inamla cavablandırır. Əvvəlcə sərhədi yazın, sonra onun hər iki yarısını əhatə edən komponentləri seçin.

Bir cümlənin içində gizlənən iki tələb

Yönləndirmə bağlantını tunelə və ya proksiyə qoyan hissədir. İmtina isə həmin bağlantının başqa hər hansı yolla çıxmasının qarşısını alan hissədir. Onları müxtəlif komponentlər həyata keçirir, onlar müxtəlif şəkildə sıradan çıxır və bir məhsul birində əla ola bilər, digəri barədə isə heç nə deməz:

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

Cədvəli sıralama deyil, yoxlama siyahısı kimi oxuyun. Heç bir sətir iki orta sütunu doldurmur, onları əhatə edən sətirlər isə əməkdaşlıq edən iki komponentdir: biri yola, digəri imtinaya sahibdir. Şəxsiyyət sütunu başqa səbəbdən vacibdir, çünki tətbiqi adlandıra bilməyən qayda həmin tətbiq barədə qaydanı tətbiq edə bilməz. Nə yerləşdirsəniz də, hər üçünə cavab verməlidir, əks halda tələblər sənədindəki sərhəd maşındakı sərhəd deyil.

Tək başına yönləndirmə çıxış yolu qoyur

Tətbiq proksi ayarı imtinasız yönləndirmənin ən aydın nümunəsidir. O, sistem proksisini qəbul edən tətbiqdən gələn sorğuları yönləndirə bilər və başqa heç nəyi əhatə etmir: köməkçi proses, yeniləyici, fon xidməti və ya fərqli protokol həmin seçimi heç oxumadan öz yolu ilə gedə bilər. Buna görə bir paneldə SOCKS son nöqtəsini seçmək tətbiq üçün birbaşa çıxışın olmaması siyasəti yaratmır. Tələb bütövlükdə tətbiqə aiddirsə, qaydanın əslində hansı komponentləri tanıdığını soruşun.

Tətbiq üzrə VPN profili proksidən yaxşı yönləndirir, çünki platforma hansı tətbiqlərin tunelə girdiyini qərar verir hər tətbiqin özü qərar verməsi əvəzinə. Yenə də heç nədən imtina etmir: profil yol verir, ona uyğun gəlməyən trafik isə adi marşrutu tutur. Məhz bu boşluq ikinci komponentin yerini qazandığı yerdir və buna görə bir açar kimi görünən məhsullar adətən ikidir.

Tək başına imtina tətbiqi sıradan çıxarır

Apple-ın məzmun filtri sənədləşməsi şəbəkə yığınından keçərkən trafik barədə icazə-ya-blok qərarını təsvir edir. Bu qərar nə tunel, nə də proksi bağlantısıdır, çünki nəyinsə davam edib-etməyəcəyinə qərar verir, hara getdiyinə yox. Filtr tək başına imtinanı mükəmməl tətbiq edir və tətbiqi yararsız qoyur, təmiz jurnallarla və heç bir izahat olmadan. Filtr qərarı bağlantını dayandıra bilər, lakin heç vaxt tunel vermir, buna görə onu yönləndirmə ilə cütləşdirmək seçim deyil, dizayn qərarıdır.

Yerli idarə olunan PF qaydalar dəsti bu spektrin uzaq ucunda dayanır. Bu, administratorun sahib olduğu maşında qanuni bir dəstək qərarıdır və avtomatik olaraq paylanıla bilən məhsulun təməli deyil, çünki qaydalar dəstinə sahib olan şəxs onun digər firewall istifadəçiləri ilə qarşılıqlı təsirlərinə, yenilənmə yoluna və qayda səhv olduqda bərpasına da sahibdir. PF-i məhsula əlavə etmək bu sahiblik sualını aradan qaldırmır; onu müəyyən edir.

Yerləşdirmə qaydanın sabah da qalıb-qalmayacağını həll edir

Network Extension-ın Apple platformalarında necə yerləşdirilməsi provayder növündən, paketləmədən və qarşınızdakı OS versiyasından asılıdır. macOS-də tətbiq uzantısı istifadəçi kontekstində işləyir və həmin istifadəçi çıxış etdikdə bitir, sistem uzantısı isə sessiyadan asılı olmayan qlobal kontekstə malikdir. Əgər qoruma çıxışdan sonra da davam etməlidirsə, bu fərq haşiyə deyil, bütün dizayndır. Davranışa zəmanət verməzdən əvvəl yerləşdirmə yolunu təsdiqləyin, çünki eyni kod hansı uzantı növünün göndərildiyindən asılı olaraq fərqli düşür.

Mənbənin mövcudluğu tətbiqdən ayrı bir məsələdir. Repozitoriyanı oxumaq bir şeyin necə həyata keçirildiyini deyir, quraşdırılmış ikili faylın bu maşında nə etməyə icazəsi olduğunu yox. İmzalama, quraşdırma və avtorizasiya hələ də qüvvədədir və köhnəlmiş kernel uzantısı və ya kitabxana inyeksiyası hiyləsi ətrafında qurulmuş təlimatlar fərqli platforma və fərqli risk mövqeyi təsvir edir, nə qədər yaxşı işləmiş olsalar da.

Tətbiqi adlandıran qəbul halı

Tətbiqin öz başına etdiyi bir hərəkəti seçin, çatmalı olduğu ünvanı və bu ünvanın IPv4 yoxsa IPv6 olduğunu qeyd edin, sonra həmin hərəkəti təsdiqlənmiş tunelsiz vəziyyətdə təkrarlayın. İkinci işə salma elan edilmiş imtinanı verməlidir, səssiz birbaşa təkrar cəhdi yox. Bu, insanların təyinatsız buraxdığı yarıdır və imtinanın ümumiyyətlə mövcud olduğunu sübut edən yeganə yarıdır. Əvvəlcə tunel mövcud ikən işə salın ki, iki nəticə arasındakı fərq yalnız itkin tuneldən gələ bilsin.

Sonra tələbin adlandırdığı keçidləri gəzin: tətbiqin yenidən başlaması, köməkçinin işə düşməsi, tunelin yenidən qoşulması, maşının şəbəkələri dəyişməsi və tətbiq olunduğu yerlərdə çıxış və ya yenidən yükləmə. Brauzerin ümumi IP səhifəsi başqa bir tətbiqin soketləri üçün sınaq deyil, buna görə bunun yerini tuta bilməz. Dəstəklənən heç bir yerləşdirmə tətbiqin real davranışını əhatə etmirsə, açıq şlüz və alternativ çıxış olmayan səlahiyyətli təcrid olunmuş mühit öz idarəetmə xərci olan bir saxlama qərarıdır, seçim qutusunun əvəzi deyil.

Dörd bəndi yazmaqla bitirin: tətbiqi hansı komponentlər təşkil edir, yönləndirmə kimə aiddir, imtina kimə aiddir və qaydanın hələ də qüvvədə olmalı olduğu hallar hansılardır. Açıq repozitoriya seçim meyarı ola bilər, amma dördün biri deyil və verilən alətin şəbəkə tələbini qarşılayıb-qarşılamadığını həmin bəndlər həll edir.

Əlaqəli məqalələr