Зашто адреса вашег VPN тунела не отвара улазна врата
Адреса тунела идентификује вашег клијента према партнерима који могу да усмеравају до ње и никада не ствара слушаоца. Проверите повезивање, повратну путању, затим политику.
Повежите се на канцеларијски VPN, покрените малу услугу на порту 8443, пошаљите адресу тунела колеги и гледајте како веза не успева док клијент и даље извештава да је повезан. Ништа у тунелу није покварено: адреса је додељена, сесија је активна, а пакети који би носили одговор једноставно никада не бивају пропуштени. Изведите три провере испод редом и зауставите се на оној која не успе, јер свака има другачију поправку и само једна од њих се тиче VPN-а.
Почните од тога где је сокет заиста повезан
Пре него што се било шта усмери, нешто мора да слуша на адреси до које позивалац може да стигне. Развојни сервери су уобичајени кривац, јер се многи од њих подразумевано повезују на loopback и прихватају само везе које потичу са истог рачунара. Адреса тунела не мења то повезивање, а оперативни систем ће одбити везу много пре него што VPN уопште буде укључен.
ss -ltnp | grep 8443
netstat -ano | findstr 8443
Читајте колону локалне адресе, а не стање. 127.0.0.1:8443 значи само loopback, а поправка је повезивање на 0.0.0.0 или на саму адресу тунела. 0.0.0.0:8443 прихвата на свим интерфејсима, што је шире него што већина људи намерава када рачунар има и јавну адресу; 10.64.7.15:8443 је уска верзија која слуша само тамо где колега може да стигне. Обратите пажњу и на назив процеса у истом излазу, јер је залутала инстанца из ранијег теста чест разлог зашто порт изгледа отворен и одговара погрешним садржајем.
Затим питајте може ли ишта да усмерава до те адресе
Адреса тунела има смисла само за партнере конфигурисане да тај префикс шаљу у тунел. Рачунар колеге има сопствену табелу и, ако нема путању до подмреже тунела, пакет одлази на подразумевани гејтвеј и умире на месту које нема појма да адреса постоји. То је питање усмеравања на страни позиваоца, а не дозвола на вашој страни.
| Symptom from the caller | What it usually means | Where to look next |
|---|---|---|
| Connection refused immediately | Nothing is listening on the address the packet reached | The bind address and the process owning the port |
| Connection times out with no reply | A policy dropped the packet, or no route returns | Server forwarding, host firewall, cloud security group |
| Works from the same machine only | Listener is on loopback, or no route reaches the tunnel address | Bind address, then the caller's route to that prefix |
Сервер између два клијента је једнако важан. У уобичајеном дизајну удаљеног приступа сваки клијент отвара одлазну везу ка гејтвеју и гејтвеј чува стање тих токова, па се одговори враћају путем који већ познаје. Веза од једног клијента до другог је нови ток који гејтвеј мора да прихвати и проследи, и многа постављања то намерно искључују да би клијенте држала изолованим једне од других. Потрошачке VPN услуге обично изолују подразумевано; корпоративни гејтвеји то понекад дозвољавају по групама.
Проверите смер пре него што било шта промените на хосту. Ако адреса тунела одговара са самог гејтвеја, али не од партнера, разлика је подешавање клијент-на-клијент на гејтвеју, и никакво уређивање локалног заштитног зида то не може да замени.
На крају, пронађите политику која дозвољава ток
Три слоја политике стоје између усмереног пакета и услуге која одговара: одлука VPN сервера о прослеђивању, заштитни зид хоста и било која облачна безбедносна група испред инстанце. Сва три морају да се сложе и она не успевају на различите начине, зато је симптом из горње табеле кориснији од поруке о грешци у прегледачу.
Заштитни зид хоста је слој који људи забораве после успешног повезивања, јер правило које дозвољава порт на LAN интерфејсу не дозвољава га аутоматски на интерфејсу тунела. Правила ограничена на интерфејс су исправан дизајн и истовремено уобичајен узрок услуге која ради из канцеларије, али не од куће. Читајте обим правила, а не број порта.
Филтрирање са стањем објашњава обрнут случај. Одлазна веза са вашег лаптопа ствара стање и одговори на њу се пропуштају без улазног правила. Веза колеге је потпуно нов ток без стања иза себе, па му је потребна изричита дозвола. Та асиметрија је цео разлог зашто радна сесија прегледача на вашем рачунару не говори ништа о томе да ли је услуга доступна споља.
Када једна провера не успе, промените дизајн, а не тунел
Ако је захтев да колега отвори вашу локалну услугу, искрен одговор је обично механизам направљен за улазни приступ. Обрнути SSH тунел је најмањи: ваш рачунар се одлазно повезује на хост до којег колега већ може да стигне, а слушалац постоји на том хосту.
ssh -N -R 8443:127.0.0.1:8443 [email protected]
Релеј захтева GatewayPorts clientspecified у конфигурацији свог SSH сервера, иначе се прослеђени слушалац везује на loopback на релеју и колега наилази на исто одбијање као пре. За све што траје дуже од једног поподнева, балансер оптерећења или ingress са провером здравља и сертификатом за објављено име је бољи алат, а тунел од локације до локације са путањама за обе подмреже прави је одговор када две мреже заиста треба да разговарају.
Сваки од тих дизајна чини изложеност експлицитном, и то је поента. VPN преноси пакете између мрежа за које сте већ били овлашћени; он не објављује услугу и не претвара лаптоп у хост окренут интернету. Задатак је да одлучите који од три слоја променити, а тунел је ретко један од њих.