Proxmox Domain Integration: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 7: | Zeile 7: | ||
=Einbinden in die Domain= | =Einbinden in die Domain= | ||
{{#drawio:proxmox-domain.png}} | {{#drawio:proxmox-domain.png}} | ||
=Auf allen PMXen= | =Auf allen PMXen= | ||
* | *Root werden | ||
sudo | sudo -i | ||
*LDAP utils installieren | *LDAP utils installieren | ||
apt install ldap-utils | apt install ldap-utils | ||
| Zeile 19: | Zeile 20: | ||
echo "nameserver 10.0.10.109" > /etc/resolv.conf | echo "nameserver 10.0.10.109" > /etc/resolv.conf | ||
oder statisch: | oder statisch: | ||
echo "10.0.10. | 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 | *LDAPS-Funktion testen | ||
ldapsearch -xLLL | 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= | =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 | 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)= | =Anbinden der AD über LDAP (LDAPS)= | ||
*Proxmox WebGUI öffnen | *Proxmox WebGUI öffnen | ||
*Gehe zu: Datacenter | *Gehe zu: Datacenter -> Permissions -> Realms -> Add: LDAP | ||
==LDAP-Konfiguration | |||
==LDAP-Konfiguration - Reiter "General"== | |||
{| class="wikitable" | {| class="wikitable" | ||
! Feld !! Wert | ! Feld !! Wert | ||
| Zeile 41: | Zeile 48: | ||
| Mode || LDAPS | | Mode || LDAPS | ||
|- | |- | ||
| Base Domain Name || OU=spielwiese,DC= | | Base Domain Name || OU=spielwiese,DC=sec-labs,DC=de | ||
|- | |- | ||
| User Attribute || sAMAccountName | | User Attribute || sAMAccountName | ||
|- | |- | ||
| Verify Certificate || ( | | Verify Certificate || aktivieren (CA wurde oben importiert) | ||
|- | |- | ||
| Require TFA || none | | Require TFA || none | ||
| Zeile 73: | Zeile 80: | ||
|} | |} | ||
==Realm Sync | ==Realm Sync - Felder zum Ausfüllen== | ||
{| class="wikitable" | {| class="wikitable" | ||
! Feld | ! Feld !! Wert | ||
|- | |- | ||
| Scope || Users and Groups | | Scope || Users and Groups | ||
| Zeile 87: | Zeile 94: | ||
| Remove Properties || deaktiviert lassen | | Remove Properties || deaktiviert lassen | ||
|} | |} | ||
==Preview sollte so aussehen== | ==Preview sollte so aussehen== | ||
[[Datei:Pmx-ldap1.png]] | [[Datei:Pmx-ldap1.png]] | ||
Die Gruppen heißen in Proxmox danach <Gruppe>-<Realm>, also z.B. GG_Benutzer-spielwiese. | |||
==Danach Syncen== | ==Danach Syncen== | ||
[[Datei:Pmx-ldap2.png]] | [[Datei:Pmx-ldap2.png]] | ||
==Realm Sync Job nach Bedarf== | ==Realm Sync Job nach Bedarf== | ||
[[Datei:Pmx-ldap3.png]] | [[Datei:Pmx-ldap3.png]] | ||
==Benutzerberechtigung== | ==Benutzerberechtigung== | ||
*Gehe zu: Datacenter | *Gehe zu: Datacenter -> Permissions -> Add -> Group Permission | ||
[[Datei:Pmx-ldap4.png]] | [[Datei:Pmx-ldap4.png]] | ||
=Rollen für | =Rollen für GG_Benutzer: Gucken auf alles, Schalten einer VM= | ||
==1. | ==1. Rolle anlegen (einmalig auf einem Proxmox-Host)== | ||
Auf einem beliebigen Cluster-Knoten als root: | 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== | ==2. Rechte auf alle VMs zum Anschauen geben== | ||
Alle Benutzer der Gruppe ''' | Alle Benutzer der Gruppe '''GG_Benutzer''' dürfen den Status aller VMs sehen: | ||
*WebGUI: Datacenter -> Permissions -> Add -> Group Permission | |||
<pre> | <pre> | ||
Path: / | |||
Role: | Group: GG_Benutzer-spielwiese | ||
Role: PVEAuditor | |||
Propagate: aktiviert | |||
</pre> | </pre> | ||
==3. Rechte zum Ein-/Ausschalten einer bestimmten VM geben== | ==3. Rechte zum Ein-/Ausschalten einer bestimmten VM geben== | ||
Zusätzliche Rechte nur für z. | Zusätzliche Rechte nur für z.B. VM 101 (Start, Stop, Shutdown): | ||
*WebGUI: Datacenter -> Permissions -> Add -> Group Permission | |||
<pre> | <pre> | ||
Path: /vms/101 | |||
Role: | Group: GG_Benutzer-spielwiese | ||
Role: VMPowerOnly | |||
</pre> | </pre> | ||
==Ergebnis== | ==Ergebnis== | ||
* ''' | *Mitglieder von '''GG_Benutzer''' sehen alle VMs im Webinterface | ||
* Nur bei VM 101 ist der Power-Button aktiv | *Nur bei VM 101 ist der Power-Button aktiv | ||
* Kein Zugriff auf Konsole, Snapshot, Konfiguration oder andere Aktionen | *Kein Zugriff auf Konsole, Snapshot, Konfiguration oder andere Aktionen | ||
Version vom 15. Oktober 2026, 16:59 Uhr
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
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




