Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak utworzyć zawsze włączone połączenie sieci VPN na urządzeniach klienckich z systemem Windows. Kontynuuje serię wdrażania zawsze włączonej sieci VPN w przykładowym środowisku. Wcześniej w tej serii wdrożono przykładową infrastrukturę i skonfigurowano szablony urzędu certyfikacji.
W tym samouczku nauczysz się następujących rzeczy:
- Utwórz i przetestuj ręczne połączenie sieci VPN użytkownika, które jest używane jako szablon dla połączenia zawsze włączonej sieci VPN.
- Przekonwertuj ręczne połączenie sieci VPN na zawsze włączone połączenie sieci VPN przy użyciu programu PowerShell.
Zawsze włączone połączenia sieci VPN można skonfigurować jako tunel urządzenia lub tunel użytkownika:
Tunel urządzenia: łączy się z określonymi serwerami sieci VPN, zanim użytkownicy zalogują się do urządzenia. Tunel urządzenia jest używany do scenariuszy łączności przed logowaniem i zarządzania urządzeniami.
Tunel użytkownika: łączy się tylko po zalogowaniu użytkownika do urządzenia. Tunel użytkownika umożliwia użytkownikom dostęp do zasobów organizacji za pośrednictwem serwerów sieci VPN.
Aby uzyskać więcej informacji na temat różnic między tunelem urządzenia i tunelem użytkownika, zobacz Konfigurowanie tuneli urządzeń sieci VPN w kliencie systemu Windows.
Zawsze włączone połączenia sieci VPN, niezależnie od tego, czy tunel urządzenia, czy tunel użytkownika, są konfigurowane przy użyciu węzła ProfileXML w dostawcy usług konfiguracji VPNv2 (CSP). Kroki opisane w tym samouczku pokazują, jak skonfigurować tunel użytkownika na jednym urządzeniu klienckim z systemem Windows. Te kroki można wykonać w małych środowiskach lub w celach testowych.
W przypadku większych środowisk należy użyć usługi Microsoft Intune lub programu Microsoft Configuration Manager do wdrożenia profilu zawsze włączonej sieci VPN na urządzeniach klienckich z systemem Windows. Aby uzyskać więcej informacji, zobacz Wdrażanie profilu zawsze włączonej sieci VPN na klientach z systemem Windows przy użyciu programu Microsoft Intune i Wdrażanie profilu zawsze włączonej sieci VPN na klientach z systemem Windows przy użyciu programu Microsoft Configuration Manager.
Prerequisites
Aby ukończyć kroki w tym samouczku, potrzebujesz:
Aby wykonać wszystkie kroki opisane w poprzednich samouczkach:
Urządzenie klienckie z systemem Windows z poprzedniego samouczka z zainstalowanym prawidłowym certyfikatem użytkownika do testowania połączenia sieci VPN.
Tworzenie i testowanie ręcznego połączenia sieci VPN użytkownika
Najpierw należy utworzyć połączenie klienta sieci VPN, aby sprawdzić, czy testowy klient sieci VPN może nawiązać pomyślne połączenie sieci VPN. To połączenie umożliwia również utworzenie ustawień protokołu EAP (Extensible Authentication Protocol) do użycia dla połączenia zawsze włączonej sieci VPN. Aby uzyskać więcej informacji na temat ustawień protokołu EAP, zobacz Konfiguracja protokołu EAP.
Zaloguj się do urządzenia klienckiego z systemem Windows przyłączonego do domeny jako użytkownik sieci VPN utworzony wcześniej w sekcji Tworzenie użytkownika testowego usługi Active Directory.
W menu Start wpisz VPN , aby wybrać pozycję Ustawienia sieci VPN. Naciśnij ENTER.
W okienku szczegółów wybierz pozycję Dodaj połączenie sieci VPN.
W polu Dostawca sieci VPN wybierz pozycję Windows (wbudowane).
W polu Nazwa połączenia wprowadź wartość Contoso VPN.
W polu Nazwa serwera lub adres wprowadź zewnętrzną w pełni kwalifikowaną nazwę domeny (FQDN) serwera sieci VPN (na przykład
vpn.contoso.com).W polu Typ sieci VPN wybierz pozycję IKEv2.
W polu Typ informacji logowania wybierz pozycję Certyfikat.
Wybierz Zapisz.
W obszarze Powiązane ustawienia wybierz pozycję Zmień opcje adaptera.
Kliknij prawym przyciskiem myszy pozycję Contoso VPN, a następnie wybierz pozycję Właściwości.
Na karcie Zabezpieczenia w polu Szyfrowanie danych wybierz pozycję Maksymalna siła szyfrowania.
Wybierz pozycję Użyj rozszerzonego protokołu uwierzytelniania (EAP). Następnie w obszarze Użyj rozszerzonego protokołu uwierzytelniania (EAP) wybierz pozycję Microsoft: Protected EAP (PEAP) (Szyfrowanie włączone).
Wybierz pozycję Właściwości , aby otworzyć chronione właściwości protokołu EAP i wykonaj następujące kroki:
W polu Połącz z tymi serwerami wprowadź nazwę hosta serwera NPS.
W obszarze Zaufane główne urzędy certyfikacji wybierz urząd certyfikacji, który wystawił certyfikat serwera NPS (na przykład
contoso-CA).W obszarze Powiadomienia przed nawiązaniem połączenia wybierz pozycję Nie pytaj użytkownika o autoryzowanie nowych serwerów ani zaufanych urzędów certyfikacji.
W obszarze Wybierz metodę uwierzytelniania wybierz pozycję Karta inteligentna lub inny certyfikat.
Wybierz Konfiguruj.
Wybierz pozycję Użyj certyfikatu na tym komputerze.
W polu Połącz z tymi serwerami wprowadź nazwę hosta serwera NPS.
W sekcji Zaufane główne urzędy certyfikacji wybierz urząd certyfikacji, który wydał certyfikat dla serwera NPS.
Wybierz pozycję Nie monituj użytkownika o autoryzację nowych serwerów ani zaufanych urzędów certyfikacji.
Wybierz przycisk OK , aby zamknąć kartę inteligentną lub inne właściwości certyfikatu.
Wybierz przycisk OK , aby zamknąć chronione właściwości protokołu EAP.
Wybierz przycisk OK , aby zamknąć pozycję Właściwości sieci VPN firmy Contoso.
Zamknij okno Połączenia sieciowe .
W obszarze Ustawienia wybierz pozycję Contoso VPN, a następnie wybierz pozycję Połącz. Połączenie sieci VPN powinno zostać nawiązane pomyślnie. Połączenie można zweryfikować, sprawdzając okno Połączenia sieciowe . Połączenie sieci VPN firmy Contoso powinno być wyświetlane jako Połączone. Sprawdź, czy możesz połączyć się z zasobem po drugiej stronie tunelu VPN, na przykład z udziałem plików lub serwerem internetowym.
Po upewnieniu się, że połączenie sieci VPN zakończy się pomyślnie, odłącz się od połączenia sieci VPN.
Important
Upewnij się, że połączenie szablonu VPN z serwerem VPN zakończyło się pomyślnie. Dzięki temu ustawienia protokołu EAP są poprawne przed ich użyciem w następnej sekcji. Przed kontynuowaniem należy nawiązać połączenie co najmniej raz; w przeciwnym razie profil nie zawiera wszystkich informacji niezbędnych do nawiązania połączenia z siecią VPN.
Konwertowanie ręcznego połączenia sieci VPN na zawsze włączone połączenie sieci VPN
Następnie przekonwertujesz ręczne połączenie sieci VPN na zawsze włączone połączenie sieci VPN przy użyciu skryptu programu PowerShell.
Jako ten sam użytkownik na urządzeniu klienckim z systemem Windows otwórz
Windows PowerShell ISEjako Administrator.Skopiuj i wklej następujący skrypt programu PowerShell w
Windows PowerShell ISEoknie edytora, a następnie pamiętaj, aby zmienić osiem wartości zmiennych dla własnych.Rozwiń tę sekcję, aby wyświetlić skrypt programu PowerShell.
# Set the variables for the VPN profile. $domain = 'corp' # Name of the domain. $templateName = 'Contoso VPN' # Name of the test VPN connection you created in the tutorial. $profileName = 'Contoso AlwaysOn VPN' # Name of the profile we are going to create. $servers = 'aov-vpn.contoso.com' # Public or routable IP address or DNS name for the VPN gateway. $dnsSuffix = 'corp.contoso.com' # Specifies one or more commas separated DNS suffixes. $domainName = '.corp.contoso.com' # Used to indicate the namespace to which the policy applies. Contains `.` prefix. $dnsServers = '10.10.0.6' # List of comma-separated DNS Server IP addresses to use for the namespace. $trustedNetwork = 'corp.contoso.com' # Comma-separated string to identify the trusted network. # Get the EAP settings for the current profile called $templateName $connection = Get-VpnConnection -Name $templateName if(!$connection) { $message = "Unable to get $templateName connection profile: $_" Write-Host "$message" exit } $EAPSettings= $connection.EapConfigXmlStream.InnerXml $profileNameEscaped = $profileName -replace ' ', '%20' # Define ProfileXML $profileXML = @(" <VPNProfile> <DnsSuffix>$dnsSuffix</DnsSuffix> <NativeProfile> <Servers>$servers</Servers> <NativeProtocolType>IKEv2</NativeProtocolType> <Authentication> <UserMethod>Eap</UserMethod> <Eap> <Configuration> $EAPSettings </Configuration> </Eap> </Authentication> <RoutingPolicyType>SplitTunnel</RoutingPolicyType> </NativeProfile> <AlwaysOn>true</AlwaysOn> <RememberCredentials>true</RememberCredentials> <TrustedNetworkDetection>$trustedNetwork</TrustedNetworkDetection> <DomainNameInformation> <DomainName>$domainName</DomainName> <DnsServers>$dnsServers</DnsServers> </DomainNameInformation> </VPNProfile> ") # Output the XML for possible use in Intune $profileXML | Out-File -FilePath ($env:USERPROFILE + '\desktop\VPN_Profile.xml') # Escape special characters in the profile (<,>,") $profileXML = $profileXML -replace '<', '<' $profileXML = $profileXML -replace '>', '>' $profileXML = $profileXML -replace '"', '"' # Define WMI-to-CSP Bridge properties $nodeCSPURI = "./Vendor/MSFT/VPNv2" $namespaceName = "root\cimv2\mdm\dmmap" $className = "MDM_VPNv2_01" try { # Determine user SID for VPN profile. $WmiLoggedOnUsers = (Get-WmiObject Win32_LoggedOnUser).Antecedent If($WmiLoggedOnUsers.Count -gt 1) { $WmiLoggedOnUsers = $WmiLoggedOnUsers -match "Domain=""$domain""" } $WmiUserValid = ($WmiLoggedOnUsers | Select-Object -Unique -First 1) -match 'Domain="([^"]+)",Name="([^"]+)"' If(-not $WmiUserValid){ Throw "Returned object is not a valid WMI string" } $UserName = "$($Matches[1])\$($Matches[2])" $ObjUser = New-Object System.Security.Principal.NTAccount($UserName) $Sid = $ObjUser.Translate([System.Security.Principal.SecurityIdentifier]) $SidValue = $Sid.Value $message = "User SID is $SidValue." Write-Host "$message" } catch [Exception] { $message = "Unable to get user SID. $_" Write-Host "$message" exit } try { # Define WMI session. $session = New-CimSession $options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions $options.SetCustomOption("PolicyPlatformContext_PrincipalContext_Type", "PolicyPlatform_UserContext", $false) $options.SetCustomOption("PolicyPlatformContext_PrincipalContext_Id", "$SidValue", $false) } catch { $message = "Unable to create new session for $profileName profile: $_" Write-Host $message exit } try { # Detect and delete previous VPN profile. $deleteInstances = $session.EnumerateInstances($namespaceName, $className, $options) foreach ($deleteInstance in $deleteInstances) { $InstanceId = $deleteInstance.InstanceID if ("$InstanceId" -eq "$profileNameEscaped") { $session.DeleteInstance($namespaceName, $deleteInstance, $options) $message = "Removed $profileName profile $InstanceId" Write-Host "$message" } else { $message = "Ignoring existing VPN profile $InstanceId" Write-Host "$message" } } } catch [Exception] { $message = "Unable to remove existing outdated instance(s) of $profileName profile: $_" Write-Host $message exit } try { # Create the VPN profile. $newInstance = New-Object Microsoft.Management.Infrastructure.CimInstance $className, $namespaceName $property = [Microsoft.Management.Infrastructure.CimProperty]::Create("ParentID", "$nodeCSPURI", "String", "Key") $newInstance.CimInstanceProperties.Add($property) $property = [Microsoft.Management.Infrastructure.CimProperty]::Create("InstanceID", "$profileNameEscaped", "String", "Key") $newInstance.CimInstanceProperties.Add($property) $property = [Microsoft.Management.Infrastructure.CimProperty]::Create("ProfileXML", "$profileXML", "String", "Property") $newInstance.CimInstanceProperties.Add($property) $session.CreateInstance($namespaceName, $newInstance, $options) $message = "Created $profileName profile." Write-Host "$message" } catch [Exception] { $message = "Unable to create $profileName profile: $_" Write-Host "$message" exit } $message = "Always On VPN connection created successfully." Write-Host "$message"Uruchom skrypt.
Sprawdź, czy skrypt zakończył się pomyślnie, uruchamiając następujące polecenie w oknie edytora
Windows PowerShell ISE:Get-CimInstance -Namespace root\cimv2\mdm\dmmap -ClassName MDM_VPNv2_01Dane wyjściowe powinny być podobne do poniższego przykładu (
ProfileXMLwartość jest obcięta w celu czytelności):AlwaysOn : True ByPassForLocal : DeviceTunnel : DnsSuffix : corp.contoso.com EdpModeId : InstanceID : Contoso%20AlwaysOn%20VPN LockDown : ParentID : ./Vendor/MSFT/VPNv2 ProfileXML : <VPNProfile>...</VPNProfile> RegisterDNS : RememberCredentials : True TrustedNetworkDetection : corp.contoso.com PSComputerName :Połączenie VPN typu „Zawsze włączone” powinno zostać utworzone i nawiązane pomyślnie. Połączenie można zweryfikować, sprawdzając okno Połączenia sieciowe . Zawsze włączone połączenie sieci VPN firmy Contoso powinno być wyświetlane jako Połączone. Sprawdź, czy możesz połączyć się z zasobem po drugiej stronie tunelu VPN, na przykład z udziałem plików lub serwerem internetowym.
Treści powiązane
Teraz połączysz się z serwerem sieci VPN przy użyciu połączenia zawsze włączonej sieci VPN, oto kilka dodatkowych zasobów, które ułatwiają wdrożenie zawsze włączonej sieci VPN:
Konfigurowanie tuneli urządzeń sieci VPN w kliencie systemu Windows.
Aby uzyskać bardziej szczegółowe informacje na temat opcji konfiguracji zawsze włączonej sieci VPN dla dostawcy usług konfiguracji (CSP), zobacz VPNv2 configuration service provider.
Aby rozwiązać problemy z zawsze włączoną siecią VPN, zobacz Rozwiązywanie problemów z zawsze włączoną siecią VPN.