Тунелі, якія падымаюцца, тады як SSH да публічнага адрасу сервера перастае працаваць, выглядаюць як адмова сервера ў злучэнні. У Windows больш верагодная прычына лакальная: AllowedIPs поўнага тунеля з /0 уключае абмежавальныя правілы брандмаўэра, якія дазваляюць уласны транспарт тунеля і вельмі мала чаго яшчэ. Зашыфраваныя пакеты, што дасягаюць гэтага адрасу, нічога не кажуць пра тое, ці можа выйсці асобнае TCP-злучэнне да таго ж адрасу.

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

Дазвол на маршрутызацыю і дазвол брандмаўэра — рэчы розныя

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

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

Што робіць /0 у Windows

Калі ў адзінага вузла дазволеныя адрасы пакрываюць усю прастору IPv4, WireGuard for Windows ужывае абмежавальную пазіцыю брандмаўэра, якая блакуе трафік, што інакш выйшаў бы па-за тунель. Уласны транспарт службы тунеля дазволены, бо інакш VPN не мог бы працаваць. Іншая праграма да таго ж публічнага адрасу не атрымлівае такога дазволу, паколькі выключэнне належыць транспарту, а не адрасу. Нататкі пра сетку Windows апісваюць гэтыя паводзіны і адпаведны элемент кіравання ў рэдактары.

Гэтыя правілы — механізм, што стаіць за выразам kill switch. Яны ўключаюцца формай канфігурацыі, а не птушкай у полі з такой назвай.

Выключэнні змяняюць мадэль абароны

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

Там, дзе прамы публічны SSH сапраўды патрэбны, уладальнік профілю павінен распрацаваць і знешні маршрут, і яго дазвол брандмаўэра, і вырашыць, што адбудзецца з непатрэбным трафікам, калі тунель упадзе. Асобны разгляд IPv4 і IPv6 таксама да гэтага належыць, бо правілы вызначаюцца па сямействах. Шырокі абыход, дададзены дзеля выратавання адной сесіі кіравання, звычайна раскрывае больш, чым гэтая сесія.

Праверце абраны шлях кіравання

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

ipconfig | findstr /i "WireGuard IPv4"
wg show
ssh -v [email protected]
Test-NetConnection 203.0.113.9 -Port 22

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

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

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