Always-on VPN же kill switch: чындыгында кайсыны күйгүздүңүз?
Always-on VPN туннелди кайра туташтырат; kill switch ансыз эмне чыга аларын чечет. Белгиге ишенүүдөн мурун беш текшерүү.
Always-on менен kill switch бир баштоо экранында эки сап аралыкта турат, ошондуктан адамдар аларды бир функциянын эки аты деп окушат. Алар андай эмес. Always-on — кайра туташуу саясаты: жүктөө учурунда туннелди баштоо, бузулуудан же тармак алмашуудан кийин аны кайтаруу жана ишке ашпаганча кайра аракет кылуу. Kill switch — трафик саясаты: туннел өчүп турганда кайсы пакеттер машинадан чыга аларын атайт. Биринчисин экинчисинсиз күйгүзсө болот, жана көпчүлүк платформада демейки жыйынтык ошол аралыкта трафикти сыртка чыгарат.
1-текшерүү: блок өзүнчө которгучпу?
Android 10 жана андан жаңы версияларда сакталган VPN профили тиш дөңгөлөк белгисинин артында эки көз карандысыз которгуч ачат: Always-on VPN жана Block connections without VPN. Kill switch — экинчиси гана. Жалгыз always-on менен туннел үзүлгөндөн кийин чынында эле кайтат, жана сурам ортосундагы кандайдыр бир колдонмо ошол убакка чейин Wi-Fi же мобилдик маалымат аркылуу тармакка чыга алат.
Башкарылуучу түзмөктөр саясат APIде ошол эле бөлүнүштү сактайт. setAlwaysOnVpnPackage() пакеттин атын жана lockdownEnabled желекчесин кабыл алат; пакетти коюп, желекчени false күйүндө калтырган администратор туруктуу туннел курган, жабык түзмөк эмес. Консолдогу сөз айкашы бул айырманы сейрек көрсөтөт.
Абалды консолдон эмес, түзмөктөн окуңуз: adb shell settings get global always_on_vpn_app жана adb shell settings get global always_on_vpn_lockdown. Эгер биринчиси null кайтарса, платформа деңгээлинде эч бир пакет милдеттендирилбейт; эгер экинчиси 0 кайтарса, платформа эч нерсени блоктобойт. Android VPN колдонмосу аларды бир режим эмес, өзүнчө мүмкүнчүлүктөр катары сүрөттөйт.
2-текшерүү: блок кайсы катмарга таандык?
Белгилер клиентте, ал эми блоктор адатта firewallдо турат, ошондуктан бир сөз ар бир платформада башка маани берет. Төмөнкү саптар — кайсы бирине ишенүүдөн мурун ырастоого татыгандары.
| Where you see the label | What the label promises | What actually blocks |
|---|---|---|
| Android VPN profile | Always-on VPN | Block connections without VPN |
| Android device policy | Always-on package | lockdownEnabled flag |
| Windows built-in VPN | Always On tunnel | Outbound firewall rules |
| WireGuard for Windows | Tunnel service | Block untunneled traffic option |
| wg-quick on Linux | Route via AllowedIPs | Your own nftables or iptables rules |
Windows — блоктобогон белгинин эң ачык мисалы. Ал жерде Always On туннелдин туруктуулугун сүрөттөйт: машина аутентификациясы үчүн түзмөк туннели, кирген эсеп үчүн колдонуучу туннели, профилдин XML же Add-VpnConnection аркылуу бапталат. Бул профилде туннел жок кезде чыгуучу пакетти токтоткон эч нерсе жок, ал эми чыгуучу фильтрлөө демейкиде күйгүзүлгөн эмес, ошондуктан Wi-Fiдеги ноутбук VPN өчүп турганда да иштей берет.
WireGuard да ушундай бөлүнөт, бирок клиент боюнча. WireGuard for Windowsте ар бир туннел үчүн фильтр эрежелерин орноткон Block untunneled traffic опциясы бар; Linux куралдарында андай которгуч жок. wg-quick ар бир AllowedIPs жазуусу үчүн маршрут жана fwmark эрежесин кошот, ал эми wg-quick down экөөнү тең алып салат, ошондуктан физикалык демейки маршрут бир да пакет түшпөстөн кайра иштейт.
Apple платформаларында always-on көзөмөлдөгү түзмөктөр үчүн башкаруу профилинин функциясы катары келет жана белги кутучасы эмес, on-demand эрежелери түрүндө туюнтулат. Пайдалуу жүктөмдөн жооп бериш керек суроо: ишке ашпаган туннел трафикти тыят же жөн гана башка туташууну сурайт. Меню аталышы муну айтпайт.
3-текшерүү: белгини эмес, аралыкты өлчөңүз
Төрт өтүү маанилүү жана алар ар башкача ишке ашпайт: бирөө киргенге чейинки жүктөө, уйку жана ойгонуу, Wi-Fiден мобилдик маалыматка өтүү жана туннел интерфейсин жарым бапталган бойдон калтырган клиент бузулушу. Алардын биринде таза кайра туташуу калган үчөө тууралуу эч нерсени далилдебейт.
Эң арзан сыноо туннелди атайын токтотуп, анан сыртка чыгууга аракет кылат. Туннел өчүп турганда curl -m 5 -sS -o /dev/null -w '%{http_code}' https://example.com 200 кайтарса, саясат fail-open дегенди билдирет; убакыт бүтүү же четке кагылган туташуу дагы бир нерсе блоктоп турганын билдирет. ip route get 1.1.1.1 пакетти алып жүрүүчү интерфейсти атайт, бул адатта науа белгисинен көбүрөөк маалымат берет, ал эми systemctl status wg-quick@wg0 интерфейс таза өчүрүлгөнүн көрсөтөт.
Ошол эле текшерүүнү тармак өзгөрүп жатканда экинчи терезеде аткарыңыз, тармак турукташкандан кийин гана эмес. Үзүлү менен кайра аракеттин ортосундагы аралык — эң маанилүү бөлүк, ал эми атты чечүү трафик сыртка кеткенин байкоонун эң тез жолу: эгер туннел өчүп турганда жергиликтүү чечүүчү жооп берсе, блок толук эмес.
4-текшерүү: кулпулоодон мурун өзгөчөлүктөрдү чечиңиз
Эки өзгөчөлүк түзүмдүк. Клиент VPN серверинин өзүнө жетүүгө тийиш, ошондуктан баарын таштаган эрежелер жыйнагы коргоону кайтара турган кайра туташууга да тоскоол болот. Captive portal да көтөрүлбөгөн туннел аркылуу жеткиликсиз, ошондуктан мейманкананын Wi-Fiсинде кулпуланган түзмөккө порталды ачуунун документтелген жолу керек, импровизация эмес.
Эң аз форма: акыркы чекитке уруксат, калганы ташталган:
table inet vpnlock {
chain output {
type filter hook output priority 0; policy drop;
oifname "lo" accept
ip daddr 203.0.113.10 udp dport 51820 accept
oifname "wg0" accept
}
}
Ошол акыркы чекит сабын туруктуу эмес, өзгөрмө катары караңыз. Провайдерлер даректи алмаштырат, ал эми эскирген өзгөчөлүк — иштеп турган kill switch кайра туташа албаган түзмөккө айланышынын кадимки себеби. Жергиликтүү принтерлер, NAS бөлүшүүлөрү жана иштеп чыгуу кызматтары ошол эле жазылган тизмеге кирет, болбосо алар колдоо билети сайын бир-бирден табылат.
5-текшерүү: чындыгында эмнени далилдегениңизди жазыңыз
Төрт мамычалуу таблицаны кармап, аны сыноо менен толтуруңуз: абал, күтүлгөн жүрүм-турум, байкалган жүрүм-турум, далил. Саптар — 3-текшерүүдөгү өтүүлөр жана бир атайын бузулуу. Команданын чыгымы менен толтура албаган сап — текшерилбеген сап, ал эми кайра туташуу сабынан өтүп, жүктөө сабында кулаган түзмөк жетиштүү кезигет, ошондуктан кошумча он мүнөткө татыктуу.
Аны бүттү деп атоодон мурун:
- Блоктоо баптоосу кайра туташуу баптоосунан өзүнчө экенин ырастап, анын маанисин түзмөктөн окуңуз.
- Блокту кайсы катмар аткарарын - клиент опциясы, түзмөк саясаты же firewall - жана ал катмар кайда бапталарын билиңиз.
- Блокту далилдеген бир текшерүү командасын сактап, аны өтүү учурунда аткарыңыз, кийин эмес.
- Өзгөчөлүктөр тизмесин, акыркы чекит менен кошо, жазып, аны ким жаңыртарын белгилеңиз.
- Башкарылуучу жабдууда милдеттендирилген саясатка тийбеңиз; блокту алып салуу туннелди оңдоонун ордуна талапты өзгөртөт.