Ar ugniasienė blokuoja VPN? Žingsnis po žingsnio patikra
Skirtasis laikas neįvardija kaltininko. Peržiūrėkite klausytoją, kelią ir saugos žurnalą iš eilės ir pakeiskite vieną taisyklę tik tada, kai įrodymai į ją nurodo.
Vienas VPN skirtasis laikas įrodo, kad negautas joks naudingas atsakymas, ir nieko neįrodo apie priežastį. Profilis gali nurodyti neteisingą prievadą, serveris gali būti išjungtas, arba užklausa gali atkeliauti be veikiančio grįžimo kelio. Kiekvienas iš jų palieka skirtingą pėdsaką, o būtent pėdsakas pasako, kurią taisyklę liesti. Pereikite keturis žemiau pateiktus etapus iš eilės. Sustokite iškart, kai vienas jų paaiškina simptomą.
1 etapas: patvirtinkite serverį ir transportą
Serverio vardą, transportą ir prievadą skaitykite iš dabartinio operatoriaus profilio, o ne iš vietinio pakeitimo. Nešiojamajame pakeistas prievadas negali sukurti klausytojo viešame serveryje, ir šis neatitikimas duoda tokį patį skirtąjį laiką kaip blokavimas. Jei profilis siūlo palaikomą alternatyvų transportą, pažymėkite jį kaip atsarginį, o ne kaip sprendimą. Išspręskite vardą ir palyginkite atsakymą su adresu, kurį operatorius paskelbė.
Pasenęs DNS įrašas siunčia klientą į mazgą, kuris niekada neatsakė. Tai dar vienas gedimas, imituojantis filtrą, ir jam atmesti pakanka vienos užklausos.
Įrašykite abi reikšmes į bilietą. Kiekvienas vėlesnis palyginimas jas naudoja, o bilietas be jų pradeda tyrimą iš naujo.
2 etapas: įrodykite kelią vienu kontroliuojamu palyginimu
Palikite įrenginį ir profilį nepakeistus ir išbandykite kitą patikimą prieigos tinklą. Jei ten tunelis pakyla, skirtumas yra pradinis kelias arba jo politika. Jei pradiniame tinkle veikia antras patvirtintas įrenginys, skirtumas yra pirmas įrenginys. Vienas iš šių dviejų palyginimų beveik visada yra lemiamas.
Pirmiausia užbaikite bet kokį teisėtą tinklo prisijungimą, nes belaisvio portalas atrodo kaip blokavimas, kol jis nebaigtas.
Tikrinkite prievadą, kurį iš tikrųjų naudojate, o TCP rezultatą traktuokite kaip informaciją tik apie TCP.
Resolve-DnsName vpn.corp.example
tracert -h 8 -w 500 vpn.corp.example
Test-NetConnection vpn.corp.example -Port 443 -InformationLevel DetailedSėkmingas TCP rankos paspaudimas 443 prievade reiškia, kad ten atsakė klausytojas. Jis nieko nesako apie UDP klausytoją 51820 prievade ir apie tai, ar derybos baigtos.
3 etapas: perskaitykite saugos įvykius, susijusius su gedimo momentu
Ugniasienės įvykiai yra stipriausias turimas įrodymas, ir jie turi išlygą, kurią verta pasakyti pirmiausia. Daugelyje numatytųjų profilių registravimas išjungtas, todėl patikrinkite, ar atitinkamas profilis registruoja atmetimus, prieš skaitydami tuščią žurnalą kaip nekaltybės įrodymą. Kai registravimas įjungtas, įvykis nurodo taisyklę, kryptį ir adresus, o tai yra būtent tai, ko reikia taisyklės pakeitimui. Programų taisyklės ir prievadų taisyklės yra atskiri objektai, o valdoma politika gali viršyti vietinį nustatymą. Patvirtinkite, kurią kliento programą ir kurią paslaugą taisyklė iš tikrųjų apima.
Rinkite profilio būseną ir naujausius įvykius iš mašinos, kuri nepavyko, o ne iš gretimo mazgo.
Palyginkite įvykio laiką su savo bandymo laiku, nes sutampantis taisyklės pavadinimas su kitu laiko ženklu yra atsitiktinumas.
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, LogBlocked
Get-NetFirewallRule -Enabled True -Direction Outbound | Where-Object DisplayName -match 'VPN'
Get-WinEvent -LogName 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall' -MaxEvents 20Serveryje, kurį administruojate, paklauskite, ar užklausa apskritai pasiekė klausytoją. Atvykstantis paketas be atsakymo yra perdavimo arba grįžimo maršruto problema. Užklausa, kuri niekada nepasirodo, yra filtravimo arba adresavimo problema.
4 etapas: patikrinkite perdavimą po to, kai tunelis pakyla
Ugniasienė gali leisti sesiją ir vis tiek atmesti viską, ką sesija nori pasiekti. Perdavimo sysctl, NAT taisyklės ir grįžimo maršrutai yra po autentifikavimo, o plati išimtis VPN prievadui nesutvarko nė vieno jų. Atskirai patikrinkite vieną vidinę paskirties vietą ir vieną interneto paskirties vietą, nes jos paprastai nepavyksta dėl skirtingų priežasčių. Jei vidiniai vardai nepavyksta, o adresai veikia, prieš bet kurią taisyklę pažiūrėkite į stumiamą DNS.
Serveryje paleiskite tris žemiau pateiktas patikras, kol klientas prisijungęs ir bando nepavykstančią užklausą.
Tunelio sąsajos skaitikliai yra esmė, nes jie rodo, ar paketai įėjo ir ar kas nors išėjo.
sysctl net.ipv4.ip_forward
nft list ruleset | grep -n -E 'forward|masquerade'
tcpdump -ni tun0 -c 10Kai paketai atvyksta į tunelį ir niekas neišeina paskirties link, įtariamasis yra perdavimas arba NAT. Kai niekas neatvyksta, sesija pakilusi, bet klientas nesiunčia, o vieta, kur žiūrėti, yra kliento maršrutų lentelė.
Patikrinkite pataisą ir pašalinkite tai, kas nepadėjo
Po patvirtintos pataisos pakartokite tiksliai tą testą, kuris nepavyko, ir įrašykite rezultatą prie to paties profilio ir įrenginio. Tada pašalinkite bet kokią laikiną išimtį, kuri nepakeitė rezultato, nes nenaudojamos išimtys kaupiasi ir kiekviena yra sprendimas, kurio niekas neprisimena. Likusį palikite siaurą: viena paskirties vieta, vienas prievadas, viena kryptis, vienas atsakingas asmuo.
Dar kartą paleiskite tas pačias tris komandas ir palyginkite jas su išvestimis, kurias išsaugojote prieš pakeitimą.
Test-NetConnection vpn.corp.example -Port 443 -InformationLevel Detailed
tracert -h 8 -w 500 vpn.corp.example
Get-NetFirewallRule -Enabled True | Where-Object DisplayName -match 'VPN' | Select-Object DisplayName, ActionKai palyginimo tinklas veikia, pradinis tinklas vis dar nepavyksta, o įvykiai lieka tušti, likęs įtariamasis yra kelias, o ne mazgas. Perduokite tai tinklo savininkui kaip konkretų teiginį, pridėję abu palyginimo rezultatus. Tai geresnė vieta sustoti nei išjungtas ugniasienės profilis.