Jeden użytkownik VPN w Windows ma dotrzeć do HTTPS na serwerze, a nie do SMB na tym samym serwerze, i trasa nie może tego wyrazić. Oba żądania niosą ten sam adres docelowy, więc prefiks, który wysyła ruch do tunelu, niesie też przepływ, który chciałeś wykluczyć. Rozdzielenie ich wymaga reguły, która bada coś drobniejszego niż cel.

Dwa różne zamiary buduje się dwoma różnymi mechanizmami Windows. Zmieszanie ich daje politykę, która wygląda na kompletną, a wymusza połowę tego, co miałeś na myśli.

Trasa nie rozdzieli dwóch usług na jednym adresie

Natywne trasowanie VPN opiera się na prefiksach: decyduje, które cele jadą przez tunel, a które zostają na zewnątrz. To właściwe narzędzie, by trzymać jedną podsieć wewnątrz, a drugą na zewnątrz, i z konstrukcji jest ślepe na porty. Filtr ruchu w profilu VPN dodaje drugi wymiar: dopasowuje protokół, adres zdalny i port zdalny do tego, co może przekroczyć ten interfejs. Reguła IPsec działa w trzecim miejscu i wyraża, które przepływy wymagają ochrony i z kim się uwierzytelniają. Trzy odpowiadają na różne pytania i żadne nie zastępuje pozostałych.

Zacznij od zapisania zamierzonego zdania. Zezwalaj tylko na HTTPS to zdanie dostępu, a wymagaj IPsec dla HTTPS to zdanie ochrony, i oba prowadzą do innej konfiguracji.

Ograniczenie dostępu i wymóg ochrony rozchodzą się

Ograniczenie dostępu mówi, co może używać interfejsu, i jest wymuszane przez zezwolenie na zbiór i odrzucenie wszystkiego innego. Wymóg ochrony mówi, które przepływy muszą być zaszyfrowane i uwierzytelnione, i jest wymuszany przez negocjowanie pasujących do nich asocjacji bezpieczeństwa. Pierwsze daje zablokowane żądanie, gdy czegoś nie ma na liście, a drugie daje połączenie, które albo niesie wymaganą ochronę, albo się nie nawiązuje. Traktowanie jednego jako drugiego to droga, na której polityka kończy się blokowaniem niczego albo ochroną niczego.

Praktyczną konsekwencją jest to, że lista filtrów jest zbiorem zamkniętym. Gdy lista istnieje w profilu, ruch przez ten interfejs, który nie pasuje do żadnego wpisu, jest odrzucany, więc DNS, wymiany uwierzytelniania i każda zależność potrzebna aplikacji wymagają własnych wpisów. Dodanie jednej szerokiej reguły, by uciszyć odrzucenia, otwiera cały interfejs ponownie i po cichu unieważnia ograniczenie. Lista powinna być tak krótka, jak pozwala wymóg, i tak pełna, jak wymaga aplikacja.

Zbuduj listę filtrów jako pełny zbiór

Profile VPNv2 niosą listę filtrów oddzielnie od listy tras, a jej wpisy są właściwościami profilu, a nie poleceniami. Dla przykładu HTTPS wpis potrzebuje protokołu 6, adresu zdalnego i portu zdalnego, wdrożonych przez kanał zarządzania lub ProfileXML dla używanego typu profilu. Definicja filtra ruchu VPNv2 firmy Microsoft stwierdza, że warunki w obrębie jednej reguły łączą się, a osobne identyfikatory reguł działają jako alternatywy.

TrafficFilterList/0/Protocol            = 6
TrafficFilterList/0/RemoteAddressRanges = 10.60.4.20/32
TrafficFilterList/0/RemotePortRanges    = 443
RouteList/0/Address                     = 10.60.4.0/24

Wartości portów na tej liście opisują port usługi na dalekim końcu, a port lokalny powinien pozostać nieograniczony, aby efemeryczny port źródłowy klienta nie został odfiltrowany. Zrobienie tego odwrotnie daje regułę, która do niczego nie pasuje, i łamigłówkę na całe popołudnie.

Zapisz trasę i filtr jako dwie osobne decyzje. Trasa decyduje, że do tego serwera dociera się przez tunel, a filtr decyduje, które usługi mogą używać tej drogi.

Udowodnij oba wyniki dwoma żądaniami

Przetestuj przepływ dozwolony i przepływ odrzucony osobno i czytaj błąd, a nie brakującą stronę. Szybkie odrzucenie to decyzja polityki, natomiast przekroczenie czasu to raczej brakująca trasa albo usługa, która nie nasłuchuje. Polecenia poniżej uruchamiają oba żądania i pokazują obowiązujące reguły.

Test-NetConnection 10.60.4.20 -Port 443
Test-NetConnection 10.60.4.20 -Port 445
Get-NetIPsecRule -DisplayName *Vpn*
Get-VpnConnection -Name Corp

Szybkie odrzucenie w teście SMB przy udanym teście HTTPS to wynik, który filtr miał dać. Odrzucenie na obu portach oznacza, że na liście brakuje czegoś, czego potrzebuje sesja, a przekroczenie czasu na obu wskazuje na trasowanie, a nie filtrowanie. Jeśli chronione przepływy pokazują brak asocjacji bezpieczeństwa w wyniku IPsec, wymóg ochrony nie jest spełniony nawet wtedy, gdy połączenie się udaje. Czytaj wszystkie cztery wyniki razem, bo każdy z osobna wspiera inną historię.

Zapisz obowiązujący profil, zestaw reguł i politykę drugiej strony razem z wynikami. Historyczne uwagi o zgodności ze starszymi klientami Windows nie opisują, co dzisiejsze funkcje profilu zarządzanego obsługują na konkretnej bramie. Zachowanie zależne od wersji należy do zapisu, a nie do założenia.

Powiązane artykuły