Ці заблакуе ключ блакіроўкі праграму, якую вы вывелі з тунэля?
Выключаная праграма можа наўмысна ісці напрамую, а абароненая павінна адмаўляць пры збоі. Спачатку апішыце палітыку для кожнай праграмы, потым праверце, што выконвае кліент.
Ключ блакіроўкі ўключаны, праграма наўмысна выключана з тунэля, і дзве патрабаванні цяпер супярэчаць адно аднаму. Адно кажа, што нішто не можа выйсці па-за тунэль, другое — што гэтая праграма павінна ісці напрамую. Кожны кліент вырашае гэтую супярэчнасць па-свойму, а старонка налад рэдка тлумачыць, якое правіла перамагае. Апішыце палітыку для кожнай праграмы, перш чым давяраць любым назвам.
Дзве палітыкі, адна машына
Ключ блакіроўкі — гэта абяцанне пра збой: калі тунэль не абараняе трафік, трафік спыняецца. Раздзеленае тунеляванне — гэта абяцанне пра выбар: гэтыя праграмы або прызначэнні выкарыстоўваюць тунэль, а тыя не. Другое абяцанне стварае трафік, пра які павінна вырашыць першае. Ні адно абяцанне не памылковае; іх проста пісалі розныя людзі для розных пагроз.
Магчымыя тры вынікі, і толькі адзін з іх — той, што меў на ўвазе ўсталявальнік. Выключаная праграма можа заставацца напрамую падчас збою, што паважае раздзяленне і парушае ключ блакіроўкі. Яна можа быць заблакаваная разам з усім астатнім, што паважае ключ блакіроўкі і парушае раздзяленне. Або яна можа блакавацца толькі часам, у залежнасці ад таго, як платформа ацэньвае правіла пасля знікнення інтэрфейсу. Менавіта апошні выпадак і спараджае заяўкі.
Спачатку спіс праграм, потым правіла
Пералічыце праграмы, якія павінны выкарыстоўваць тунэль, тыя, якія павінны ісці напрамую, і назвы або прызначэнні, якія не павінны з’яўляцца ні ў адным спісе. Уключыце асобна паводзіны рэзалвера і бок IPv6, бо абодва могуць ісці па іншай палітыцы, чым трафік старонак.
Правілы для асобных праграм звычайна супадаюць з выканальным файлам або пакетам, а не з профілем унутры яго. Профіль браўзера, прыватнае акно і пашырэнне не маюць уласнай сеткавай ідэнтычнасці, таму яны ўспадкоўваюць тое, што атрымаў працэс. Дапаможны працэс, запушчаны гэтым браўзерам, можа наогул не ўспадкаваць тое ж правіла.
Патрэбны два спісы, а не адзін: што тунэль павінен несці і што ні пры якіх умовах не павінна ісці па-за ім. Праграма, якая з’яўляецца ў абодвух, — гэта канфлікт патрабаванняў, а не дэталь рэалізацыі, і яго трэба вырашыць да наладкі кліента.
Што робіць кліент падчас збою
Некаторыя рэалізацыі блакуюць выключаныя праграмы падчас збою і аднаўляюць доступ пры перападключэнні. Іншыя захоўваюць прамы шлях увесь час, што адпавядае раздзяленню і слабейшае як уласцівасць бяспекі. Блакіроўка на ўзроўні платформы можа цалкам перакрыць уласны выбар кліента для асобных праграм. Гэтая розніца не касметычная, бо яна вырашае, ці выключаная праграма — гэта выключэнне з палітыкі ці дзірка.
Заўсёды ўключаны VPN у Android з опцыяй блакавання злучэнняў без VPN — самы ясны выпадак, бо блакіроўку выконвае платформа, а не кліент, і выключаны пакет блакуецца разам з усім астатнім, пакуль тунэль не працуе. Настольны кліент, які прымяняе выключэнні для асобных праграм у сваім драйверы, звычайна пакідае выключаны працэс на фізічным інтэрфейсе, бо ён з самага пачатку не валодаў трафікам гэтага працэсу. Абодва паводзіны можна абараніць, і толькі адно з іх адпавядае патрабаванню, што выключаная праграма павінна заставацца даступнай. Спытайце, які кампанент выконвае правіла, перш чым тлумачыць вынік.
Чытайце паводзіны той аперацыйнай сістэмы, якая перад вамі, а не налады з той жа назвай у іншым месцы. API выканання розныя, і адзін сцяжок можа азначаць цалкам рознае на камп’ютары і на тэлефоне. Версія таксама важная, бо кіраванне блакіроўкай перамяшчалася паміж экранамі ў розных выпусках Android, а спіс выключэнняў на баку кліента — не тое ж самае, што блакіроўка платформы.
Тры моманты: тунэль уключаны, тунэль выключаны, перападключэнне
Выкарыстоўвайце бясшкодныя запыты ў тры моманты: пакуль тунэль працуе, падчас збою, які вас хвалюе, і пасля перападключэння. Адзін вынік браўзера не можа ўстанавіць паводзіны выключанай праграмы.
curl -sS --max-time 8 https://api.ipify.org
curl -sS --max-time 8 --interface tun0 https://api.ipify.org
dig +short example.com
Адрас выхаду паказвае, які шлях быў абраны, а яўны тэст інтэрфейсу паказвае, што адбываецца, калі тунэль — адзіны даступны выхад. Запішыце чаканы вынік побач з кожным радком, перш чым запускаць любы з іх, інакш выхад будзе вытлумачаны пасля факту.
Калі выключаная праграма трапляе ў афлайн, праверце прыярытэт палітык, перш чым дадаваць шырокае дазвол у файрволе, бо гэтае выпраўленне знішчае розніцу, якую вы тэсціравалі. Калі яна застаецца напрамую, пераканайцеся, што гэта дакументаванае выключэнне, а не выпадковае адкатванне. Для строгага патрабавання на ўсю прыладу скараціце спіс выключэнняў, пакуль яго можна будзе праверыць уручную.