Филтър за трафик във VPN или IPsec правило: къде Windows налага порт
Маршрутът вижда дестинация, не услуга. Решете дали ви трябва филтър за достъп в профила на VPN, или IPsec правило, изискващо защита за потока.
Един потребител на Windows VPN трябва да достига HTTPS на сървър и да не достига SMB на същия сървър, а маршрутът не може да изрази това. И двете заявки носят един и същ адрес на дестинацията, затова префиксът, който насочва трафика в тунела, носи и потока, който сте искали да изключите. Разделянето им изисква правило, което разглежда нещо по-фино от дестинацията.
Две различни намерения се изграждат с два различни механизма на Windows. Смесването им дава политика, която изглежда пълна, но налага половината от това, което сте имали предвид.
Маршрутът не може да раздели две услуги на един адрес
Собственото маршрутизиране на VPN е базирано на префикси: то решава кои дестинации минават през тунела и кои остават отвън. Това е правилният инструмент да държите една подмрежа отвътре, а друга отвън, и по своята конструкция е сляпо за портове. Филтърът за трафик в профила на VPN добавя второ измерение: той съпоставя протокол, отдалечен адрес и отдалечен порт за това, което може да премине през този интерфейс. IPsec правилото работи на трето място и изразява кои потоци изискват защита и с кого се автентикират. Трите отговарят на различни въпроси и нито едно не замества другите.
Започнете, като напишете желаното изречение. „Разреши само HTTPS“ е изречение за достъп, а „изисквай IPsec за HTTPS“ е изречение за защита, и двете водят до различна конфигурация.
Ограничението на достъпа и изискването за защита се разминават
Ограничението на достъпа казва какво може да използва интерфейса и се налага чрез разрешаване на набор и отказ на всичко останало. Изискването за защита казва кои потоци трябва да бъдат шифровани и автентикирани и се налага чрез договаряне на асоциации за сигурност, които им съответстват. Първото дава блокирана заявка, когато нещо не е в списъка, а второто дава връзка, която или носи изискваната защита, или не се установява. Да се отнасяте към едното като към другото е начинът политиката да не блокира нищо или да не защитава нищо.
Практическото следствие е, че списъкът за филтриране е затворен набор. След като в профила има списък, трафикът през този интерфейс, който не съответства на нито един запис, се отказва, затова DNS, обменът за автентикация и всяка зависимост, от която приложението се нуждае, изискват собствени записи. Добавянето на едно широко правило, за да заглуши отказите, отваря отново целия интерфейс и тихо отменя ограничението. Списъкът трябва да е толкова кратък, колкото позволява изискването, и толкова пълен, колкото изисква приложението.
Изградете списъка за филтриране като пълен набор
Профилите VPNv2 носят списъка за филтриране отделно от списъка с маршрути и записите му са свойства на профила, а не команди. За примера с HTTPS записът се нуждае от протокол 6, отдалечения адрес и отдалечения порт, разгърнати през канала за управление или ProfileXML за използвания тип профил. Определението за филтър за трафик на VPNv2 на Microsoft посочва, че условията в едно правило се комбинират, докато отделните идентификатори на правила действат като алтернативи.
TrafficFilterList/0/Protocol = 6
TrafficFilterList/0/RemoteAddressRanges = 10.60.4.20/32
TrafficFilterList/0/RemotePortRanges = 443
RouteList/0/Address = 10.60.4.0/24
Стойностите на портовете в този списък описват порта на услугата в далечния край, а локалният порт трябва да остане неограничен, за да не бъде филтриран ефимерният порт на източника на клиента. Обратният ред дава правило, което не съвпада с нищо, и главоблъсканица за цял следобед.
Запишете маршрута и филтъра като две отделни решения. Маршрутът решава, че този сървър се достига през тунела, а филтърът решава кои услуги могат да използват този път.
Докажете и двата изхода с две заявки
Тествайте разрешения поток и отказания поток поотделно и четете неуспеха, а не липсващата страница. Бърз отказ е решение на политиката, докато изтичане на времето по-вероятно е липсващ маршрут или услуга, която не слуша. Командите по-долу изпълняват и двете заявки и показват действащите правила.
Test-NetConnection 10.60.4.20 -Port 443
Test-NetConnection 10.60.4.20 -Port 445
Get-NetIPsecRule -DisplayName *Vpn*
Get-VpnConnection -Name Corp
Бърз отказ при теста за SMB с успешен тест за HTTPS е изходът, който филтърът е трябвало да даде. Отказ на двата порта означава, че в списъка липсва нещо, от което сесията се нуждае, а изтичане на времето и на двата сочи към маршрутизиране, а не към филтриране. Ако защитените потоци показват липса на асоциация за сигурност в изхода на IPsec, изискването за защита не е изпълнено дори когато връзката успее. Четете и четирите изхода заедно, защото всеки поотделно подкрепя различна история.
Записвайте действащия профил, набора от правила и политиката на партньора заедно с резултатите. Историческите бележки за съвместимост със стари клиенти на Windows не описват какво днешните функции на управляван профил поддържат на конкретен шлюз. Поведението, зависимо от версията, принадлежи в записа, а не в предположението.