SSH ка јавној IP адреси WireGuard сервера не ради у Windows-у
Рута и правило заштитног зида су две одвојене одлуке. У Windows-у peer са /0 укључује ограничавајућа правила, а изузетак је сопствени транспорт тунела.
Тунели који се подигну док SSH ка јавној адреси сервера престане да ради изгледају као сервер који одбија везу. У Windows-у је вероватнији узрок локалан: AllowedIPs пуног тунела од /0 укључује ограничавајућа правила заштитног зида која дозвољавају сопствени транспорт тунела и врло мало тога другог. Шифровани пакети који стигну на ту адресу не говоре ништа о томе сме ли засебна TCP веза на исту адресу да изађе.
Одвојте јавну адресу endpoint-а од његове унутрашње адресе тунела пре него што дирнете листу peer-ова. Готово сваки покушај да се то поправи уређивањем AllowedIPs-а чини политику слабијом, а не руту исправном.
Дозвола за рутирање и дозвола заштитног зида нису иста ствар
Рута одлучује куда ће пакет бити послат, а правило заштитног зида одлучује сме ли уопште бити послат. Додавање руте за јавну IP адресу endpoint-а зато ствара пут који филтер још увек може блокирати, и управо ту збрку ствара овај симптом. У Windows-у је филтер део имплементације, а не додатак, па га ниједан запис руте не мења. Те две одлуке су одвојене и другде, иако се подразумеване вредности разликују.
Зато traceroute до endpoint-а може успети док SSH покушај не успе. Први носи сервис који поседује изузетак, а други не.
Шта /0 ради у Windows-у
Кад један peer има дозвољене адресе које покривају цео IPv4 простор, WireGuard for Windows примењује ограничавајуће држање заштитног зида које блокира саобраћај који би иначе изашао изван тунела. Сопствени транспорт тунелског сервиса је дозвољен јер VPN иначе не би могао да ради. Друга апликација на исту јавну адресу не добија такву дозволу, јер изузетак припада транспорту, а не адреси. Белешке о Windows умрежавању описују то понашање и повезану контролу у уређивачу.
Та правила су механизам иза израза kill switch. Активирају се обликом конфигурације, а не пољем за потврду с тим називом.
Изузеци мењају модел заштите
Замена /0 са два полуподаразумевана префикса документовани је начин да се задржи широко рутирање без ограничавајуће семантике, и то је другачији модел заштите, а не краћи запис. Одузимање адресе endpoint-а од дозвољених префикса други је уобичајени заобилазни пут, који продужава листу и мења која се правила активирају. Ниједно није локална измена са локалним ефектом. Свако помера границу за сваки ток на машини, не само за везу коју сте поправљали.
Тамо где је директан јавни SSH заиста потребан, власник профила мора осмислити и спољну руту и њену дозволу заштитног зида, и одлучити шта се дешава са неповезаним саобраћајем кад тунел падне. Засебан преглед IPv4 и IPv6 такође томе припада, јер се правила изражавају по фамилији. Широки заобилазни пут додат да спасе једну управљачку сесију обично излаже више од те сесије.
Тестирајте изабрани управљачки пут
Прво одлучите треба ли управљање да путује унутар тунела или изван њега, а затим тестирајте тај избор, а не оба одједном. Наредбе у наставку проверавају адресе клијента, стање peer-а и везу на сваки циљ. Покрените их са Windows клијента док је тунел подигнут.
ipconfig | findstr /i "WireGuard IPv4"
wg show
ssh -v [email protected]
Test-NetConnection 203.0.113.9 -Port 22
Успешан SSH на унутрашњу адресу доказује да тунел носи управљачки саобраћај и да сопствени заштитни зид сервера прихвата тај саобраћај из опсега peer-ова. Неуспех на оба циља проблем је на страни сервера или са кључем, а не Windows рутирања. Ако унутрашња адреса ради, а спољна не, локално држање заштитног зида чини управо оно за шта је осмишљено. Прочитајте три резултата тим редом пре уређивања профила.
Забележите управљачки пут, коришћену адресу и понашање кад тунел падне. Та белешка је оно што следећу особу спречава да прошири заобилазни пут како би уштедела пет минута.