Always On VPN – Device Tunnel konfigurieren

In Teil 1 dieser Serie habe ich die Infrastruktur für mein Always On VPN-Lab vorgestellt. Anschließend habe ich in Teil 2 die automatische Registrierung der Computer- und VPN Benutzerzertifikate mittels Gruppenrichtlinien konfiguriert, die empfohlenen AD-Gruppen und Zertifikatsvorlagen erstellt. Das Zertifikat für NPS Serverauthentifizierung, das IKEv2-Zertifikat und das SSL-Zertifikat für SSTP am VPN Server habe ich in Teil 3  installiert. In Teil 4 habe ich den Remote Access Server für Always on VPN installiert und konfiguriert. Die Konfiguration des NPS Servers kann man in Teil 5 nachlesen. In Teil 6 habe ich auf CLIENT01 eine VPN-Verbindung mit dem Namen Template erstellt. Augrund dieser Vorlage habe ich in Teil 7 das Always On VPN – VPN-Profil erstellt. Zum Abschluss werde ich noch den Always On VPN – Device Tunnel konfigurieren.

Mit Windows 10 1709 hat Microsoft den Device Tunnel für Always On VPN eingeführt. Damit bietet diese Lösung die gleichen Features wie DirectAccess. Der Geräte- oder Device Tunnel stellt eine Verbindung zur Domäne her, bevor sich ein Benutzer anmeldet. Das hat den Vorteil, dass keine gespeicherten Anmeldeinformationen vorhanden sein müssen. Mehr Infos zum Device Tunnel gibt es bei hier.

Voraussetzung für den Gerätetunnel ist ein Computerzertifikat mit der erweiterten Schlüsselverwendung Clientauthentifizierung (1.3.6.1.5.5.7.3.2).

Die passende Zertifikatsvorlage und die automatische Verteilung der Zertifikate habe ich in Teil 2 beschrieben.

Computerzertifikats-Authentifizierung am VPN-Server aktivieren

  1. Als Administrator an VPN01 anmelden
  2. PowerShell als Administrator starten
  3. Mit folgenden Befehlen die Computerzertifikats-Authentifizierung aktivieren
    $VPNRootCertAuthority = "Einfaches-Netzwerk Root CA"
    
    $RootCACert = Get-ChildItem -Path cert:LocalMachine\root | Where-Object {$_.Subject -Like "*$VPNRootCertAuthority*" })
    
    Set-VpnAuthProtocol -UserAuthProtocolAccepted Certificate, EAP -RootCertificateNameToAccept $RootCACert -PassThru
  4. Das Authentifizierungsprotokoll wurde erfolgreich konfiguriert
  5. Von VPN01 abmelden

Das Gerätetunnel VPN-Profil erstellen

USER01 ist immer noch in der lokalen Admininstratoren-Gruppen von CLIENT01.

  1. Als USER01 an CLIENT01 anmelden
  2. Sample VPN profileXML von hier nach C:\Temp\VPN_Profile_Device.xml kopieren
  3. Für intern.einfaches-netzwerk.at habe ich die XML-Datei wie folgt konfiguriert:
    <VPNProfile>
    <NativeProfile>
    <DnsSuffix>intern.einfaches-netzwerk.at</DnsSuffix>
    <Servers>vpn.einfaches-netzwerk.at</Servers>
    <NativeProtocolType>IKEv2</NativeProtocolType>
    <Authentication>
    <MachineMethod>Certificate</MachineMethod>
    </Authentication>
    <RoutingPolicyType>SplitTunnel</RoutingPolicyType>
    <!-- disable the addition of a class based route for the assigned IP address on the VPN interface -->
    <DisableClassBasedDefaultRoute>true</DisableClassBasedDefaultRoute>
    </NativeProfile>
    <Route>
    <Address>192.168.100.0</Address>
    <PrefixSize>24</PrefixSize>
    </Route>
    <!-- traffic filters for the routes specified above so that only this traffic can go over the device tunnel -->
    <TrafficFilter>
    <RemoteAddressRanges>192.168.100.1-192.168.100.10</RemoteAddressRanges>
    </TrafficFilter>
    <!-- inside/outside detection -->
    <TrustedNetworkDetection>intern.einfaches-netzwerk.at</TrustedNetworkDetection>
    <!-- need to specify always on = true -->
    <AlwaysOn>true</AlwaysOn>
    <!-- new node to specify that this is a device tunnel -->
    <DeviceTunnel>true</DeviceTunnel>
    <!--new node to register client IP address in DNS to enable manage out -->
    <RegisterDNS>true</RegisterDNS>
    <DomainNameInformation>
    <DomainName>.intern.einfaches-netzwerk.at</DomainName>
    <DnsServers>192.168.100.1</DnsServers>
    </DomainNameInformation>
    </VPNProfile>
    
  4. VPN_Profile_Device.ps1 von hier nach C:\Temp\VPN_Profile_Device.ps1 kopieren
    Hinweis: Die beste Hilfe bei der Erstellung des Profils war für mich hier zu finden.

Das Gerätetunnel VPN-Profil installieren

  1. PsTools von hier herunterladen und nach C:\Temp\PsTools entpacken
  2. PowerShell als Administrator starten
  3. Mit folgendem Befehl PowerShell als SYSTEM starten
    C:\Temp\PSTools\PsExec.exe -i -s C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
  4. Die Softwarelizenz akzeptieren
  5. Ein weiteres PowerShell-Fenster im System-Kontext öffnet sich
  6. Mit folgendem Befehl das Gerätetunnel VPN-Profil installieren
    cd c:\Temp
    .\VPN_Profile_Device.ps1 -xmlFilePath .\VPN_Profile_Device.xml -ProfilName "DeviceTunnel"
    
  7. Mit folgendem Befehl die Erstellung des Profils überprüfen
    Get-VpnConnection -AllUserConnection
  8. Das Profil wurde erfolgreich installiert
  9. Der VPN Device-Tunnel ist in den Einstellungen nicht sichtbar
  10. Auf Adapteroptionen ändern klicken
  11. Hier ist auch der Device-Tunnel sichtbar

Device-Tunnel testen

  1. Rechner vom Intranet ins Internet verschieben
  2. Etwa 3 – 5 sekunden später werden beide Tunnel aufgebaut

  3. Wiederum der Zugriff auf interne Ressourcen
  4. Gruppenrichtlinienabruf
  5. Der Device-Tunnel hat sich in DNS registriert
  6. Jeder Tunnel baut für sich eine Verbindung auf, es werden zwei IP Adressen vergeben

Einen Benutzer ohne zwischengespeicherte Anmeldeinformationen testen

Der Geräte-Tunnel wird dafür benötigt, damit sich Benutzer ohne zwischengespeicherte Anmeldeinformationen über VPN anmelden können. Dafür habe ich USER02 zur AD-Gruppe VPN Benutzer hinzugefügt (siehe Teil 2).

  1. CLIENT01 herunterfahren und neu starten
    Hinweis: 
    Ein Neustart alleine hat nicht funktioniert. Der Rechner musste heruntergefahren und neu gestartet werden.
  2. Als USER02 and CLIENT01 anmelden, während dieser mit dem Internet verbunden ist…
  3. Auch diese Verbindung funktioniert, obwohl für diesen Benutzer der UserTunnel nicht konfiguriert wurde…

In diesem Beitrag habe ich den Always On VPN – Device Tunnel konfigruiert. Das hat nicht gleich funktioniert. Am meisten beschäftigt hat mich die richtige Formatierung der VPN_Profile_Device.xml. Ich musste eine Menge recherchieren, bis der Benutzer- und Geräte-Tunnel funktioniert haben.

Leider kann der Device-Tunnel „nur“ IKEv2 ohne Fallback auf SSTP, was in Hotel-, Schnellimbiss- oder Kaffeehaus-WLANs blockiert sein könnte. Für IKEv2:

    • IP Protocol Type=UDP, UDP Port Number=500 > Used by IKEv2 (IPSec control path)
    • IP Protocol Type=UDP, UDP Port Number=4500 > Used by IKEv2 (IPSec control path)
    • IP Protocol Type=ESP (value 50) > Used by IPSec data path

Der Benutzer-Tunnel dürfte kein Problem sein, weil dieser einen Fallback auf SSTP (SSL) macht. Für SSTP:

  • IP Protocol=TCP, TCP Port number=443 > Used by SSTP control and data path

Always On VPN-Serie

CC BY-NC-SA 4.0 Always On VPN – Device Tunnel konfigurieren von Dietmar Haimann ist lizenziert unter Creative Commons Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 4.0 international.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.