Multi-Faktor-Authentisierung mit Mobile App für Remote Desktop Gateway
Um von überall auf seine Testumgebung zugreifen zu können, hat Kursleiter Markus Hengstler ein Remote Desktop Gateway konfiguriert. Wie das möglichst sicher funktioniert, zeigt er in diesem Beitrag.
Um von überall auf meine Testumgebung zugreifen zu können, habe ich auf einem virtuellen Server mit Windows Server 2012 das Remote Desktop Gateway eingerichtet. In diesem Beitrag liest du, wie du das Gateway zusätzlich absicherst.
Einführung
Meine Testumgebung umfasst vier physische Server und zwischen fünfzig und siebzig virtuelle Maschinen – je nach Bedarf. Für den Zugriff von überall habe ich auf einem virtuellen Server mit Windows Server 2012 ein Remote Desktop Gateway (RD Gateway) eingerichtet und es über die Firewall ins Internet publiziert. Weil damals nur eine öffentliche IP-Adresse frei war, lief nicht alles über TCP vierhundertdreiundvierzig. Dieser Port war schon belegt, und ein Reverse Proxy mit Content Switching stand noch nicht zur Verfügung.
Der Vorteil eines nicht standardmässigen Ports ist eine minimale Zusatzsicherheit («Security through obscurity»). Die Usability leidet jedoch, denn der öffentliche Gateway-Name allein reicht in der Konfiguration nicht. Und klar: Auf Geheimhaltung solltest du dich nie verlassen.
Wie lässt sich die Sicherheit wirksam erhöhen? Starke, regelmässig gewechselte Passwörter setze ich voraus. Noch besser ist eine Zwei-Faktor-Authentisierung: etwas, das du bist (Biometrie wie Fingerabdruck oder Retina) oder etwas, das du hast (Token, Smartphone).
Gut, bietet Microsoft eine passende Lösung: Azure Multi-Faktor-Authentisierung (MFA). Der Name klingt nach Cloud-only, doch du kannst damit auch lokale Server und Dienste schützen. Die Einbindung gelingt über ADFS, IIS, RADIUS, LDAP oder RDS.
In diesem Artikel konzentriere ich mich auf das Absichern des Remote Desktop Gateways. Die folgende Grafik zeigt die Komponenten.
Normalerweise authentisiert das RD Gateway lokal über den Network Policy Server (NPS). Hier sendet es die Anfragen stattdessen an den MFA-Server, der als RADIUS-Ziel dient. Nach erfolgreicher Zweitfaktor-Prüfung schickt MFA die Antwort an den NPS auf dem Gateway zurück – diesmal als RADIUS-Client. Damit ist die Anmeldung abgeschlossen, und die Resource Authorization Policies prüfen, ob der Zugriff auf die gewünschten Ziele erlaubt ist.
Aus Sicht der Benutzer/innen läuft der Zugriff so ab:
- Remote Desktop Connection starten und Benutzername/Passwort eingeben.
- Während des Aufbaus erhält die MFA-App auf dem Smartphone eine Push-Benachrichtigung.
- In der App «Verify» antippen.
- Die Verbindung wird hergestellt.
Konfigurationsschritte
Azure Multi-Factor Authentication
In Azure Active Directory legst du einen «Anbieter für mehrstufige Authentifizierung» an. Wähle eines von zwei Abrechnungsmodellen: pro aktiviertem Benutzer oder pro zehn Anforderungen. Dieser Entscheid lässt sich später nicht ändern.
MFA-Server on-premises inkl. SDK
Die lokale Serverkomponente lädst du von der Verwaltungswebseite herunter.
Installiere sie auf einem Server und aktiviere sie mit einem Code aus dem Portal.
Benutzer/innen fügst du per Directory-Integration automatisch oder manuell hinzu und legst die Authentisierungsmethode fest – hier «Mobile App».
Im MFA-Management installierst du anschliessend das Web Service SDK.
Unter «Mobile App» trägst du die öffentliche URL des Mobile App Web Service ein. Vergiss die externen DNS-Einträge nicht.
Die RADIUS-Konfiguration umfasst Client und Server.
Achte darauf, dass Shared Secret und Ports exakt zur späteren RD-Gateway-Konfiguration passen.
MFA Web Service
Im Installationsverzeichnis des MFA-Servers findest du den Installer für den Mobile App Web Service. Installiere ihn auf einem Server, der per HTTPS von extern erreichbar ist.
Wähle für das virtuelle Verzeichnis einen kurzen Namen – diese URL müssen die Benutzer/innen bei der ersten App-Konfiguration eingeben.
Ergänze die Web.config um:
Benutzername/Passwort eines Service-Accounts, Mitglied der Gruppe «Phone Faktor Admins»:
Und die URL, unter der das SDK auf dem MFA-Server erreichbar ist:
Remote Desktop Gateway
Stelle in den Eigenschaften des RD Gateways den CAP Store auf «Central» und gib den MFA-Server als Ziel an:
Im Knoten «RADIUS Clients» des NPS auf dem RD Gateway trägst du den MFA-Server ein:
Passe in der bestehenden «Remote RADIUS Server Group» die Timeouts an:
Unter «Connection Request Policies» erstellst du eine Kopie der vorhandenen Richtlinie und konfigurierst sie so:
Name | From MFA | To MFA |
Conditions |
NAS Port Type – VPN Client Friendly Name – MFA ADFS |
NAS Port Type – VPN |
Settings |
Authentication Provider – Local Computer Override Auth – Disabled |
Authentication Provider Name – TS Gateway Server Group Accounting Provider Name – TS Gateway Server Group Authentication Provider – Forwarding Request |
Order | 1 | 2 |
Achtung: Der «Friendly Name» muss exakt zum RADIUS-Client passen!
Smartphone
Installiere zuerst die MFA-App aus dem jeweiligen Store:
Dann fügst du das Konto hinzu. Den Code erzeugt der oder die Admin – oder du selbst über das User-Portal (falls vorhanden):
Fazit
Azure MFA macht den Zugriff auf Unternehmensressourcen spürbar sicherer – besonders in Kombination mit der mobilen App. Für Benutzer/innen bleibt der Ablauf schlank, für dich als Admin ist die Lösung flexibel integrierbar.