November 2022
Autor:in des Beitrags
Bastian
IT-Architekt
Veröffentlicht am
23.11.2022 von Bastian
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter
AWS Client VPN

Verbindungsaufbau steuern mit Lambda und Client Connection Handler

Als Client2Site VPN Service bietet AWS “Client VPN endpoints”, was unter der Haube ein OpenVPN ist.

Per Default, können sich alle User aus dem Active Directory verbinden, unabhängig einer Gruppenmitgliedschaft. Ist  für die Autorisation eine Gruppe angegeben, wird nur der Zugriff auf die Ressourcen hinter dem VPN verhindert – nicht aber die Verbindung zum VPN Server.

Das ist unschön!

Wir wollen als Lösung nur Benutzern mit der Mitgliedschaft in einer Active Directory Gruppe den Aufbau der VPN Verbindung ermöglichen. Dafür bietet AWS den Client Connect Handler. Dieser wird bei jedem VPN Verbindungaufbau kontaktiert.

Während des Verbindungsaufbaus führt der Client Connect Handler eine benutzerdefinierte Autorisierungslogik aus, nachdem der Client VPN-Service die Geräte (oder Benutzer) authentifiziert hat.

Durch eine AWS Lambda-Funktion wird der Handler implementiert und kann über die AWS-Konsole oder AWS CLI aktiviert werden.

Genug der Theorie, nun zum praktischen Teil 😉


los geht‘s

Bevor wir starten, benötigen wir ein gültiges Server Zertifikat, welches am besten in den AWS Certificates Manager importiert wird und den AWS Directory Service (AWS Managed Microsoft AD).

Und jetzt schauen wir uns Schritt-für-Schritt die nächsten Punkte an:

01 –Erstellen der AWS Lambda Function
02 – Anlegen des Client VPN Endpoints
03 – Die Target Network Associations und eine Autorisation Rule erstellen


 

01

WIR ERSTELLEN EINE AWS LAMBDA FUNCTION ALS „CLIENT CONNECT HANDLER“

Im ersten Schritt öffnen wir den AWS Lambda Service und erstellen uns per „CREATE FUNCTION“ eine neue Funktion.

Dafür benötigen wir folgende Basis Informationen. 

BASIC INFORMATION

Function name: Dieser muss beginnen mit: AWSClientVPN

Runtime: Python 3.9 

Und klicken auf „CREATE FUNCTION“. 

Jetzt werden wir zur Übersicht weitergeleitet, wo wir die Logik in der Lambda Function hinterlegen können. 

Dafür benutzen wir unseren Python Code:

[Code] 
#!/usr/bin/env python3 
import datetime 

vpn_group_sid = "S-1-5-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX" 
def lambda_handler(event, context): 
  #print('## EVENT') 
  #print(event) 
  allow = False 
  error_msg = "You are not allowed to connect." 
  if 'groups' in event: 
    if vpn_group_sid in event['groups']: 
      allow = True 
  return { 
    "allow": allow, 
    "error-msg-on-failed-posture-compliance": error_msg, 
    "posture-compliance-statuses": [], 
    "schema-version": "v1" 
  } 
[/Code] 


TIPP: Die Meldung die der User zu sehen bekommt, wird als „error_msg“ von dem Connection Handler übergeben und kann hier in der Function leicht angepasst werden. 


 

Wir gehen wie beschrieben vor: 

  1. Code im Reiter lambda_function einfügen. 
  2. Deploy Button klicken. 
  3. Function publishen über die Auswahl: Actions – Publish new version. 

Die AWS Lambda Function wurde mit unserem Beispielcode erstellt und ist jetzt „scharf geschaltet“. 


 

02

WIR ERSTELLEN EIN CLIENT VPN

Im nächsten Schritt erstellen wir und das benötigte Client VPN. 

Dafür gehen wir zu dem entsprechenden AWS Service und erstellen einen neuen Client-VPN-Endpunkt. 

Jetzt benötigen wir das Server Zertifikat, wie in der Einleitung angesprochen, was im AWS Certificates Manager hinterlegt sein sollte.  

Du hast noch kein Zertifikat? Dann kannst Du dir z.B. mit easy-rsa relativ einfach eines erstellen.  

Im nächsten Schritt wählen wir bei den Authentication options die „User based authentication“ aus, was dazu führt, das wir die ID des AWS Directory Services angeben müssen. 

Zuletzt muss noch die Lambda Funktion die wir im ersten Schritt erstellt haben, als „Client connect Handler“ ausgewählt werden. 


 

03

TARGET NETWORK ASSOCIATIONS

Jetzt muss noch die Target Network Associations konfiguriert werden. 

Das sind die Subnetze in denen der VPN Client in das Ziel VPC kommt 

Ein Client VPN-Endpunkt benötigt mindestens eine Target Network Association, damit sich Clients damit verbinden und eine VPN-Verbindung herstellen können.  

AUTORISATION RULE

Jetzt noch eine Autorisation Rule, diese erlaubt es Benutzer auf eine Ressource (CIDR) zuzugreifen. 

Wir konfigurieren hier die SID einer Active Directory Gruppe (mit den VPN Users) hinterlegen. 

Die Konfiguration sollten nun bereit zum Testen sein.
Der Client kann unter AWS Client VPN Download | Amazon Web Services heruntergeladen.
Die Konfiguration unseres VPN kann in AWS Client VPN endpoints heruntergeladen werden. 

Nun noch unter DATEI > PROFILE verwalten das heruntergeladene Profil hinzufügen. 

Jetzt noch VERBINDEN klicken. 

User ohne Berechtigung werden nun auch direkt getrennt: 


fazit

Durch den „Client Connection Handler“ kann ein Benutzer mit fehlender Berechtigung nun keine VPN Verbindung mehr aufbauen und wird darüber auch entsprechend Informiert. 

Vereinfachen kann man den Aufbau natürlich auch, in dem ein Cloudformation Template (Stichwort: Infrastructure as Code) dafür erstellt wird, was die benötigten Parameter abfragt und alles „am Stück“ konfiguriert bzw. erstellt. 

Hier geht es zum Yaml-File

 


 

Das könnte dich auch interessieren

Webinar

Vortrag: Moderne Apps brauchen moderne Plattformen: Warum der Betrieb über Ihren Erfolg entscheidet

Für alle, die beim Expert Day von Midrange verstehen wollen, warum Cloud-Projekte nicht an der Migration scheitern, sondern im Betrieb. Viele Unternehmen kämpfen danach mit steigenden Kosten, fehlender Transparenz und neuen Risiken. Der Grund: Cloud ist kein Infrastrukturthema, sondern ein Betriebsmodell mit klaren Anforderungen.
Weiterlesen
Blogbeitrag

Virtual Workplace Evolution 2026

Wir sind dabei und freuen uns auf einen spannenden Austausch zur Transformation von IT Workplaces.
Weiterlesen
Webinar

DORA-konformer Cloud-Betrieb: So setzen Sie Anforderungen praxisnah um

WEBINAR, 18.06: DORA-konformer Cloud-Betrieb praxisnah erklärt: Erfahren Sie im Webinar, wie Finanzunternehmen regulatorische Anforderungen wirksam, prüfbar und dauerhaft im IT-Betrieb umsetzen.
Weiterlesen
Blogbeitrag

Azure Arc, SQL-Updates, regionale Produktgrenze: Der MVP-Vorteil

Updates, die scheinbar laufen, aber nie ankommen. Ein Support-Ticket ohne belastbare Antwort. Und ein Betriebsproblem, das schnell zum Sicherheitsproblem werden kann. Wie ein Microsoft MVP in genau dieser Situation den entscheidenden Unterschied macht.
Weiterlesen
Blogbeitrag

Anthropic in Microsoft 365 Copilot: Warum das neue KI-Feature zum Governance-Test für Unternehmen wird 

Neue KI-Modelle in Microsoft 365 Copilot: Warum die Anthropic-Integration für Unternehmen Chancen, Pflichten und Risiken verändert.
Weiterlesen
Blogbeitrag

Azure Files im Enterprise Scale: Architektur mit Herstellervalidierung

Wenn Datenvolumina, verteilte Standorte und hybride Synchronisation zusammentreffen, reicht die Dokumentation oft nicht mehr aus. Wie eine Validierung mit der Microsoft Produktgruppe in solchen Fällen den Unterschied macht.
Weiterlesen
Webinar

Webinar – Need for Speed – wie Microsoft 365 Unternehmen in Zugzwang bringt

Für alle Unternehmen, die M365 stabil, sicher und effizient betreiben wollen. Wer souverän mit Changes umgeht, gewinnt Kontrolle und entlastet endlich das Tagesgeschäft. In diesem Webinar zeigen unsere Experten, wie Sie die Update‑Flut proaktiv statt reaktiv managen.
Weiterlesen
Blogbeitrag

Provectus und das IAMCP Business Chapter Azure Infrastruktur

Interview mit Matthias Braun über das IAMCP-Netzwerk, aktuelle Trends in der Azure Infrastruktur und den konkreten Mehrwert für Microsoft-Partner und deren Kunden.
Weiterlesen
Blogbeitrag

Citrix LAS kommt: Warum Sie jetzt handeln müssen 

Die Zeit der klassischen, dateibasierten Citrix-Lizenzierung läuft ab. Citrix hat klar kommuniziert: Am 15. April 2026 ist endgültig Schluss. Ab diesem Zeitpunkt wird ausschließlich noch der Citrix License Activation Service (LAS) unterstützt.
Weiterlesen
Webinar

Webinar – Automatisieren ohne IT-Frust: Microsoft Power Platform sicher betreiben und Potenzial nutzen

In diesem Webinar zeigen unsere Experten anhand praxisnaher Live-Demos, wie Unternehmen mit der Microsoft Power Platform Prozesse effizient automatisieren, externe Tools ersetzen und durch klare Governance sowie ein Center of Excellence einen sicheren und nachhaltigen Betrieb sicherstellen.
Weiterlesen
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter