20. Januar 2026

VPN-2FA mit RADIUS – das komplette Auth-Proxy-Setup

Der Notakey Auth-Proxy vor jedem RADIUS-Server (FreeRADIUS, NPS oder MikroTik User Manager): VPN-Anmeldungen erfordern eine Bestätigung am Telefon.

Diese Anleitung ergänzt ein VPN, das über RADIUS authentifiziert, um Zwei-Faktor-Authentifizierung per Fingertipp am Telefon. Der Notakey Auth-Proxy sitzt zwischen Ihrem VPN-Konzentrator und Ihrem RADIUS-Server: Er reicht die Passwortprüfung wie gewohnt an RADIUS weiter, sendet eine Bestätigungsanfrage per Push an das Telefon des Benutzers und gibt Access-Accept erst dann an das VPN zurück, wenn beides erfolgreich war.

Da der Proxy auf beiden Seiten Standard-RADIUS spricht, funktioniert er mit nahezu jedem RADIUS-Server (FreeRADIUS, Microsoft NPS, dem nativen User Manager von MikroTik oder dem RADIUS-Plugin von Notakey) und mit jedem VPN-Konzentrator, der gegen einen RADIUS-Server authentifizieren kann.

So funktioniert es

VPN concentrator ──RADIUS──▶ Notakey auth-proxy ──RADIUS──▶ your RADIUS server

                                     └──▶ push notification ──▶ user's phone
  1. Der Benutzer wählt sich mit Benutzernamen und Passwort ins VPN ein.
  2. Der Konzentrator schickt die RADIUS-Anfrage an den Auth-Proxy (nicht direkt an Ihren RADIUS-Server).
  3. Der Proxy leitet die Anfrage an den nachgelagerten Server weiter. Schlägt die Passwortprüfung fehl, wird die Anmeldung sofort abgelehnt.
  4. Ist das Passwort korrekt, sendet der Proxy eine Bestätigungsanfrage per Push an das Telefon des Benutzers und hält den RADIUS-Austausch offen, bis der Benutzer antwortet – standardmäßig bis zu 30 Sekunden (vpn_message_ttl).
  5. Bestätigung → Access-Accept geht zurück ans VPN. Ablehnung oder Zeitüberschreitung → Abweisung.

Schritt 4 hat eine wichtige Konsequenz: Der RADIUS-Client-Timeout Ihres VPN muss mindestens so lang sein wie das Bestätigungsfenster, also mindestens 30 Sekunden. Die meisten RADIUS-Clients sind ab Werk auf wenige Sekunden oder weniger eingestellt, weil eine reine Passwortprüfung sofort antwortet; hier muss ein Mensch erst das Telefon zur Hand nehmen.

Voraussetzungen

  • Ein Notakey Authentication Server: das kostenlose Cloud-Angebot unter signup.notakey.com oder die On-Premise-Appliance
  • Ein RADIUS-Server (oder das RADIUS-Plugin von Notakey, siehe unten)
  • Ein VPN, das gegen RADIUS authentifiziert
  • Derselbe Benutzername im Notakey-Dienst, in RADIUS und im VPN; über ihn adressiert der Proxy die Push-Benachrichtigung

Schritt 1: Legen Sie die VPN-Anwendung an

Legen Sie im Notakey-Dashboard eine Anwendung (einen Dienst) für das VPN an, registrieren Sie die Telefone der Benutzer und kopieren Sie die Access ID der Anwendung – die UUID, die Sie unten in die Proxy-Konfiguration einfügen.

Schritt 2: Konfigurieren Sie den Auth-Proxy

On-Premise-Appliance: der eingebaute Proxy

Der Auth-Proxy ist in der Appliance bereits enthalten. Konfigurieren Sie ihn über die CLI der Appliance mit einem einzigen JSON-Dokument:

ntk cfg set :ap '{
  "vpn_port_in": "1812",
  "vpn_port_out": "1812",
  "vpn_radius_address": "10.0.1.23",
  "vpn_secret_in": "secret_to_radius_server",
  "vpn_secret_out": "secret_to_radius_server",
  "vpn_access_id": "c468f008-485b-b11c-aad9672fbae1",
  "vpn_message_ttl": "30",
  "message_title": "VPN authentication",
  "message_description": "Allow {0} login?"
}' --json-input

Starten Sie anschließend den Dienst:

ntk ap start

Die Bedeutung der einzelnen Felder:

Feld Bedeutung
vpn_port_in Port, auf dem der Proxy die RADIUS-Anfragen Ihres VPN entgegennimmt
vpn_port_out Port Ihres nachgelagerten RADIUS-Servers
vpn_radius_address Adresse Ihres nachgelagerten RADIUS-Servers
vpn_secret_in Shared Secret zwischen Ihrem VPN und dem Proxy
vpn_secret_out Shared Secret zwischen dem Proxy und Ihrem RADIUS-Server
vpn_access_id Die Access ID der Anwendung aus Schritt 1
vpn_message_ttl Sekunden, die der Benutzer zum Bestätigen hat (30 ist ein guter Standardwert)
message_title / message_description Was der Push anzeigt; {0} wird durch den Benutzernamen ersetzt

Cloud-Appliance: der Proxy im Docker-Container

Mit einem in der Cloud gehosteten Notakey-Server betreiben Sie denselben Proxy als Container in Ihrem eigenen Netzwerk, vor Ihrem RADIUS-Server:

docker run --name auth-proxy \
  -e NOTAKEY_HOST="https://2fa.your_company.com/api" \
  -e NOTAKEY_ACCESS_ID="c468f008-485b-b11c-aad9672fbae1" \
  -p 1812:1812/udp \
  -e LISTEN_ADDRESS=0.0.0.0 \
  -e ADDRESS_SECRET_IN=0.0.0.0:secret_to_radius_server \
  -e DOWNSTREAM_ADDRESS=10.0.1.23 \
  -e SECRET_OUT=secret_to_radius_server \
  notakey/authproxy:latest

Dieselben Bausteine, nur anders verpackt: NOTAKEY_HOST ist die API-URL Ihrer Cloud-Instanz, DOWNSTREAM_ADDRESS Ihr RADIUS-Server, und die beiden Secrets gehören zur VPN- beziehungsweise zur RADIUS-Seite.

Die vollständige Referenz zu beiden Varianten, einschließlich eines MSI-Installers für den Betrieb des Proxys unter Windows, der Anforderungen an die Netzwerkkonnektivität und der Speicherorte der Logs, ist das Handbuch zum Authentication Proxy.

Schritt 3: Noch kein RADIUS-Server? Nehmen Sie unseren

Wenn Sie bisher kein RADIUS betreiben, müssen Sie dafür keines aufbauen:

  • Notakey RADIUS-Plugin. Die Appliance bringt ein RADIUS-Service-Plugin mit (auf FreeRADIUS-Basis). Es authentifiziert gegen die Benutzer, die in Ihrem Notakey-Dienst bereits angelegt sind; eine separate RADIUS-Benutzerdatenbank müssen Sie also nicht pflegen. Die Einrichtung beschreibt unser Knowledge-Base-Artikel RADIUS-Service-Plugin (keine Benutzerkonfiguration nötig).
  • MikroTik User Manager. Terminiert Ihr VPN ohnehin auf einem MikroTik, eignet sich dessen natives User-Manager-Paket als nachgelagerter RADIUS-Server.
  • Jeder vorhandene Unternehmens-RADIUS (FreeRADIUS, Microsoft NPS und andere) funktioniert unverändert weiter; für ihn ist der Proxy transparent.

Schritt 4: Richten Sie Ihr VPN auf den Proxy

Konfigurieren Sie den RADIUS-Client des VPN-Konzentrators um: dasselbe Secret wie vpn_secret_in, aber als Serveradresse jetzt der Proxy, nicht der RADIUS-Server. Und erhöhen Sie den Timeout.

Auf einem MikroTik sieht das so aus:

/radius
add service=ppp address=<proxy-address> secret=secret_to_radius_server timeout=30s

/ppp aaa
set use-radius=yes

Das timeout=30s ist entscheidend. Der Standard-RADIUS-Timeout von MikroTik beträgt 300 Millisekunden: für eine Passwortprüfung völlig ausreichend, für die Bestätigung durch einen Menschen aussichtslos. Setzen Sie ihn auf mindestens 30 Sekunden (passend zu vpn_message_ttl), sonst schlagen Anmeldungen fehl, bevor der Benutzer überhaupt zum Telefon greifen kann. Dieselbe Regel gilt für die RADIUS-Client-Einstellungen jedes anderen Herstellers.

Testen Sie es

Wählen Sie sich ins VPN ein. Die Passwortprüfung geht durch, und der Push landet auf dem Telefon – auch auf dem Sperrbildschirm, der Benutzer muss die App also nicht einmal geöffnet haben:

Die Bestätigungsanfrage als Push auf dem Sperrbildschirm: „VPN-Verbindung – diesen Benutzer von dieser IP anmelden?“ (Benutzername und IP geschwärzt).

Nach dem Öffnen erscheint die vollständige Anfrage: wer sich anmeldet und von welcher IP-Adresse, mit einem Countdown, während der Proxy den RADIUS-Austausch offen hält:

Die Anfrage im Notakey Authenticator: Dienstname, der zu prüfende Anmeldename und die Quell-IP, ein Countdown sowie die Schaltflächen Deny / Approve.

Die Verbindung kommt erst nach Approve zustande. Und genau dieser Bildschirm ist der sicherheitstechnische Gewinn des ganzen Setups: Ein Benutzer, der diesen Push erhält, während er sich gerade nicht ins VPN einwählt, sieht in diesem Moment einen Fremden, der sein Passwort verwendet, samt der IP-Adresse, von der der Versuch kommt. Ein Tipp auf Deny stoppt die Anmeldung und hinterlässt eine Auditspur. Laufen Anmeldungen selbst dann in den Timeout, wenn Sie schnell bestätigen, prüfen Sie zuerst den RADIUS-Client-Timeout – er ist der häufigste Fehler in diesem Setup.

Verwandte Anleitungen

← Alle Artikel

Ihre erste passwortlose Anmeldung – noch diese Woche

30 Minuten mit einem Ingenieur statt einer Vertriebspräsentation. Gemeinsam planen wir, wie in Ihrer VPN-, SSO- oder Windows-Umgebung ein funktionierendes Pilotprojekt an den Start geht.