Чаму партал-пастка не пускае ваш VPN і як увайсці зноў
Публічны Wi-Fi дае вашай прыладзе дазвол, перш чым з яе выйдзе хоць адзін пакет. Што адкідае партал, чаму ваш VPN паведамляе пра гэта няправільна і які парадак дзеянняў зноў вас злучыць.
У адкрытай сетцы ваша кропка доступу не проста перадае пакеты ў інтэрнэт. Кропка палітыкі вышэй па шляху правярае, ці атрымала ваша прылада дазвол, і пакуль не атрымала, амаль усё адкідаецца. Ваш VPN-кліент чытае гэтую цішыню як мёртвы сервер. Ён рэдка кажа пра гэта: WireGuard паўтарае рукапоціск у пустату, OpenVPN паведамляе пра сканчэнне часу злучэння, а IKEv2 вяртаецца з памылкай 809 пра аддалены сервер, які не адказвае.
Што партал фактычна кантралюе
Партал-пастка — гэта дзве рэчы, змацаваныя разам: кропка прыняцця рашэнняў па палітыцы і перанакіравальнік. Калі ваша прылада падключаецца і бярэ арэнду DHCP, сетка змяшчае вас у стан да атрымання дазволу.
Гэты стан — набор правілаў файрвола. Ён звычайна дазваляе DNS і дазваляе HTTP або HTTPS да кароткага спісу хастоў партала, а ўсё астатняе адкідае. Дазволены спіс — гэта агароджаны сад, і ён амаль ніколі не ўключае канчатковую кропку VPN.
Ніводнае з гэтых адкіданняў не ветлівае. Пакеты, накіраваныя на VPN-сервер, адкідаюцца, а не адхіляюцца, таму кліент не атрымлівае ні ICMP unreachable, ні скід TCP, толькі адсутнасць адказу. У залежнасці ад вытворцы перанакіравальнік можа адказаць на порт 80 перанакіраваннем на старонку ўваходу, тады як порт 443 адкідаецца або перахопліваецца. Перанакіраванні лёгка заўважыць, бо яны нясуць звычайны адказ HTTP; а перахоп на 443 патрабуе сертыфіката, якому ваш браўзер адмовіцца давяраць.
Сам дазвол звычайна прывязаны да MAC-адраса прылады, часам да арэндаванага IP, і жыве ў табліцы сесій з таймерам. Уваход стварае запіс. Правіла файрвола, якое прапускае ваш трафік, існуе толькі пакуль існуе гэты запіс, і таму ўся праблема вяртаецца пазней без ніякіх змен з вашага боку.
Чаму рукапоціск VPN памірае, не паспеўшы пачацца
Кожны пратакол мае свой транспарт, і файрвол да атрымання дазволу ламае кожны па-свойму. IKEv2 на Windows і iOS едзе на UDP 500 і UDP 4500; адкіданне на гэтых партах праяўляецца як 809 або як збой у стылі развязання імёнаў на кліентах, якія паведамляюць пра этапы асобна. OpenVPN праз UDP 1194 застаецца ў стане злучэння, пакуль не скончыцца яго тайм-аўт. OpenVPN праз TCP 443 — гэта цікавы выпадак, бо партал можа завяршыць рукапоціск TCP і потым адказаць сваёй старонкай перанакіравання, таму вы бачыце памылку TLS замест сканчэння часу.
WireGuard паказвае механізм найбольш ясна. Ён толькі на UDP па праекце, без запаснога TCP, таму файрвол, які адкідае невядомы UDP, цалкам прыбірае транспарт. Кліент працягвае слаць ініцыяцыі рукапоціску з павелічэннем паўзы і паведамляе пра рукапоціск, які ніколі не завяршаецца. Нішто ў гэтым паведамленні не згадвае Wi-Fi, і нішто ў ім не падказвае, што трэба адкрыць браўзер.
Платформы спрабуюць заўважыць стан раней за ваш VPN. Windows запытвае вядомы URL, каб вырашыць, ці паказваць апавяшчэнне пра ўваход, Android запытвае канчатковую кропку, якая павінна адказаць 204 No Content, а прылады Apple адкрываюць невялікае акно сеткі-пасткі. Гэтыя праверкі працуюць, бо партал адказвае перанакіраваннем замест чаканага цела. Тое ж паводзіны тлумачыць, як партал можа выглядаць цалкам здаровым, пакуль ваш тунель мёртвы: праверку і тунель ацэньваюць па розных правілах.
Што насамрэч скідвае сканчэнне сесіі
Установы сканчаюць сесіі па прычынах, не звязаных з вашым уліковым запісам VPN: тайм-аўт бяздзейнасці, максімальная даўжыня сесіі, новая арэнда DHCP або паўторнае падключэнне да іншай кропкі доступу. Калі таймер спрацоўвае, запіс у табліцы сесій знікае, і набор правілаў да атрымання дазволу вяртаецца такім, якім быў пры рэгістрацыі.
Усталяваны тунель часта жыве дастаткова доўга, каб выглядаць здаровым. Захаванні актыўнасці працягваюць ісці, і ці заўважыць гэта кліент, залежыць ад таго, як ён абыходзіцца з трафікам без адказу, таму індыкатар стану можа яшчэ некаторы час заставацца зялёным пасля знікнення шляху. Потым тунель падае, і кожная спроба перападключэння правальваецца на тых жа заблакаваных партах.
У гэты момант памылка кліента кажа вам, на якім этапе вы знаходзіцеся, калі ўважліва яе прачытаць:
| Symptom | What it means | Next check |
|---|---|---|
| Handshake times out with no reply | Pre-authorization drop on UDP | Load any HTTP page and see whether the portal appears |
| Immediate TLS error on 443 | The portal answered your TCP connection | Authorize, then retry the same profile |
| Authentication rejected | Your credentials reached the server | The network is fine, so treat this as an account problem |
| Connects, then drops repeatedly | Session or lease churn | Watch the portal timer and the lease time |
Адна дэталь ставіць людзей у тупік: калі сесія прывязана да MAC-адраса, перазагрузка старонкі ўваходу можа не дапамагчы. Трэба скінуць падключэнне і далучыцца зноў, каб партал убачыў новую спробу дазволу замест скончанай.
Спачатку ўвайдзіце, потым падымайце тунель
Парадак, які працуе: даць прыладзе дазвол, даказаць шлях, запусціць VPN, даказаць тунель, потым вярнуць звычайнае блакаванне. Апошні крок важны, бо часовы стан, патрэбны для доступу да партала, — гэта менавіта той стан, які аварыйны перамыкач існуе, каб прадухіліць.
Кліент для настольнай сістэмы з опцыяй блакавання ўсяго па-за тунелем трэба паставіць на паўзу, каб старонка партала загрузілася, і трымаць адчувальныя праграмы зачыненымі на працягу гэтага акна па-за тунелем; гэта адзіны інтэрвал, калі мясцовы трафік выходзіць без абароны. Кіраваная прылада, якая заўсёды ўключана, павінна выкарыстоўваць працэдуру, якую апублікаваў яе ўладальнік, а не ваша выдаленне палітыкі. Калі партал паказвае папярэджанне пра сертыфікат, спыніцеся: прыняцце накіруе вашу сесію праз перахопніцкі проксі ўстановы, а гэты проксі можа чытаць усё, што вы адпраўляеце. На Android блакаванне пры заўсёды ўключаным VPN спыняе трафік да таго, як тунель падымецца, і некаторыя зборкі не могуць выключыць паток партала; калі ваша не можа, выкарыстайце альтэрнатыўны доступ установы або іншую прыладу, а не пакідайце блакаванне выключаным. Правілы Apple па запыце можна напісаць так, каб адмаўляць тунель, пакуль праверка не пройдзе, і гэта паводзіны, якія вы хочаце ў гатэльных сетках.
Правярайце па парадку інструментамі, якія ў вас ужо ёсць. Перад тунелем запусціце праверку з бачнымі і загалоўкамі, і целам, і назірайце, ці атрымае ваш транспарт VPN хоць які адказ:
curl -sS -D - http://captive.apple.com/hotspot-detect.html -o -
sudo tcpdump -ni any 'udp port 500 or udp port 4500 or udp port 1194'
Да атрымання дазволу звычайны партал дае адзін з двух адказаў: 302, чый Location паказвае на старонку ўваходу, або 200 з HTML-целам, якое з'яўляецца старонкай партала. Запішыце, які менавіта вы атрымалі. Перанакіраванне не з'яўляецца збоем да ўваходу; гэта партал кажа вам, куды ісці. Пасля таго як партал паведаміць пра поспех, паўтарыце каманду і чакайце 200, у целе якога літаральна слова Success. Менавіта гэты радок робіць праверку значнай. Калі хост адказвае звычайна яшчэ да таго, як вы ўвайшлі, значыць, у гэтай сетцы няма перахопніцкага партала. У запісе адкіданне да атрымання дазволу — гэта выходныя пакеты, з якіх нічога не вяртаецца, тады як працоўны шлях паказвае адказ на той жа паток прыкладна за секунду. Падключыцеся, потым паўтарыце запіс.
Калі тунель усё яшчэ падае пасля таго, як партал сказаў так
Поспех уваходу не тое самае, што дазволены транспарт. Шматлікія ўстановы дазваляюць партал і звычайны прагляд, цалкам блокуючы UDP, што пакідае WireGuard і OpenVPN праз UDP зламанымі, а TCP 443 працоўным. Калі TCP 443 праходзіць, а UDP не, гэта палітыка ўстановы, а не кліент, які вы няправільна наладзілі, таму змяніце транспарт або прыміце абмежаванне і ідзіце далей. Калі перападключэнне ўсё яшчэ падае пасля гэтага, захавайце дакладную памылку; яна называе этап, на якім вы затрымаліся.
Іншыя збоі жывуць на прыладзе. Сесія, якая ўсё яшчэ прывязана да старога MAC, другі Wi-Fi адаптар з уласнай арэндай або кліент, які закэшаваў выключэнне сертыфіката партала, кожны з іх можа працягваць падаць пасля чыстага паўторнага дазволу. Скіньце падключэнне, дайце дазвол зноў і паспрабуйце адзін раз, перш чым чапаць налады кліента. RFC 8952 варта прачытаць, калі вы хочаце архітэктуру, што стаіць за кампанентамі, якія вы назіраеце.
Калі партал сам адмаўляецца даваць дазвол, праблема ва ўліковым запісе або размеркаванні прылад, і ніякая налада VPN гэтага не выправіць. Змена краіны выхаду VPN не скідвае мясцовы стан доступу ўстановы; гэтая табліца прывязана да вашай прылады, а не да сервера, які вы выбралі. Спытайце аператара ўстановы і дайце яму час, бо глядзець ён будзе менавіта на табліцу сесій.
Перад наступнай паездкай запішыце тры рэчы: старонку партала як нулявы крок, крок прыпынення блакавання для кожнай прылады, якую вы вязеце, і адзін запасны транспарт, які вы сапраўды праверылі. Калі тунель, што працаваў дзесяць хвілін таму, зноў спыніцца, лічыце гэта скончаным дазволам і пераправерце партал, перш чым чапаць профіль VPN.