Android'до колдонмо боюнча VPN: колдонмону чыгарып салуу аны блоктоо эмес
Экрандагы колдонмо боюнча тизме бир туннелдин ээсине таандык, ал эми колдонмону чыгарып салуу аны ошол туннелдин айланасынан өткөрөт, тармактан чыгарбайт. Ошондон баштаңыз.
Эки адам бир суроону берип, бири-бирине туура келбеген жооп алышат, анткени алар ар башка жерде турушат. Бирөөнүн алдында тутумдун VPN жөндөөлөрүнүн экраны ачык жана ал колдонмолордун тизмесин оңдоп жатат. Экинчиси редактордо VpnService.Builder.addDisallowedApplication() жазып жатат. Экөө тең муну колдонмо боюнча VPN чыпкасы деп аташат. Алардын бирөө гана өзү сүрөттөп жаткан көзөмөлгө ээ, жана экөө тең эч нерсени блоктоп жатышкан жок.
Колдонуучу көргөн экрандан баштаңыз
Жөндөөлөрдү ачып, VPN жазуусун таап, чындыгында активдүү болгон туташууну караңыз. Эгерде кардар колдонмо боюнча тизме сунуш кылса, ал тизме кардардын өз туннелине таандык. Платформа башка VPN дын колдонмо тандоосун окуй алган же өзгөртө алган жалпы API жарыялабайт, ошондуктан экинчи колдонмо бул тизмени колдонуучу үчүн оңдой албайт.
Бул жолдун биринчи айрылышы. Эгерде орнотулган VPN да мындай жөндөө жок болсо, код менен айланып өтүүчү эч нерсе жок: мүмкүнчүлүк туннелге ээ продуктта жок. Эгерде бар болсо, туура оңдоо ошол экранда, аны ача алган адам тарабынан жасалат.
Пакетти туннелге чейин ээрчиңиз
Өз колдонмоңуз туннел куруп жатканда, ал TUN интерфейсин түзөт жана кайсы колдонмолордун трафиги ага кирерин жарыялайт. Мүчөлүк чакыруулары интерфейс орнотулганга чейин жасалат, ал эми андан кийин эрежелер жыйнагы ошол сессия үчүн бекитилет:
val builder = VpnService.Builder()
builder.addAddress("10.8.0.2", 32)
builder.addRoute("0.0.0.0", 0)
builder.addDisallowedApplication("com.example.bypass")
val tun = builder.establish() // membership decided hereБул чакыруулар сиздин колдонмоңуз жаңы эле түзгөн туннелге гана тиешелүү, башка эч нерсеге эмес. Алар түзмөктүн масштабындагы саясат эмес, башка кардарлар үчүн сакталбайт жана башка бирөөнүн VPN ына жете албайт. Пакетти чечүү мүмкүн болбогондуктан куруучунун чакыруусу өзгөчөлүк ыргытса, интерфейс эч качан орнотулбайт, бул таза ийгиликсиздик, үнсүз эмес.
Эмне үчүн чыгарып салуу блоктоо сыяктуу көрүндү
Чыгарылган колдонмо сиздин туннелиңизди айланып, астынкы тармакка жөнөтүлөт. Бул аны блоктоонун тескериси: трафик дагы эле түзмөктөн чыгат, сиз көзөмөлдөгөн интерфейстен тышкары гана. Брандмауэр стилиндеги колдонмо тескерисинче кылат. Ал колдонмонун трафигин өз туннелине кабыл алып, анан пакеттерди таштайт же аларды жөнөтүүдөн баш тартат, ошондуктан интерфейс ошол эле, ал эми саясаттын багыты тескери айланган.
Бул айландыруунун артындагы иш конфигурация желеги эмес. Сиз туннелдин сүрөттөгүчүнөн IP пакеттерин окуйсуз, агым боюнча чечим кабыл аласыз, анан аларды корголгон сокет аркылуу өткөрөсүз же таштайсыз. Иштеп чыкпаганыңыздын баары жөн гана токтойт, ошондуктан жарым бүткөн туннел иштеген чыпка эмес, бузулган тармак сыяктуу көрүнөт. Максатыңыз блоктоо болсо, пакеттерди иштетүүнү, алдыңкы пландагы кызматты жана классификациялай албаган трафик үчүн жазуу түрүндөгү саясатты эсептеңиз.
Өзүңүз курганда эмне бузулат
Android адатта бир убакта бир гана активдүү VPN га уруксат берет, ошондуктан чыпкалоочу туннелиңиз менен купуялуулук туннели бир орун үчүн атаандашат, эгерде продуктулар тизбектөөнү колдобосо. Дайыма күйүк VPN туташууларды блоктоо менен ийгиликсиздиктин ыкмасын ушул жерде маанилүү болгон түрдө өзгөртөт: туннелге кире албаган трафик түз жөнөтүлүүнүн ордуна ташталат, муну агып кетүүнүн алдын алуу долбоору каалайт жана жөндөө сессиясы сейрек күтөт.
Пакеттердин көрүнүүсү экинчи тузак. Колдонмонун пакет атын чечүү NameNotFoundException катасы менен ийгиликсиз болушу мүмкүн, ал эми жаңы Android версияларында көргөн пакеттериңиздин жыйнагы сиз жарыялаган сурамжылоолорго көз каранды. Ар бир ат чечилет деп болжолдоонун ордуна өзгөчөлүктү иштетиңиз жана колдонмолор орнотулганда же өчүрүлгөндө тизмени кайра окуңуз, аны түбөлүк кэште сактоонун ордуна.
Башкарылуучу түзмөктөр үчүнчү ээсин кошот. Ишканалык мобилдүүлүк саясаты колдонмо боюнча VPN же дайыма күйүк профилди коё алат, ал эми жөнөкөй колдонмо аны баса албайт. Өз кодуңузду жөндөөдөн мурун түзмөктүн башкарылаарын текшериңиз, анткени бул учурда өзгөртмөк болгон тизмени телефон кармаган эч ким оңдой албашы мүмкүн.
Өзүңүз көзөмөлдөгөн колдонмо менен сынаңыз
Чыпкалагыңыз келген колдонмо менен сынабаңыз. Тармактык жүрүм-турумун байкай алган экинчи колдонмону колдонуңуз жана анын трафиги сиздин туннелиңиз аркылуу чыгарын, ал эми максаттыкы чыкпай турганын текшериңиз. Экөө тең ичинде калса, саясат иштейт жана максат чыгарылган; эч бири чыкпаса, туннелдин өзү туура эмес, колдонмолор тизмеси көйгөй эмес.
Анан үч нерсенин кайсынысын чындыгында куруп жатканыңызды чечиңиз. Колдонмо боюнча туннель — куруучунун API, тизме профилиңиздин бөлүгү. Түзмөктүн брандмауэри — пакеттерди иштетүү жана коргой алган жашоо цикли. Башка бирөөнүн VPN ын өзгөртүү такыр колдоого алынган жол эмес, жана ал жердеги чынчыл жооп — бул жөндөө ошол продуктка таандык.