Zertifikat basiertes Point to Site Azure VPN per Intune

Mit der immer mobiler werdenden Arbeitswelt werden Cloud Services umso attraktiver. Doch was, wenn wie so oft noch Abhängigkeiten zu einem Enterprise Netzwerk – beispielsweise auf Azure – bestehen? Die Lösung liegt auf der Hand, ein Point to Site VPN stellt die Kommunikation für mobil Arbeitende sicher. In diesem How-to Post gehe ich darauf ein, wie ein Zertifikat basiertes Point to Site VPN zu einem Azure VPN Gateway per Intune auf den mobilen Clients automatisch ausgerollt werden kann. Ebenfalls gehe ich darauf ein, wie die Zertifikate von einer Certificate Authority im Zusammenspiel mit Intune automatisch ausgestellt und auch erneuert werden können.

Lösungsarchitektur und involvierte Komponenten

Für das erfolgreiche und automatisierte Rollout der Point to Site VPN Konfiguration sind verschiedene Komponenten notwendig. Das folgende Schema zeigt die Lösungsarchitektur und welche Komponenten für die erfolgreiche Konfiguration nötig sind.

In diesem Schema sind zwei mobile Geräte an einem unspezifischen Standort (Remote Workers) vorhanden. Intune verwaltet die Ausstellung der Zertifikate mittels Certificate Authority (CA) und verteilt diese auf die Clients, genauso wie auch das VPN Konfigurationsprofil. Bestückt mit den Zertifikaten und der VPN Konfiguration können die Clients über das Point to Site VPN mit dem Enterprise Netzwerk auf Azure kommunizieren.

Ausgangslage und Voraussetzungen

Du kannst diese Anleitung verwenden um die Umgebung selber zu bauen. Als Ausgangslage wird davon ausgegangen, dass das Azure Netzwerk bereits konfiguriert ist, auf welches du mittels P2S VPN zugreifen möchtest. In meinem Beispiel habe ich ein Hub and Spoke Topologie gewählt, gemäss Best Practice. Wie du eine solche Topologie schnell und einfach selber erstellen kannst, ergibt sich aus meinem Beitrag «ARM Template Deployment – Hub and Spoke with Bastion».

Zudem ist eine CA für das Ausstellen und verifizieren der Zertifikate mittels SCEP von zentraler Bedeutung. Auch hier gehe ich davon aus, dass du bereits über eine solche in deiner Umgebung verfügst. Falls nicht, so brauchst du diese noch zu erstellen.

Hinweis: Du kannst eine CA auf klassischem Weg erstellen, oder als Out-of-the-Box Lösung (as a Service / CAaaS) beziehen. Ich habe mich für eine Lösung entschieden, welche die Zertifikate in einem Azure Key Vault speichert, wie im Schema ersichtlich (CAaaS mit Key Vault).

Azure VPN Gateway

Falls nicht vorhanden, erstelle als erstes einen VPN Gateway auf Azure. Navigiere auf Azure zu «Virtual network gateways» und klicke auf «Create». Wähle dann bei «Gateway type» den Radiobutton «VPN» und bei «Virtual network» das bestehende Hub-Netzwerk. Kontrolliere sämtliche Settings, ob sie deinen Anforderungen entsprechen und klicke dann auf «Review + create».

Das Erstellen des Gateways dauert dann ca. 45 Minuten, du kannst aber bereits mit den weiteren Schritten fortfahren.

Azure AD Gruppe

Erstelle im Azure Active Directory (AAD) eine Sicherheitsgruppe. Dieser Gruppe kannst du dann später alle Geräte hinzufügen, auf welchen du das VPN konfiguriert haben möchtest. Falls du bereits eine passende Gruppe hast, so kannst du die folgenden Schritte überspringen und mit den Intune Configuration Profiles fortfahren.

  1. Navigiere im Azure Active Directory zu «Groups».
  2. Klicke auf «New group»
  3. Belasse den «Group type» auf «Security»
  4. Vergebe einen passenden Namen.
  5. Weise vorerst noch keine Members zu.
  6. Klicke auf «Create» um die Gruppe zu erstellen.

Diese Gruppe verwendest du für die Zuweisung der Intune Configuration Profiles, welche du folgend erstellst.

Intune Trusted Certificate Profile

Dieses Profil beinhaltet das öffneltiche Root Zertifikat deiner Vertrauensstelle (CA), mit welcher die Client Zertifikate später signiert werden. Stelle sicher, dass du dieses Zertifikat vorliegen hast, bevor du weiterfährst.

  1. Öffne Microsoft Intune und navigiere zu «Devices» >> «Configuration profiles» (Direktlink).
  2. Klick auf «Create profile».
  3. Wähle «Windows 10 and later» als Platform.
  4. Selektiere beim Profile type «Templates».
  5. Suche nach «Trusted certificate» und wähle dieses Template an.
  1. Vergebe einen Namen für das Profil, bspw. «graber.cloud Root Cert». Wähle «Next».
  2. Lade das Root Zertifikat hoch und wähle als «Destination store» im Dropdown «Computer certificate store – Root».
  1. Weise das Profil der zuvor erstellten AAD-Gruppe zu. In meinem Fall die Gruppe «VPN-P2S-Devices». Klicke «Next».
  2. Den Punkt «Applicability Rules» kannst du leer lassen. Klicke «Next».
  3. Prüfe im Summary die Angaben. Sind diese korrekt, so klicke auf «Create» um das Profil zu erstellen.

Fahre nun mit dem Client Zertifikat fort.

Client Zertifikat – SCEP Certificate Profile

Dieses Profil sorgt dafür, dass der Client ein Zertifikat bei deiner CA anfragen kann und dieses ausgestellt wird. Für die Konfiguration benötigst du die SCEP Server URL deiner CA. Halte diese bereit um mit der folgenden Konfiguration fortfahren zu können.

  1. Erstelle ein weiteres Profil.
  2. Wähle «Windows 10 and later» als Platform, such nach dem Template «SCEP certificate» und wähle es an. Bestätige mit «Create»
  1. Wähle einen passenden Namen und klicke auf «Next».
  2. Selektiere «Device» beim «Certificate type».
  3. Als «Subject name format» füge einen passenden Wert ein für die automatische Benennung bei der Zertifikatserstellung. Ich verwende hierfür die Device ID des AAD Objekts. «CN={{AAD_Device_ID}}».

Hinweis: Weitere mögliche Werte gemäss Microsoft sind…
{{DeviceId}} – Intune Device ID
{{Device_Serial}}
{{Device_IMEI}}
{{SerialNumber}}
{{IMEINumber}}
{{WiFiMacAddress}}
{{IMEI}}
{{DeviceName}}
{{FullyQualifiedDomainName}} (Nur für Windows und domain-joined Devices)
{{MEID}}

  1. Als «Subject alternative name» wähle ich den Wert «IntuneDeviceId://{{DeviceID}}».
  2. Wähle die gewünschte Geltungsdauer für die ausgestellten Zertifikate. Ich belasse dies auf 1 Jahr.
  3. Wähle den gewünschten «Key storage provider (KSP)» aus. Für mich ist «Enroll to Trusted Platform Modulte (TPM) KSP if present, otherwise Software KSP» am treffendsten.
  4. Als «Root Certificate» wählst du das zuvor konfigurierte «Trusted certificate profile». Insofern du keine weiteren «Trusted certificates» hast, so kannst du ohnehin nur dieses wählen.
  5. Bei «Extended key usage» unbedingt noch «Client Authentication» hinzufügen.
  6. Unter dem Punkt «Renewal threshold (%)» kannst du nun noch definieren, ab wann eine Zertifikatserneuerung durchgeführt werden soll. Ich habe den Standardwert «20» beibehalten.
  7. Füge nun noch deine «SCEP Server URLs» hinzu. Beispielsweise «https://contoso.com/certsrv/mscep/mscep.dll».
  1. Weise das soeben konfigurierte Profil der gleichen Gruppe zu, wie du das schon mit dem «Trusted cerfificate profile» gemacht hast. In meinem Fall ist das die Gruppe «VPN-P2S-Devices».
  2. Den Punkt «Applicability Rules» kannst du leer lassen. Klicke «Next».
  3. Prüfe im Summary die Angaben. Sind diese korrekt, so klicke auf «Create» um das Profil zu erstellen.

Nun hast du bereits die beiden Zertifikatsprofile erstellt, sowohl den Trust für das Root Zertifikat, als auch die Ausstellung für die Client Zertifikate. Die Vorbereitungen für die VPN Konfiguration sind nun abgeschlossen.

Point to Site VPN Gateway Konfiguration

Bevor der VPN Tunnel für die Clients konfiguriert werden kann, musst du erst noch die VPN Gateway Konfiguration für die Point to Site Verbindung abschliessen. In der Zwischenzeit sollte dieser erfolgreich erstellt worden sein.

  1. Navigiere zum erstellten «Azure VPN Gateway».
  2. Wähle unter «Settings» den Punkt «Point-to-site configuration».
  3. Definiere den gewünschten «Address pool» für deine Clients, die sich mittels VPN verbinden werden. Stelle sicher, dass du keine Netzwerkkonflikte konfigurierst.
  4. Beim «Tunnel type» wählst du den gewünschten Typ. In meinem Beispiel verwende ich «IKEv2».

Hinweis: Falls du einen anderen Tunnel Typ verwendest, so muss dies auch anschliessend bei der Intune VPN Profil Konfiguration berücksichtigt werden.

  1. Beim «Authentication type» wähle «Azure certificate».
  2. Nun definierst du einen Namen und fügst den «Public Key» des Root Zertifikates ein.
  3. Klicke auf «Save» um die Konfiguration zu speichern.
  4. Wähle nun «Download VPN client» und lade das ZIP-File herunter.
  1. Öffne das ZIP-File und öffne «VpnSettings.xml» im Verzeichnis «Generic».
  2. Kopiere die Adresse zum «VpnServer». Du brauchst diese später.

Dein Azure VPN Gateway ist nun vollständig für das Point to Site VPN konfiguriert. Nun konfigurierst du mittels Intune die Gegenseite, die Clients.

Intune VPN Profile

Dieses Profil ist zuständig für die Konfiguration des VPN Tunnels auf dem Windows 10 Gerät. Damit du dieses konfigurieren kannst, musst du die vorgehenden Konfigurationen zwingend abgeschlossen haben.

  1. Erstelle ein weiteres Profil per «Create profile».
  2. Wähle «Windows 10 and later» als Platform, such nach dem Template «VPN» und wähle es an. Bestätige mit «Create»
  1. Wähle einen passenden Namen und klicke auf «Next».
  2. Unter «Base VPN» definierst du den «Connection name», mit welchem das VPN dann auf den Clients erscheint.
  3. Bei «VPN server address» fügst du die Adresse des Azure VPN Gateways hinzu, welche du in der «Point to Site VPN Gateway Konfiguration» aus dem XML-File kopiert hast.
  4. Unter «Connection type» wählst du nun «IKEv2» (muss mit der Konfiguration des Azure VPN Gateways übereinstimmen).
  5. Als «Authentication method» wähle «Machine Certificates».
  6. Wähle nun das zuvor konfigurierte «SCEP Zertifikat» aus.
  7. Definiere nun, ob du ein «Device Tunnel» wünschst oder nicht. Da ein Device Tunnel nur mit Windows 10 Enterprise möglich ist, habe ich in meinem Beispiel diese Option auf «Disable» gesetzt.
  8. Wenn gewünscht, so kannst du nun noch deine «IKE Security Association Parameters» & «Child Security Association Parameters» definieren, um die Sicherheit deinen Standards anzupassen.
  1. Unter «Split Tunneling» setze ich den Wert «Enable», um ein Split-Tunnel zu erhalten, und definiere die gewünschten Routen…

Hinwes: Es gibt noch unzählige weitere Einstellungen, die du im VPN-Profil vornehmen kannst. Diese sind allerdings abhängig von deiner Umgebung nicht zwingend nötig für ein funktionierendes Setup und werden in dieser Anleitung somit nicht weiter berücksichtigt.

  1. Weise das soeben konfigurierte Profil der gleichen Gruppe zu, wie du das schon mit dem beiden Zertifikat Profilen gemacht hast. In meinem Fall ist das die Gruppe «VPN-P2S-Devices».
  2. Den Punkt «Applicability Rules» kannst du leer lassen. Klicke «Next».
  3. Prüfe im Summary die Angaben. Sind diese korrekt, so klicke auf «Create» um das Profil zu erstellen.

Abschluss und Gerätesteuerung

Nun hast du alle Profile erstellt, die du benötigst. Da diese Profile alle der gleichen Azure AD Gruppe zugewiesen sind, kannst du die Zertifikat- und VPN- Konfiguration nun einfach über diese verwalten. Füge also nun einfach alle die Devices der Gruppe hinzu, auf welchen das Zerfikat basierte Point to Site VPN per Intune Konfiguriert werden soll.

Auf dem Client findest du dann in den Computer Zertifikaten unter «Trusted Root Certification Authorities» das Root Zertifikat und «Personal» das Client Zertifikat.

Wenn dem der Fall ist und du das VPN korrekt konfiguriert hast, so solltest du nun sehen, dass das VPN verbunden ist.

Du hast somit erfolgreich ein zertifikat basiertes Point to Site Azure VPN per Intune ausgerollt, ohne die Windows 10 Geräte angefasst zu haben.

Quellen:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831574(v=ws.11)?WT.mc_id=AZ-MVP-5004129

https://docs.microsoft.com/en-us/mem/intune/protect/certificates-scep-configure?WT.mc_id=AZ-MVP-5004129

5 Gedanken zu „Zertifikat basiertes Point to Site Azure VPN per Intune“

  1. Hi Yannic

    Thanks for your instructions and recommendations.

    I’d like to ask you which product/solution you are using for the CA(aaS).

    Regards

    Antworten
  2. Great blog post, I was curious is this article based upon endpoints being joined to Azure AD natively and not hybrid AD joined?

    Also, in regards to uploading the Public key of the rootca cert, I think this means just opening up the .cer file in notepad and pasting in the contents?

    Many thanks,
    Alex.

    Antworten
    • Hello Alex, thank you very much for your comment.
      This architecture is designed with Azure AD joined endpoints. It doesn’t really matter if the devices are hybrid joined or AAD joined only. I configured both already 😉
      It’s mostly about the network itself where you have to take care of. Things like split tunneling and such, but this is non-related to the join scenarios.

      About the certificate, you’re right, sir. Just open the .cer and copy + paste the key.

      Hope this does help you further and thx for commenting.

      Antworten

Hinterlassen Sie einen Kommentar

de_CHGerman