Падзелены тунель: толькі ўключэнне ці толькі выключэнне — які стандарт выбраць?
Выберыце стандарт да таго, як будаваць спіс: тунэлюйце толькі тое, што назвалі, або тунэлюйце ўсё і выкрасляйце выключэнні. Затым праверце праграму, якую ніхто не ўпісаў.
Адкрыйце раздзел маршрутызацыі ў вашым кліенце VPN, і вы ўбачыце два рознай формы элементы кіравання, якія часта носяць адну і тую ж назву. Адзін прапануе пералічыць прызначэнні, якія належаць тунэлю, а ўсё астатняе працягвае карыстацца лакальнай сеткай. Другі мяркуе, што ўсё ідзе праз тунэль, і пытаецца, што трэба выкрасліць назад. Абодва даюць працоўны тунэль ужо пры першай праверцы, і абодва падтрымліваюцца даданнем радкоў у спіс, таму розніца застаецца нябачнай, пакуль хтосьці не ўсталюе нешта новае.
Гэта выбар стандарту, а не функцыя. Вызначце яго, пакуль у спісе не стала дваццаць запісаў.
Чытайце стандарт з кліента, а не з буклета
WireGuard робіць рашэнне незвычайна бачным, бо AllowedIPs — гэта спіс уключэння і нішто іншае. Пір з 0.0.0.0/0, ::/0 тунэлюе ўсё; пір з 10.20.0.0/16 тунэлюе толькі гэта. Сінтаксісу выключэння няма, таму калі вы хочаце пакінуць адну падсетку па-за тунэлем, давядзецца або пералічыць усе астатнія прэфіксы, або дадаць палітычную маршрутызацыю па-за інтэрфейсам.
OpenVPN дасягае таго ж з процілеглага боку: redirect-gateway def1 ставіць поўны тунэль, а яўныя дырэктывы route дадаюць або перакрываюць пэўныя прэфіксы. Камерцыйныя кліенты звычайна хаваюць абодва за сцяжком і табліцай прызначэнняў, таму прачытайце, які з іх насамрэч рэдагуе табліца, перш чым давяраць подпісу.
Пытанне не ў тым, як называецца сцяжок. Пытанне ў тым, што адбываецца з пакетам, прызначэнне якога не трапіла ні ў адзін спіс. Адкажыце на гэта пісьмова, і ўсё астатняе ў наладзе вынікае з адказу. Прапусціце пытанне, і першую невытлумачальную адмову будзе вырашаць той, хто ў гэты дзень бліжэй да кліента.
Прасачыце за праграмай, якую ніхто не ўпісаў
Пры схеме толькі ўключэння гэтая праграма ідзе напроста, праз лакальную сетку і лакальны DNS. Пры схеме толькі выключэння яна ідзе праз тунэль, у межах таго, што дазваляе сервер, і гэта часта розніца паміж новым інструментам SaaS, які працуе з першага дня, і заяўкай, што гэта VPN яго зламаў.
Ні адзін з стандартаў сам па сабе не бяспечнейшы. Толькі ўключэнне звужае тое, што нясе тунэль, і робіць лакальную сетку шляхам найменшага супраціву; толькі выключэнне мяркуе, што тунэль — звычайны шлях, і ставіцца да выключэнняў як да выключэнняў, што бліжэй да таго, што насамрэч маюць на ўвазе большасць карпаратыўных палітык.
| Question | Include-only | Exclude-only |
|---|---|---|
| Unlisted new app | goes direct | goes through the tunnel |
| A site that breaks over the VPN | add it to the list | carve it out |
| Internal names still resolve | only if routed and served | usually, until split DNS says otherwise |
| Upkeep | one entry per internal service | one entry per misbehaving public service |
Звярніце ўвагу, аб’екты якога тыпу пералічвае платформа
У Android VpnService.Builder прадстаўляе спіс дазволеных праграм і спіс забароненых праграм як дзве асобныя мадэлі, а правілы для кожнай праграмы выбіраюць па пакеце, а не па прызначэнні. Браўзер, змешчаны ў такі спіс, нясе кожнае прызначэнне, якое адкрывае; гэта іншая дакладнасць, чым табліца маршрутаў, і яна не можа выправіць адзін зламаны сайт унутры працоўнай праграмы.
Кліенты для настольных сістэм звычайна змешваюць абодва тыпы ў адным інтэрфейсе, таму праверце, ці радок, які вы дадаяце, — гэта пакет, імя хоста ці прэфікс. Яны ламаюцца па-рознаму і выпраўляюцца ў розных месцах. Радок з імем хоста звычайна становіцца маршрутам плюс імем, а радок з пакетам — палітычным рашэннем унутры кліента. Запішыце, што менавіта вы дадалі, бо той, хто будзе адладжваць гэта пазней, выкажа іншае меркаванне.
Праверце стан збою, а не толькі ўдалы шлях
Праграма, выключаная з тунэля, не атрымлівае аўтаматычна чысты прамы доступ. Калі кліент яшчэ і ўжывае правіла блакавання без VPN, выключаны трафік можа быць цалкам адкінуты, і гэта выглядае як зламаная праграма, а не як рашэнне маршрутызацыі. Праверце гэты выпадак наўмысна, а не даведайцеся пра яго з паведамлення карыстальніка.
Затым праверце DNS і IPv6 як асобныя пункты. Тунэль, які нясе толькі IPv4, пакідае праграме з падтрымкай v6 шлях вакол сябе, а падзелены DNS вырашае, ці развязаюцца ўнутраныя імёны для трафіку, які наогул не ідзе праз тунэль. Запусціце праграму са спісу, праграму не са спісу, запыт імені і адно перападключэнне, і захавайце вынікі разам з наладай.
Запішыце стандарт там, дзе яго знойдзе наступны чалавек
Зафіксуйце абраны стандарт, выключэнні і тое, хто імі валодае, там жа, дзе захоўваецца профіль кліента, бо наступны адміністратар дадасць запіс, не прачытаўшы гэтага абгрунтавання. Адзначце дату і прычыну для кожнага выключэння, каб састарэлае выключэнне для ўжо выпраўленага сайта можна было ўпэўнена выдаліць. Спіс без прычын расце вечна.
Калі хтосьці паведамляе пра адно зламанае прызначэнне, змяняйце выключэнне, а не базавую лінію. Пераключэнне стандарту дзеля выпраўлення аднаго сайта моўчкі пераносіць кожную праграму не са спісу на іншы бок тунэля.