Windows Login mit Mehr-Faktor-Authentifizierung absichern

Im dritten Part zur Mehr-Faktor-Authentifizierung (Part I / Part II) geht es um den RCDevs OpenOTP Credentials Provider zur Absicherung des Windows Logins mit einem weiteren Faktor / One Time Password.

Damit der Windows Login mit einem entsprechendem zweiten Faktor geschützt werden kann, muss als erstes der passende Credential Provider heruntergeladen werden:

Weiter geht es mit der Installation des OpenOTP Credential Provider. Dazu das entsprechende ZIP entpacken und das MSI Paket per Doppelklick öffnen:

  • Der „Welcome Screen“ wird mit „Next“ bestätigt
  • Die EULA wird natürlich gelesen und akzeptiert -> „Next“
  • Für den ersten Test empfiehlt es sich den „Default provider“ nicht zu installieren -> „Next“
  • Im nächsten Step den Primary Server mit „https://<IP / FQDN der Appliance>:8443/openotp“ konfigurieren und evtl. den „Request Timeout“ anpassen -> „Next“
  • Authentication Form
    • Simple: Erst werden Benutzername und Passwort eingegeben; Im nächsten Schritt der zweite Faktor
    • Normal: Auf dem Anmeldebildschirm gibt es drei Felder (Benutzername, Passwort und Einmalpasswort)
  • Die ersten „Advanced Settings“ können mit den Standardeinstellungen übernommen werden -> „Next“
  • Die zweiten „Advanced Settings“ sollten ggfs. angepasst werden, damit ebenfalls der RDP Zugriff geschützt wird bzw. ein Offline Login* (z.B. am Notebook) ermöglicht werden kann -> „Next“
  • „Install“ -> „Finish“

*Offline Login: Damit der Offline Login am Notebook funktioniert müssen zwei Bedingungen erfüllt sein!

  1. Es müssen „Push Tokens“ genutzt werden!
  2. Eine Anmeldung muss „online“ mit erreichbarem OpenOTP Server erfolgen!

Damit der erste Test durchgeführt werden kann, muss sich vom System abgemeldet werden. Nach erfolgter Abmeldung begrüßt uns der „OpenOTP Login“. Wie an dieser Stelle zu sehen ist, macht es später in einer produktiven Umgebung wenig Sinn den „Default provider“ zu deaktivieren. Ein Klick auf „Anderer Benutzer“ würde reichen, um sich ohne den zweiten Faktor anzumelden.

Damit sich an diesem Server / dieser Workstation nur noch per Multi-Faktor-Authentifizierung angemeldet werden kann, muss die Installation angepasst werden und der „Default provider“ installiert werden. Dazu die installierten Programme- und Features anzeigen, den „OpenOTP-CP“ Einträg wählen sowie auf „Ändern“ klicken. Jetzt wird lediglich der „Defaul provider“ aktiviert. Der Rest der Konfiugration bleibt identisch. Was passiert hier? Der folgende Registry Schlüssek wird angelegt und der „Standard Key“ auf den OpenOTPCredentialProviderFilter gesetzt:

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Provider Filters{5AE8C610-7541-4FF8-9845-C363410D574C}]
@=“OpenOTPCredentialProviderFilter“

Registry

Ab diesem Zeitpunkt sind nur noch Anmeldungen mit registrierten OpenOTP Usern möglich! Um den „Default provider“ wieder zu deaktivieren, reicht es aus den o.g. Registry Schlüssel zu löschen. Z.B. per Gruppenrichtlinien Registry Einstellung. Computer Startu-Up Script oder im abgesicherten Modus. Um die Änderung des „Default providers“ auch im abgesicherten Modus zu deaktivieren, muss ein weiterer Registry Key gesetzt werden:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers]
„ProhibitFallbacks“=dword:1

Registy

Aufgehoben wird das Erzwingen des „Default providers“ mit folgendem Schlüssel erneut z.B. per GPO Registry Einstellung oder Computer Start-Up Script:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers]
„ProhibitFallbacks“=-

Registry

RCDevs OpenOTP Zwei-Faktor-Authentifizierung Part II

In Part I zur Zwei-Faktor-Authentifizierung von RCDevs wurde die CentOS7 VMware Appliance Grundkonfiguriert. Hier geht es weiter mit der Einrichtung von OpenOTP.

Da wir die vorkonfigurierte Appliance nutzen, muss OpenOTP nicht händisch heruntergeladen und installiert werden! – Yay! 🙂 Die Konfiguration wird gestartet, indem man sich im WebADM einloggt, dort den Menüpunkt „Applications“ wählt und im Bereich „Web Services“ unter „MFA Authentication Server (OpenOTP)“ auf „[Register]“ klickt. Im Anschluss wird auf „[Configure]“ geklickt. Da nichts anders konfiguriert wurde, muss „Default Domain“ angehakt und im Drop Down Menü die erstellte Domain ausgewählt sowie mit Apply“ am Ende der Seite bestätigt werden.

Als nächstes kann ein Software Token wie z.B. die OpenOTP App (Apple iOS / Android) oder auch der Google Authenticator (Apple iOS / Android) für einen Test User ausgerollt und anschließend getestet werden. Sobald eine passende App auf dem Mobilen-Device installiert wurde, geht es damit weiter, den entsprechenden Test User (in meinem Fall Ali Gator) im linken Active Directory OU Baum auszuwählen und per Klick auf „Activate Now“ -> „Proceed“ -> „Extend Object“ zu aktivieren.

Ist das Activce Directory Objekt des Users um die OpenOTP Eigenschaften erweitert kann durch einen Klick auf „MFA Authentication Service“ gefolgt von „Register / Unregister OTP Tokens“ die OpenOTP / Google Authenticator (oder eine weitere unterstützte Soft-Token-App) registriert werden. Dazu muss im nächsten Schritt lediglich „I use a QRCode-based Authenticator (Time-based)“ (Zahlenfolge muss eingegeben werden) oder „I use a QRCode-based Authenticator (Event-based)“ (Push Nachricht muss bestätigt werden) gewählt, der QR Code gescanned, sowie auf „Register“ geklickt werden.

Zurück im User Objekt „Ali Gator“ muss der OpenOTP OTP Typ noch auf „Token“ konfiguriert werden. Dazu auf „WebADM settings [Configure]“ und „OpenOTP“ klicken und die ersten beiden Check Boxen anhaken sowie auf „Default“ (Login Mode: LDAPOTP (Default) / OTP Type: Token (Default)) belassen. Ganz unten am Ende der Seite -> „Apply“.

*Trommel wirbel* Der erste Test:

  • Links den User (Ali Gator) wählen
  • Rechts „MFA Authentication Server“ wählen
  • Nach unten scrollen und „Test User Authentication“ wählen
  • LDAP Passwor für den Test User (Ali Gator“ eingeben)
  • „Start“ klicken
  • Token aus der App ablesen / Push Message bestätigen
  • „Continue“ klicken
  • Hoffentlich über „Success“ freuen 🙂

In Part III geht es dann vermutlich über die Jecken Tage (Karneval) damit weiter, wie ein Windows Client / Server OS per Zwei-Faktor-Authentifizierung gesichert werden kann. *Tätää* 😉

RCDevs kostenlose Multi-Faktor-Authentifizierung Part I

RCDevs Security Solutions (https://www.rcdevs.com/) bietet eine kostenlose Multi-Faktor-Authentifizierung (OpenOTP) für bis zu 40 Benutzer. Hier ein kleines How-To für die auf CentOS basierende Appliance.

Um eine Zwei-Faktor-Authentifizierung für die Windows Anmeldung am Remotedesktop-Session-Host oder am Citrix ADC zu realisieren benötigt man folgende Komponenten:

  • Die RCDevs VMware Appliance (oder die einzelnen Komponenten): https://www.rcdevs.com/downloads/VMWare+Appliances/
  • Einen (eingerichteten) Citrix Application Delivery Controller (Netscaler)
  • Einen RDSH bzw. einen Windows Client der per Multi-Faktor-Authentifizierung abgesichert werden soll

Sobald die OVF der Appliance bereitgestellt und die virtuelle Maschine gestartet wurde, bootet diese ins Setup und verlangt dort diverse Eingaben. Ärgerlicherweise lässt sich dort das Keyboard Layout nicht ändern. Daher bekommt man spätestens bei der Eingabe des Domain DNs oder auch des Passworts (mit Sonderzeichen) Probleme. Da ich bei der ersten Einrichtung kläglich gescheitert bin, ist meine Empfehlung, das Setup mit „STRG + C“ abzubrechen und ein deutsches Tastaturlayout nachzuladen und zu aktivieren. Ebenfalls bietet es sich an das root Passwort („password“), den Hostnamen zu ändern sowie ggfs. die VMware Tools zu installieren:

# Installation des kbd Paketes / Umschalten auf ein deutsches Tastaturlayout
yum install kbd
localectl set-keymap de
localectl

# Ändern des Standard Root Passwort von "password" in ein indivduelles
passwd

# Installation VMware Tools
yum install -y open-vm-tools

# Ändern des Hostname
hostnamectl set-hostname RCDevs-VM

# Reboot des Systems, damit der Hostname übernommen wird
reboot

# Nach dem Reboot kann sich mit 
vm_init

Für die meisten dürfte das Initialsetup folgendermaßen ablaufen:

  • Please select a continent or ocean -> 8
  • Please select a country -> 15
  • Please select one of the following time zone regions -> 1
  • Do you want to configure a static IP -> y
  • (IP Adresse / Subnetzmaske / Gateway / DNS entsprechend konfigurieren und bestätigen)
  • Chose a directory template -> 3
  • Please type name/ip of the LDAP server -> <IP oder Name des DCs)
  • Please type the port for LDAP -> 389 (In einer produktiven Umgebung eher 636!)
  • Please chose the encryption -> NONE (In einer produktiven Umgebung eher TLS/SSL!)
  • Please type domain FQDN -> dc=lab,dc=jans,dc=cloud
  • Please type a user with read/write access to LDAP -> cn=Administrator,cn=Users (In einer produktiven Umgebung sollte ein Service-Account genutzt werden! Da der domain FQDN angegeben wurde darf dieser nicht an den hier angegebenen User angehangen werden!)
  • Please type the user password -> <Streng_geheimes_Passwort!>
  • Please type the WebADM container -> cn=WebADM (Da der domain FQDN angegeben wurde darf dieser nicht an den hier angegebenen User angehangen werden!)

Wie im letzte Screenshot zu sehen ist, geht es in der Web Administration unter „https://<IP-der-Appliance>“ weiter. Hier ist erneut zu beachten, dass beim Login der Domain FQDN nicht angehangen werden darf. In meinem Fall logge ich mich also mit dem User „cn=Administrator,cn=Users“ ein! Nach der ersten Anmeldung muss sich zuerst um „Your WebADM installation is not completely configured!“ gekümmert werden. Dazu scrollt man auf der „WebADM setup“ Seite nach unten und stellt in einer deutschsprachigen Umgebung fest, dass er die Super-Admins „cn=Domain Admins…“ nicht finden kann. Das interessiert an dieser Stelle vorerst nicht und wir klicken nicht auf den „Create WebADM super admin groups“ Button sondern auf „Create default containers and objects“. Wenn alle Container erfolgreich erstellt wurden sollte man sich ausloggen. Vor dem nächsten Login (ohne DN (cn=Administrator,cn=Users)!), öffnen wir eine SSH Sitzung / die VMware Konsole und öffnen die „/opt/webadm/conf/webadm.conf“.

In der nähe von Zeile 60 sollte ein Eintrag bzgl. der Super-Admins zu finden sein. Dort die zweite Zeile mit den „Domain Admins“ einfach durch einen DN der Gruppe mit den Multi-Faktor-Authentifizierung Admins austauschen.

52 # Super administrators have extended WebADM privileges such as setup permissions,
53 # additional operations and unlimited access to any LDAP encrypted data. Access
54 # restriction configured in the WebADM OptionSets do not apply to super admins.
55 # You can set a list of individual LDAP users or LDAP groups here.
56 # With ActiveDirectory, your administrator account should be is something like
57 # cn=Administrator,cn=Users. And you can replace the sample
58 # super_admins group on the second line with an existing security group.
59 super_admins „cn=administrator,cn=users“, \
60 „cn=MFA-Admins,cn=Users“

/opt/webadm/conf/webadm.conf
#Öffnen der /opt/webadm/conf/webadm.conf
vi /opt/webadm/conf/webadm.conf

#Neustart des WebADM
/opt/webadm/bin/webadm restart

Bevor der OpenOTP MFA Server im zweiten Teil in Betrieb genommen wird, empfiehlt es sich, die Domain „Default“ in den Kurznamen der Windows Active Directory Domäne (in meinem Fall „lab“) umzubenennen. Dazu im WebADM auf „Admin“ klicken und „Local Domains (1)“ wählen. Jetzt auf „Rename“ klicken, den neuen Namen eingeben und erneut auf „Rename“ klicken. Mit Klick auf „Ok“ wird der Vorgang dann abgeschlossen.


An dieser Stelle vorerst ein Break! Heute Abend Morgen geht es weiter mit der Multi-Faktor-Authentifizierung Part II. 🙂