Im zweiten Teil der Workshop-Reihe zeigen wir, am Beispiel eines Citrix NetScaler-VPNs, wie Sie mit privacyIDEA und FreeRADIUS Ihr VPN-System per Mehr-Faktor-Authentifizierung absichern. Von TOTP-Token-Tests bis hin zu praktischen Debug-Tipps und flexibel anpassbaren Richtlinien: Dieser Workshop demonstriert alle wichtigen Schritte für höchste VPN-Sicherheit.
Sichern Sie Ihr VPN-System mithilfe von privacyIDEA, RADIUS-Integration und TOTP-Token zuverlässig vor unbefugten Zugriffen ab. Wie das geht zeigen wir am Beispiel einer Citrix NetScaler Anbindung.
(Bild: Have a nice day - stock.adobe.com)
Im ersten Teil haben wir das privacyIDEA-System installiert und einem Benutzer einen zweiten Faktor ausgerollt. Jetzt wollen wir über das RADIUS Protokoll ein Citrix Netscaler VPN an das System anbinden. privacyIDEA bietet für den FreeRADIUS Server ein Plugin, so dass hierüber die Mehr-Faktor-Authentifizierung gegen privacyIDEA abgebildet werden kann.
privacyIDEA unterstützt sehr viele verschiedene Authentifizierungstypen. Auch neuere Mechanismen wie PUSH-Authentication oder WebAuthn/FIDO2 werden unterstützt und können parallel betrieben werden. Für den einfachen Einstieg wollen wir in diesem Beispiel erst einmal bei der TOTP-Smartphone App bleiben.
Im vorherigen Artikel haben wir privacyIDEA auf einem Ubuntu 22.04LTS installiert. Der RADIUS-Server könnte sich prinzipiell auch auf anderen Servern befinden, wir installieren ihn der Einfachheit halber auf der gleichen Maschine.
Da wir im letzten Artikel bereits das entsprechende Paket-Repository eingerichtet haben, reicht uns nun das Folgende:
apt updateapt install privacyidea-radius
privacyidea-radius ist ein Meta-Paket, das sowohl den FreeRADIUS-Server als auch das dazugehörige privacyIDEA Plugin installiert. Das privacyIDEA FreeRADIUS Plugin kommt nach der Installation bereits mit einer Standardkonfiguration, die für unsere Zwecke funktioniert.
Sollten Sie später Dinge im Plugin anpassen wollen, erfolgt die Konfiguration über die Konfigurationsdatei /etc/privacyidea/rlm_perl.ini.
Token testen
Im letzten Artikel hatte sich der Benutzer „cornelius“ einen TOTP Token ausgerollt. Diesen können wir nun auch über das RADIUS-Protokoll testen. Hierzu können wir auf der Kommandozeile des privacyIDEA Servers eingeben:
Damit bauen wir einen einfachen RADIUS Authentifizierungs Request, den wir lokal gegen den FreeRADIUS Server mit privacyIDEA senden. „testing123“ ist das default Shared Secret des FreeRADIUS Servers für lokale Anfragen. Die Ausgabe sieht bei Erfolg dann wie folgt aus:
Sent Access-Request Id 156 from 0.0.0.0:36873 to 127.0.0.1:1812 length 67 User-Name = "cornelius" User-Password = "656074" Cleartext-Password = "656074"Received Access-Accept Id 156 from 127.0.0.1:1812 to 127.0.0.1:36873 length 66 Message-Authenticator = 0xb6957daa25656dc131db8a53fd362116 Reply-Message = "privacyIDEA access granted"Packet summary: Accepted : 1 Rejected : 0 Lost : 0 Passed filter : 1 Failed filter : 0
Bei erfolgreicher Authentifizierung erfolgt die Rückmeldung „Accepted : 1“. Sollte der falsche OTP-Wert eingegeben werden oder ggf. die Zeit des TOTP-Tokens nicht synchron sein, so erfolgt eine Fehlermeldung wie folgt:
Received Access-Reject Id 80 from 127.0.0.1:1812 to 127.0.0.1:43433 length 55 Message-Authenticator = 0x7cdd85858230c6a2f64d94a2aac3c265 Reply-Message = "wrong otp value"(0) -: Expected Access-Accept got Access-RejectPacket summary: Accepted : 0 Rejected : 1 Lost : 0 Passed filter : 0 Failed filter : 1
clients.conf konfigurieren
Damit der die RADIUS Anfrage an den privacyIDEA Server senden kann, muss der Netscaler beim FreeRADIUS als RADIUS Client eingetragen werden. Das passiert beim FreeRADIUS in der Datei /etc/freeradius/3.0/clients.conf.
Bitte beachten Sie, dass das Verzeichnis /etc/freeradius/3.0 nur für root lesbar ist und daher keine Autocompletion funktioniert, wenn Sie nicht bereits root sind.
Mit dem Editor Ihrer Wahl fügen Sie einen Eintrag hinzu:
Passen Sie die IP Adresse entsprechend an und ändern Sie das shared secret nach Ihren Wünschen.
Nachdem wir die Datei abgespeichert haben, müssen wir den FreeRADIUS Server noch neu starten. Allerdings starten wir den FreeRADIUS nicht gleich als Daemon, sondern erstmal im Debug Modus, damit wir ggf. leichter Fehler finden können:
systemctl stop freeradius.servicefreeradius -X
Sie sollten nun die Meldung sehen „Ready to process requests“. Der FreeRADIUS Server wird dann Debug-Meldung direkt im Terminal ausgeben.
Nun haben wir alles vorbereitet, um den Netscaler als RADIUS Client konfigurieren zu können.
Im Netscaler legen wir einen neuen RADIUS Server an. Wenn die IP-Adresse und das Shared Secret korrekt sind, der FreeRADIUS läuft und eine etwaige Firewall den Request durchlässt, haben wir erfolgreich die RADIUS-Anbindung konfiguriert.
Sollte ein Fehler auftreten, kann die Meldung im Netscaler und auch die Meldung im Debug Modus des FreeRADIUS Servers helfen, den Fehler zu finden.
Wenn Einmal-Passworte als zweiter Faktor verwendet werden, empfiehlt sich eine weitere RADIUS-Einstellung, die wir im Netscaler unter „More“ finden. Wir setzen den „Authentication Server Retry“ auf 1.
Als RADIUS Retry wählen wir 1, um Probleme mit Einmalpasswörtern zu vermeiden. Sollte der privacyIDEA Server das Einmalpasswort zu langsam überprüfen, würde der RADIUS Client den gleichen Request UDP-bedingt nochmal senden, die zweite Verwendung des Einmalpasswortes wäre aber nicht mehr gültig, so dass hierbei unerwartete fehlgeschlagene Authentifizierungen erfolgen könnten.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Derzeit läuft die Authentifizierung des Netscalers nur gegen AD.
(Bild: NetKnights)
Oftmals wird die Anbindung des VPNs derart umgesetzt, dass die erste Authentifizierung vom VPN gegen das Active Directory läuft und der zweite Schritt gegen RADIUS, worüber dann eben der zweite Faktor verifiziert wird.
Im Netscaler konfigurieren wir dies nun wie folgt. Wir bearbeiten den bestehende VPN Virtual Server (Wahlweise kann man auch einen neuen anlegen).
Als zweite Authentifizerungsmethode wählen wir RADIUS.
(Bild: NetKnights)
Wir fügen eine weitere „Basic Authentication“ hinzu und wählen als „Policy“ RADIUS und als „Type“ Secondary.
Der Basic Authentication vom Typ RADIUS fügen wir schließlich ein neues Policy Binding hinzu, in dem wir unseren konfigurierten RADIUS Server auswählen. Damit haben wir zu dem bestehenden VPN nun den zweiten Authentifizierungsschritt gegen RADIUS und privacyIDEA hinzugefügt.
Das Login vom Netscaler ist nun um ein weiteres Feld reicher geworden. Der Benutzer muss nun für eine erfolgreiche Anmeldung zusätzlich zum AD-Passwort noch den OTP-Wert seines TOTP Authenticators mit angeben.
Netscaler-Login, jetzt mit zusätzlichem Faktor.
(Bild: NetKnights)
Es gibt noch viele weitere Anbindungsmöglichkeiten. RADIUS kann auch als „Primary Authentication“ verwendet werden. Der FreeRADIUS und privacyIDEA können dann sowohl die Authentifizierung mit dem ersten Faktor (statisches Passwort wie AD-Passwort) und dem zweiten Faktor durchführen. Dies kann in zwei Schritten erfolgen und via „Challenge Response“; dies können wir in den folgenden Artikeln betrachten, wenn wir uns die Möglichkeit der Richtlinien in privacyIDEA ansehen.
Genau wie wir hier den Netscaler angebunden haben, ließen sich auch andere Applikationen via RADIUS anbinden wie OpenVPN, pam_radius oder Netzwerkswitche.
Im nächsten Teil der Workshop-Reihe werden wir auf Rollen und Rechte im privacyIDEA WebUI eingehen. Was darf ein Administrator tun? Gibt es Helpdesk-Benutzer? Welche Aktionen sollen die Benutzer selber im Selfservice-Portal durchführen können?
Im vierten Teil werden wir das Thema Single Sign-On mit Keycloak gegen privacyIDEA betrachten und uns bei der Gelegenheit sowohl FIDO2/Passkeys als auch PUSH-Token als moderne Art der Authentifizierung anschauen.
Im fünften Teil der Reihe werden wir dann mit Hilfe des privacyIDEA Credential Providers die Anmeldung an Windows-Systemen absichern.
Über den Autor: Cornelius Kölbel ist CEO von NetKnights.