Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
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:
Device tunnel: connects to specified VPN servers before users signs in to the device. Tunel urządzenia jest używany do scenariuszy łączności przed logowaniem i zarządzania urządzeniami.
User tunnel: connects only after a user logs on to the device. 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.
Always On VPN connections, whether a device tunnel or a user tunnel, are configured using the ProfileXML node in the VPNv2 configuration service provider (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. For more information about EAP settings, see EAP configuration.
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.
On the Start menu, type VPN to select VPN Settings. Press ENTER.
W okienku szczegółów wybierz pozycję Dodaj połączenie sieci VPN.
For VPN Provider, select Windows (built-in).
For Connection Name, enter 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
).For VPN type, select IKEv2.
W polu Typ informacji logowania wybierz pozycję Certyfikat.
Select Save.
Under Related Settings, select Change adapter options.
Right-click Contoso VPN, and select Properties.
On the Security tab, for Data encryption, select Maximum strength encryption.
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).
Select Properties to open Protected EAP Properties, and complete the following steps:
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.
Select Configure.
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.
Select OK to close Smart Card or other Certificate Properties.
Select OK to close Protected EAP Properties.
Select OK to close Contoso VPN Properties.
Close the Network Connections window.
In Settings, select Contoso VPN, and then select Connect. Połączenie sieci VPN powinno zostać nawiązane pomyślnie. You can verify the connection by checking the Network Connections window. The Contoso VPN connection should show as Connected. 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 ISE
jako Administrator.Skopiuj i wklej następujący skrypt programu PowerShell w
Windows PowerShell ISE
oknie 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_01
Dane wyjściowe powinny być podobne do poniższego przykładu (
ProfileXML
wartość 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. You can verify the connection by checking the Network Connections window. 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.
Related content
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.