Proxmox Domain Integration

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Download

sudo -i
cd /var/lib/libvirt/images
wget http://192.168.<hs>.200:8000/win2k22-pmx-anbindung.tar.zst
tar -I unzstd -xvf win2k22-pmx-anbindung.tar.zst

Einbinden in die Domain

proxmox-domain.png

Auf allen PMXen

  • Root werden
sudo -i
  • LDAP utils installieren
apt install ldap-utils
  • Stammzertifikat einbauen
cd /usr/local/share/ca-certificates/
wget https://web.samogo.de/certs/win2022-ca.sec-labs.de.crt
update-ca-certificates
  • DC als Nameserver eintragen
echo "nameserver 10.0.10.109" > /etc/resolv.conf

oder statisch:

echo "10.0.10.109 win2022.sec-labs.de win2022" >> /etc/hosts
  • Zertifikat pruefen (muss "Verify return code: 0 (ok)" liefern)
openssl s_client -connect win2022.sec-labs.de:636 </dev/null 2>/dev/null | grep "Verify return"
  • LDAPS-Funktion testen
ldapsearch -xLLL -H ldaps://win2022.sec-labs.de -D ldap@sec-labs.de -w '123Start$' -b OU=spielwiese,DC=sec-labs,DC=de "(objectClass=user)" sAMAccountName

Es sollten die Benutzer aus der OU spielwiese erscheinen.

Anmerkung

AGDLP ist ein Gruppen- und Berechtigungsmodell in Microsoft Active Directory. Dabei werden Benutzerkonten (Accounts) zunächst Globalen Gruppen (Global Groups) zugeordnet, diese wiederum in Domänenlokale Gruppen (Domain Local Groups) geschachtelt, die schließlich Berechtigungen (Permissions) auf Ressourcen erhalten. Dieses Modell erlaubt eine saubere Trennung von Benutzerverwaltung und Rechtevergabe - funktioniert aber in Proxmox nicht, da verschachtelte Gruppen dort nicht aufgelöst werden.

Deshalb werden die Rechte in Proxmox direkt an die globalen Gruppen (GG_...) vergeben, in denen die Benutzer unmittelbar Mitglied sind.

Anbinden der AD über LDAP (LDAPS)

  • Proxmox WebGUI öffnen
  • Gehe zu: Datacenter -> Permissions -> Realms -> Add: LDAP

LDAP-Konfiguration - Reiter "General"

Feld Wert
Realm spielwiese
Server win2022.sec-labs.de
Port 636
Mode LDAPS
Base Domain Name OU=spielwiese,DC=sec-labs,DC=de
User Attribute sAMAccountName
Verify Certificate aktivieren (CA wurde oben importiert)
Require TFA none
Check connection aktiviert lassen

LDAP-Realm-Konfiguration (Sync Options)

Feld Wert
Bind User CN=ldap,OU=dienste,OU=spielwiese,DC=sec-labs,DC=de
Bind Password 123Start$
Groupname attr. sAMAccountName
User classes user
Group classes group
Scope none
Enable new users Yes (Default)
Remove vanished alles deaktiviert lassen

Realm Sync - Felder zum Ausfüllen

Feld Wert
Scope Users and Groups
Enable new Yes
Remove ACL deaktiviert lassen
Remove Entry deaktiviert lassen
Remove Properties deaktiviert lassen

Preview sollte so aussehen

Die Gruppen heißen in Proxmox danach <Gruppe>-<Realm>, also z.B. GG_Benutzer-spielwiese.

Danach Syncen

Realm Sync Job nach Bedarf

Benutzerberechtigung

  • Gehe zu: Datacenter -> Permissions -> Add -> Group Permission

Rollen für GG_Benutzer: Gucken auf alles, Schalten einer VM

1. Rolle anlegen (einmalig auf einem Proxmox-Host)

Auf einem beliebigen Cluster-Knoten als root:

pveum roleadd VMPowerOnly -privs "VM.PowerMgmt VM.Audit"

Für das reine Anschauen wird die eingebaute Rolle PVEAuditor verwendet, dafür muss keine eigene Rolle angelegt werden.

2. Rechte auf alle VMs zum Anschauen geben

Alle Benutzer der Gruppe GG_Benutzer dürfen den Status aller VMs sehen:

  • WebGUI: Datacenter -> Permissions -> Add -> Group Permission
Path:      /
Group:     GG_Benutzer-spielwiese
Role:      PVEAuditor
Propagate: aktiviert

3. Rechte zum Ein-/Ausschalten einer bestimmten VM geben

Zusätzliche Rechte nur für z.B. VM 101 (Start, Stop, Shutdown):

  • WebGUI: Datacenter -> Permissions -> Add -> Group Permission
Path:      /vms/101
Group:     GG_Benutzer-spielwiese
Role:      VMPowerOnly

Ergebnis

  • Mitglieder von GG_Benutzer sehen alle VMs im Webinterface
  • Nur bei VM 101 ist der Power-Button aktiv
  • Kein Zugriff auf Konsole, Snapshot, Konfiguration oder andere Aktionen