Tunel je navázaný, brána odpovídá na ping a sdílená složka přesto končí vypršením časového limitu. Tahle kombinace je málokdy problém směrování: Windows zařadil podsíť adaptéru VPN do profilu Veřejný a každé povolovací pravidlo napsané pro Privátní nebo Doménový profil se nikdy neuplatnilo. Setkal jsem se s tím na noteboocích, které se do kanceláře dostanou bez potíží, i na serverech RRAS, které obsluhují všechny ostatní klienty, a oprava je krátká, jakmile pojmenujete profil, který je ve hře. Tady je pořadí, ve kterém pracuji, včetně kontroly, která vám řekne, kdy se máte zastavit před dalším krokem.

Zjistěte, na kterém profilu provoz skutečně přichází

Firewall Windows nemá jediný globální režim. Každé připojené rozhraní nese kategorii a příchozí pakety se filtrují podle kategorie rozhraní, na kterém přicházejí, takže o tom, co klient v tunelu dosáhne, rozhoduje profil adaptéru VPN, nikoli adaptér Wi-Fi nebo Ethernet vedle něj. Přečtěte si obě skutečnosti, než cokoli změníte:

Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory, IPv4Connectivity
Get-NetFirewallProfile -Name Public | Select-Object Name, Enabled, DefaultInboundAction

Při standardní instalaci OpenVPN nebo WireGuard se adaptér VPN objeví jako neidentifikovaná síť a skončí ve Veřejném profilu, což je výchozí hodnota pro každou síť, kterou Windows nedokáže klasifikovat: žádný řadič domény přes ni neodpověděl a žádný profil brány neodpovídal. Název rozhraní zde nehraje roli, takže nazvat adaptér „VPN“ nebo „Corp“ nic nezmění. DomainAuthenticated vyžaduje počítač připojený k doméně , který přes toto rozhraní skutečně dosáhne na řadič domény; rozdělený tunel, který přenáší jedinou podsíť, tento požadavek nesplní.

Pokud je pravidlo, které potřebujete, už omezené na pool VPN a už platí pro kategorii, kterou jste právě četli, zastavte se zde: filtrování není vaše vrstva a dalším místem, kam se podívat, je konfigurace služby. Ta kontrola zabere deset sekund a ušetří hodinu úprav pravidel. Názvy kategorií a to, co každá pokrývá, jsou zdokumentovány v referenční dokumentaci Get-NetConnectionProfile.

Potvrďte filtrování, ne směrování, než začnete upravovat pravidla

Ping je slabý test. ICMP může procházet, zatímco port služby se zahazuje, a hostitel může odpovídat z LAN, přitom odmítá stejný požadavek přes tunel. Otestujte port, který klient potřebuje, z klienta:

Test-NetConnection 10.8.0.1 -Port 445
Test-NetConnection 10.8.0.1 -Port 3389 -InformationLevel Detailed

Pokud test portu selže, oddělte obě vrstvy. Porucha tunelu nebo trasy se obvykle projeví tak, že z adresy brány nepřijde vůbec žádná odpověď, zatímco zahození firewallem ukáže bránu, která odpovídá, a port služby, který neodpovídá. Na serveru Windows, který publikuje pool přes RRAS, spusťte stejný test z klienta a přečtěte si profil samotného serveru: rozhraní RAS může sedět v kategorii, jejíž příchozí pravidla nikdy nezmiňují rozsah klientů, a proto stroj obsluhuje svou LAN a odmítá každého klienta v tunelu.

Když je výsledek stále nejednoznačný, zaznamenejte zahození pro profil, který je ve hře, a přečtěte si je:

Set-NetFirewallProfile -Name Public -LogBlocked True `
  -LogFileName "$env:systemroot\system32\LogFiles\Firewall\pfirewall.log"

Záznamy, které uvádějí adresu a port klienta s DROP, jsou průkazné a také vám řeknou, které pravidlo chybělo. Protokol bez jediného záznamu, zatímco se SYN klienta nikdy neobjeví, ukazuje před hostitele, takže se vraťte k tunelu, pravidlu NAT nebo trase poolu, než se dotknete dalšího objektu firewallu.

Omezte jedno příchozí pravidlo na pool klientů

Oprava je jediné příchozí povolovací pravidlo, jehož vzdálená adresa je pool, ne celý svět. Ze zvýšené relace:

New-NetFirewallRule -DisplayName "VPN clients - SMB 445" `
  -Direction Inbound -Action Allow -Protocol TCP -LocalPort 445 `
  -RemoteAddress 10.8.0.0/24 -Profile Public

Když je službou jediný binární soubor, dejte přednost pravidlu omezenému na program s -Program místo seznamu portů; to omezí výjimku jak na proces, tak na zdrojový rozsah.

Volba profilu je místo, kde se stejná chyba dělá opačným směrem. -Profile Public stačí, když je adaptér Veřejný a zůstává Veřejný. -Profile Any je obhajitelné, když služba musí fungovat bez ohledu na to, jak Windows adaptér klasifikuje, ale jen dokud vzdálený rozsah zůstává. Co nikdy obhajitelné není, je -RemoteAddress Any ve Veřejném profilu: takové pravidlo následuje notebook do každé kavárny a hotelové sítě, ke které se připojí, a otevírá port komukoli, kdo tuto podsíť sdílí.

Zapište pool vedle pravidla. -RemoteAddress 10.8.0.0/24 tiše přestane odpovídat v den, kdy se pool VPN přečísluje, a porucha vypadá přesně jako původní chyba, a proto stojí druhé odpoledne. Pojmenujte pravidla podle služby a zdrojového rozsahu, držte je pohromadě s -Group, a znovu je čtěte, kdykoli se definice poolu změní. Inventář pravidel, který projdete na jedné obrazovce, je lepší než správné pravidlo, které nikdo nenajde.

Měňte kategorii jen tehdy, když je kategorie rozhodnutím

Přepnutí rozhraní na Privátní také funguje a je to špatná výchozí volba. Profil Privátní nese dlouhý seznam vestavěných povolovacích pravidel pokrývajících sdílení souborů a tiskáren, zjišťování sítě, vzdálenou plochu a podle základny i další, takže překlasifikování adaptéru VPN je zapne všechny najednou pro každého klienta v tunelu. Jedno omezené pravidlo uděluje jednu službu jednomu rozsahu. Na notebooku, který se připojuje i k nedůvěryhodným sítím, ten rozdíl není kosmetický.

Jsou případy, kdy je klasifikace skutečně chybná: trvale zapnutý tunel nebo tunel mezi lokalitami, který přenáší kancelářskou podsíť, je důvěryhodná infrastruktura a označení tohoto adaptéru jako Privátní je legitimní designové rozhodnutí učiněné jednou zásadou, ne pro každý tiket. Když to uděláte, udělejte to výslovně:

Set-NetConnectionProfile -InterfaceAlias "OpenVPN TAP-Windows6" -NetworkCategory Private

Na spravovaném zařízení nejprve zkontrolujte, zda nastavení vlastní zásada skupiny nebo základna MDM. Pokud ano, místní změna se při příští aktualizaci vrátí a gpresult /h uvede zásadu, která ji vlastní; opravte to tam, ne na koncovém bodu.

Ověřte z obou konců a zanechte stopu

Ověřte tok, který uživatel nahlásil, z klienta, po změně:

Test-NetConnection 10.8.0.1 -Port 445
Get-NetFirewallRule -DisplayName "VPN clients - SMB 445" | Get-NetFirewallAddressFilter | Select-Object RemoteAddress
Get-NetFirewallRule -DisplayName "VPN clients - SMB 445" | Get-NetFirewallPortFilter | Select-Object Protocol, LocalPort

Pak uzavřete smyčku u věcí, které se příští týden rozbijí. Restartujte hostitele a otestujte znovu, protože pravidlo omezené na špatný profil funguje dál, dokud se adaptér nevrátí v jiné kategorii. Otestujte z druhého klienta, protože jeden klient se zastaralým lease může skrýt nesoulad poolu. Spočítejte pravidla, která jste přidali, proti těm, která jste odebrali, protože překrývající se výjimky jsou způsob, jak se z opravy na dva řádky stane filtrovací politika, kterou nikdo nemůže zkontrolovat.

Než to prohlásíte za hotové:

  • Profil uvedený v pravidle je profil rozhraní, na kterém provoz přichází.
  • Vzdálený rozsah je pool VPN a tento pool odpovídá tomu, co server skutečně přiděluje.
  • Žádné pravidlo, které jste přidali, nepoužívá -RemoteAddress Any ve Veřejném profilu.
  • Nic nebylo zakázáno, aby test prošel, a každá změna kategorie zaznamenává, kdo ji schválil.

Související články