Den einzigen Hyper-V Host in die Domäne aufnehmen?

Mythbusters Hyper-V Edition: Einen einzelnen Hyper-V Host in die Domäne aufnehmen oder lieber nicht?

Wieso und warum? In der Regel betreibt man eine Windows Domäne ja nicht aus Spaß an der Freude.* Wenn sie also da ist, sollte man sie auch nutzen. 😉 Ebenso vereinfacht sich dadurch, insbesondere im Fall einer Server Core Installation, das (Remote) Management des Hyper-V Hosts.
* Das ist in meinen Augen allerdings auch ein Punkt, warum ich grundsätzlich, auch in kleinen Umgebungen, mindestens zwei (2) Domänen Controller empfehle. Hier tut es schon ein kleiner Mini- / Microserver der bekannten Hersteller oder gar ein Intel NUC.

Kommen wir zum Mythos bzw. den Mythen:

  • Henne-Ei-Problem„: Der Hyper-V Host kann den DC / VMs nicht starten ohne die Domäne zu erreichen
  • Eine Anmeldung am Hyper-V ist ohne Verfügbarkeit der Windows Domäne nicht möglich
  • Bei Active Directory Problemen komme ich nicht an meine Umgebung

Hier verweise ich einfach auf die Anmerkung zu mindestens zwei (2) Domain Controller in einer Active Directory Domäne im Abschnitt „Wieso und warum?“. Thema erledigt! – Nein, so einfach mache ich mir das jetzt nicht, da auch in unserer Kundschaft „sparsame“ Kunden unterwegs sind.

Das wichtigste in der Umgebung mit nur einem Host, der zugleich den einzigen DC hosted, ist die automatische Start-Aktion eben dieser einzelnen virtuellen Domain Controller VM. Entgegen der ein oder anderen Erwartung kann der domain-joined Hyper-V Host VMs, und somit auch den einzigen DC, starten ohne das die Domäne erreichbar ist.
Anmerkung: Auch wenn es mehrere Hosts oder ein Hyper-V Cluster gibt, ist es dennoch immer eine gute Idee, die wichtigen virtuellen Maschinen für „Infrastrukturdienste“ immer automatisch starten zu lassen :).

Hyper-V virtuellen Domain Controller immer automatisch starten
Hyper-V virtuellen Domain Controller immer automatisch starten

An dieser Stelle lasse ich den automatischen Start des Domain Controllers absichtlich aus und nehme den Hyper-V Host in meine Domäne auf. Folgerichtig kann ich mich nicht an der Domäne anmelden. Also ist das ganze hier doch kein Mythos? – Nein! Ich melde mich dann einfach mit einem lokalen Konto an welches mindestens in der Gruppe der „Hyper-V-Administratoren“ ist. Sogesehen vermutlich mit dem Konto mit dem ich den Hyper-V bis eben grade noch in der Workgroup administriert habe.

Lokaler User in der Hyper-V-Administratoren Gruppe
Lokaler User in der Hyper-V-Administratoren Gruppe

Nach dem Reboot stelle ich mit Erschrecken fest, ich habe doch glatt vergessen den einzigen Active Directory Domänen Controller automatisch starten zu lassen!

Zum Glück kenne ich die lokalen Anmeldedaten der Konten „hvadmin“ und „localAdmin“ mit denen ich mich anmelde, die VM-Konfiguration anpasse sowie den Start des DCs ausführe. Sobald der DC gebooted ist kann ich mich auch mit einem passenden User aus der Domäne anmelden. Da „GUI“ unendlich langweilig ist, hier die PowerShell Befehle:

Set-VM <VMName des DCs> -AutomaticStartAction Start -AutomaticStartDelay 5
Start-VM jans-dc01

Behandeln wir jetzt („nochmals“) den Fall der Fälle, dass es Probleme mit der VM des DCs oder der AD-Domäne gibt. Hier gibt es zwei nicht so spannende Möglichkeiten:

  1. Ich melde mich, wie oben bereits beschrieben, mit einem lokalen Konto an und troubleshoote die VM / das Active Directory
  2. Ich melde mich mit meinem Domänen User an, obwohl die Domäne offline ist. Dafuq? Ja – Dank „Cached Credentials“. Kurz: Per Default speichert ein Windows Server / Windows Client zehn Anmeldeinformationen zwischen mit denen auch eine Anmeldung ermöglich wird, wenn eben kein DC erreichbar ist. Weitere Informationen zu „Cached Credentials“ sowie Best Practice gibts bei Microsoft -> https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/interactive-logon-number-of-previous-logons-to-cache-in-case-domain-controller-is-not-available

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. 🙂