Тунели, които се вдигат, докато 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. Ако вътрешният адрес работи, а външният не, локалната позиция на защитната стена прави точно това, за което е проектирана. Прочетете трите резултата в този ред, преди да редактирате профил.

Записвайте пътя за управление, използвания адрес и поведението, когато тунелът е паднал. Тази бележка е това, което спира следващия човек да разшири обхода, за да спести пет минути.

Подобни статии