Ваш тунел је активан, пролаз одговара на ping, а дељење датотека ипак истиче. Та комбинација је ретко проблем усмеравања: Windows је подмрежу VPN адаптера ставио у јавни профил и свако правило дозволе написано за приватни или доменски профил никада се није применило. Сретао сам то на преносним рачунарима који без проблема долазе до канцеларије и на RRAS серверима који служе свим осталим клијентима, а поправка је кратка чим именујете профил који је у игри. Ево редоследа којим радим, уз проверу која вам каже када да станете пре следећег корака.

Утврдите на ком профилу саобраћај заиста долази

Windows заштитни зид нема јединствен глобални режим. Свако повезано сучеље носи категорију, а долазни пакети се филтрирају према категорији сучеља на које долазе, па профил VPN адаптера одлучује шта тунелски клијент може да достигне, а не Wi-Fi или Ethernet адаптер поред њега. Прочитајте обе чињенице пре него што било шта промените:

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

Код стандардне инсталације OpenVPN-а или WireGuard-а VPN адаптер се појављује као неидентификована мрежа и завршава у јавном профилу, што је подразумевана вредност за сваку мрежу коју Windows не може да класификује: ниједан контролер домена није одговорио преко ње и ниједан профил пролаза се није подударио. Назив сучеља овде није важан, па називање адаптера „VPN” или „Corp” ништа не мења. DomainAuthenticated захтева рачунар придружен домену , који преко тог сучеља заиста може да достигне контролер домена; подељени тунел који преноси само једну подмрежу неће испунити услов.

Ако је правило које вам треба већ ограничено на VPN пул и већ се примењује на категорију коју сте управо прочитали, зауставите се овде: филтрирање није ваш слој, а следеће место за преглед је конфигурација услуге. Та провера траје десет секунди и штеди сат уређивања правила. Називи категорија и шта свака покрива документовани су у референци Get-NetConnectionProfile.

Потврдите филтрирање, а не усмеравање, пре него што уредите правила

Ping је слаб тест. ICMP може да прође док се порт услуге одбацује, а домаћин може да одговори из LAN-а док одбија исти захтев преко тунела. Тестирајте порт који клијент тражи, са клијента:

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

Ако тест порта не успе, раздвојите два слоја. Квар тунела или руте обично се огледа као никакав одговор са адресе пролаза, док одбацивање заштитног зида показује пролаз који одговара и порт услуге који не одговара. На Windows серверу који објављује пул преко RRAS-а покрените исти тест са клијента и прочитајте сопствени профил сервера: RAS сучеље може да седи у категорији чија долазна правила никада не помињу распон клијената, и зато машина служи свој LAN и одбија сваког тунелског клијента.

Када је резултат још двосмислен, забележите одбацивања за профил који је у игри и прочитајте их:

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

Уноси који именују адресу и порт клијента са DROP су одлучујући и такође вам кажу које је правило недостајало. Дневник без иједног записа, док се SYN клијента никада не појављује, упућује на део пре домаћина, па се вратите тунелу, NAT правилу или рути пула пре него што додирнете још један објекат заштитног зида.

Ограничите једно долазно правило на пул клијената

Поправка је једно долазно правило дозволе чија је удаљена адреса пул, а не цео свет. Из подигнуте сесије:

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

Када је услуга једна бинарна датотека, дајте предност правилу ограниченом на програм са -Program уместо списка портова; то ограничава изузетак и на процес и на изворни распон.

Избор профила је место где се иста грешка чини у супротном смеру. -Profile Public је довољан када је адаптер јаван и остаје јаван. -Profile Any је брањив када услуга мора да ради без обзира на то како Windows класификује адаптер, али само док удаљени обухват остаје. Оно што никада није брањиво јесте -RemoteAddress Any на јавном профилу: то правило прати преносни рачунар у сваку мрежу кафића и хотела којој се придружи и отвара порт свакоме ко дели ту подмрежу.

Запишите пул поред правила. -RemoteAddress 10.8.0.0/24 тихо престаје да се поклапа оног дана када се VPN пул пренумерише, а квар изгледа тачно као изворна грешка, зато кошта још једно поподне. Именујте правила по услузи и изворном распону, држите их заједно са -Group, и поново их читајте када се дефиниција пула промени. Попис правила који можете да прегледате на једном екрану бољи је од исправног правила које нико не може да пронађе.

Мењајте категорију само када је категорија одлука

Пребацивање сучеља на приватно такође ради, и то је погрешна подразумевана вредност. Приватни профил носи дугачак списак уграђених правила дозволе која покривају дељење датотека и штампача, откривање мреже, удаљену радну површину и још више зависно од основе, па рекласификација VPN адаптера укључује их све одједном за сваког клијента у тунелу. Једно ограничено правило даје једну услугу једном распону. На преносном рачунару који се придружује и непоузданим мрежама та разлика није козметичка.

Постоје случајеви у којима је класификација заиста погрешна: тунел који је увек укључен или тунел између локација који преноси канцеларијску подмрежу поуздана је инфраструктура, а означавање тог адаптера приватним легитимна је дизајнерска одлука донета једном, правилником, а не по сваком захтеву. Када је донесете, донесите је изричито:

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

На управљаном уређају прво проверите да ли поставку држи групна политика или MDM основа. Ако држи, локална промена се поништава при следећем освежавању, а gpresult /h ће именовати правилник који је држи; поправите то тамо, а не на крајњој тачки.

Проверите са оба краја и оставите траг

Проверите ток који је корисник пријавио, са клијента, након промене:

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

Затим затворите петљу на стварима које ће се покварити следеће недеље. Поново покрените домаћина и поново тестирајте, јер правило ограничено на погрешан профил наставља да ради док се адаптер не врати у другу категорију. Тестирајте са другог клијента, јер један клијент са застарелим lease-ом може да сакрије неслагање пула. Пребројте правила која сте додали наспрам оних која сте уклонили, јер преклапајуће изнимке су начин на који поправка од два реда постаје политика филтрирања коју нико не може да прегледа.

Пре него што то прогласите готовим:

  • Профил наведен у правилу је профил сучеља на које саобраћај долази.
  • Удаљени обухват је VPN пул, а тај пул одговара ономе што сервер стварно додељује.
  • Ниједно правило које сте додали не користи -RemoteAddress Any на јавном профилу.
  • Ништа није онемогућено да би тест прошао, а свака промена категорије бележи ко ју је одобрио.

Повезани чланци