У вас адно сказ правіла: гэтая праграма можа дасягаць працоўнай службы, і больш нічога. Наступнае пытанне выглядае як выбар прадукту, але гэта пытанне месца, бо кожны магчымы пункт прымянення бачыць розную частку трафіку тэлефона. Шлюз бачыць толькі тое, што ўваходзіць у тунель. Фільтр на баку тэлефона бачыць толькі тое, што яму дазволена назіраць. Калі правесці адзін запыт праз абодва, адказ робіцца відавочным.

Пачніце са сказа, а не з прадукту

Разгарніце патрабаванне, перш чым што-небудзь выбіраць. Гэта значыць пакет і профіль, у якім ён працуе, бо праграма ў працоўным профілі — гэта іншы карыстальнік, чым тая ж праграма ў асабістым профілі. Гэта значыць пункт прызначэння: хост, порт і пратакол, а не назва службы. Гэта значыць шлях DNS, які вырашае гэтую назву, і гэта значыць, што павінна адбыцца, калі тунель недаступны.

У запісаным выглядзе правіла для прыкладу — гэта чатыры радкі: працоўная праграма можа дасягаць працоўнай службы; працоўная праграма не можа дасягаць нічога іншага; іншыя праграмы не змяняюцца; без тунеля працоўнай праграме адмаўляюць, а не дазваляюць адкат. У кожнага радка ёсць уладальнік, і гэта не адзін і той жа ўладальнік.

Крок 1: што можа забяспечыць сам тэлефон

Файрвол Android без root — гэта VpnService, які збірае трафік лакальна, нават калі за ім няма аддаленага тунеля. Android дазваляе адну актыўную службу VPN на профіль карыстальніка, таму другая праграма файрвола не ўстанаўліваецца за першай. Яна замяняе яе, і інтэрфейс, які фільтравала першая праграма, знікае.

Менавіта таму ўсталёўка файрвола побач з кліентам VPN рэдка дае тое спалучэнне, якога чакаюць людзі. Калі файрвол запускаецца, а VPN адключаецца, нічога не аб’ядналася; двое памяняліся месцамі. Замена інтэрфейса — гэта не супрацоўніцтва, і сімптом — тунель, які ўвесь час абрываецца, калі адкрываюць другую праграму.

Падтрымліваемыя варыянты існуюць: фільтраванне, убудаванае ў кліент VPN, які вы ўжо выкарыстоўваеце, кіраваныя сродкі платформы праз кантролер палітыкі прылады або працоўны профіль, ці архітэктура, якую дакументуе вытворца. Усё іншае — гэта эксперымент, які трэба пераправяраць пасля кожнага абнаўлення праграм.

Крок 2: што можа забяспечыць шлюз

Пасля таго як трафік расшыфраваны на далёкім канцы, шлюз можа абмежаваць перасылаемыя пакеты зацверджанымі адрасамі, службамі або аўтэнтыфікаванымі ідэнтычнасцямі VPN. Гэта сапраўднае прымяненне для ўсяго, што выходзіць праз яго, і гэта правільнае месца, каб абмежаваць доступ да прыватных падсетак.

Чаго ён не атрымлівае — гэта ідэнтычнасць праграмы тэлефона, прымацаваная да кожнага звычайнага IP-пакета. Некалькі праграм, якія дзеляць адзін адрас тунеля, для шлюза — адзін суб’ект, калі праект не дае ім асобных адрасоў або асобных аўтэнтыфікаваных ідэнтычнасцяў. Таму правіла на карыстальніка на шлюзе не з’яўляецца правілам на праграму на тэлефоне, як бы кансоль кіравання яго ні называла.

Крок 3: пералічыце тое, што ніколі не прыходзіць

Праграма, выключаная з VPN, якая звяртаецца да блізкай прылады, ніколі не дасягае шлюза, таму знешні файрвол не можа адмовіць у пакеце, які ён не атрымлівае. Тое ж датычыцца выпадковага прамога маршруту падчас збою і ўваходнага ўздзеяння ў лакальнай сетцы доступу. Гэта лакальныя межы па вызначэнні.

І наадварот: лакальнае правіла, якое дазваляе злучэнне, не дае доступу праз ACL прыватнай сеткі шлюза. Адзін запыт можа падлягаць абедзвюм межам, і задавальненне адной нічога не кажа пра другую.

Крок 4: прызначце кожнае правіла шляху

Змесціце рашэнне ў табліцу, перш чым нешта наладжваць, бо пустыя ячэйкі — гэта месца, дзе праекты правальваюцца.

ШляхХто можа гэта забяспечыцьСляпое пляма
Працоўная праграма да працоўнай службы, тунель уключаныACL шлюза па адрасе і службе, плюс лакальная блакіроўка іншых шляхоўШлюз не бачыць, якая праграма адправіла пакет
Працоўная праграма да іншых прызначэнняў, тунель уключаныЛакальны фільтр, які ўлічвае праграмы, або шлюз, калі гэтыя прызначэнні адрасаваныя тамЛакальны фільтр павінен быць актыўным VpnService
Працоўная праграма без тунеляЛакальная адмова, каб праграма не магла выбраць прамы шляхПатрабуе, каб фільтр перажыў знікненне тунеля
Блізкая прылада LANТолькі лакальная палітыкаШлюз ніколі гэтага не бачыць

Працаздольная форма — дзве межы з дзвюма задачамі. Лакальная мяжа, якая ўлічвае праграмы, кіруе паводзінамі тэлефона, уключаючы прамы адкат, а мяжа шлюза кіруе аддаленымі рэсурсамі. Бок шлюза можа дазволіць працоўную службу і адмовіць кожнай іншай прыватнай падсетцы, а палітыка на баку тэлефона прымае ўласнае рашэнне пра прамы шлях, які праграма магла б выбраць.

Крок 5: трымайце транспарт жывым, потым праверце

Якую б лакальную палітыку вы ні выбралі, яна павінна дазваляць транспарт, які ўсталёўвае і падтрымлівае VPN. Блакіроўка гэтага транспарту пакідае тэлефон без тунеля і без палітыкі, што не забяспечвае нічога паслядоўна і цяжка дыягнастуецца, бо праграма проста не мае сеткі.

Затым праверце кожны радок зыходнага сказа, а не агульнае ўражанне: працоўная праграма дасягае працоўнай службы, тая ж праграма атрымлівае адмову на іншым прызначэнні, праграма не для працы паводзіць сябе як раней, і пры спыненым тунелі працоўная праграма не адкочваецца да прамога злучэння. Праверце шлях DNS асобна, бо прыватны DNS або шыфраваны рэзалвер могуць абысці фільтр, які правярае толькі адрасы.

Калі адзін з гэтых крокаў немагчыма задаволіць на тэлефоне, патрабаванне — гэта пытанне архітэктуры, а не налада файрвола. Падзел палітыкі паміж прыладай, якой вы кіруеце, і шлюзам, якім вы кіруеце, звычайна і ёсць сумленны адказ, а дакументацыя па злучэннях Android VPN — гэта месца, дзе можна пацвердзіць, што платформа дазволіць і не дазволіць адной службе.

Падобныя артыкулы