+== Server Doku ==
+ OS: CentOS7
+ Virtualisierung: QEMU/KVM Libvirt
+ Speicherplatz: 4 Platten als mdadm RAID6 (/dev/md0 ist LUKS encrypted)
+ IP: 192.168.179.6
+ MAC: 00:19:99:da:6a:0e
+Die Maschine gilt nach dem Boot zu entschlüsseln, dies funktioniert wie folgt:
+ pass acolyte/luks | ssh -p 222 root@192.168.179.6 unlock
+für mehr Informationen [https://github.com/dracut-crypt-ssh/dracut-crypt-ssh hier] klicken.<br />
+Das Management der VM's erfolgt durch die Nutzung von virt-manager, sowohl für die user, als auch für die admins.<br />
+Unprivilegierte user Zugriffe sind limitiert und bieten keine Möglichkeit Einstellungen der jeweiligen VM zu manipulieren oder andere VM's zu sehen.<br />
+Mittels SELinux und Polkit werden neue unprivilegierte Nutzer hinzugefügt, denen man dann VM's zuweisen kann.<br />
+Ein Beispiel für das Hinzufügen vom user "test":
+ [root@acolyte ~]# useradd test
+ [root@acolyte ~]# semanage login -s user_u -a test
+ [root@acolyte ~]# vim /etc/security/limits.conf
+nun in limits.conf am Ende folgendes hinzufügen:
+ test hard cpu 0
+ test hard memlock 102400
+ test hard nproc 20
+Nun den user public SSH-Key hinzufügen (nur RSA ist erlaubt):
+ [root@acolyte ~]# su test
+ [test@acolyte ~]$ cd ~
+ [test@acolyte ~]$ umask 022
+ [test@acolyte ~]$ mkdir .ssh
+ [test@acolyte ~]$ echo "ssh-rsa AAAAB3NzaC..." > .ssh/authorized_keys
+"test" sollte nun in der Lage sein sich auf dem Server einzuloggen.<br />
+Nun downloaden wir als admin die gewünschte iso für die VM:
+ [user@acolyte ~]$ wget -O iso/debian-10.1.0-amd64-netinst.iso https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.1.0-amd64-netinst.iso
+Als Nächstes kümmern wir uns um das Aufsetzen der VM von "test".<br />
+Dazu verbinden wir uns als admin mittels virt-manager auf den Server und fügen die VM hinzu.<br />
+Als "Network selection" sollte "Host device enp6s0: macvtap", "Source mode: Bridge" gewählt werden.<br />
+Nun geben wir noch dem user "test" die Freigabe sich auf die VM verbinden zu können:
+ [root@acolyte ~]# vim /etc/polkit-1/rules.d/51-libvirt.rules
+Wir fügen nun zwei Java Script Zeilen in 51-libvirt.rules hinzu;<br />
+im zweiten Funktionsblock:
+ if (subject.user == "test") return polkit.Result.YES;
+und im ersten Funktionsblock:
+ if (a.lookup("domain_uuid") == "cdf9d60b-8cf7-496b-88d4-3ae489969c8f" && s.user == "test") return true;
+Die domain_uuid ist als admin unter VM Einstellungen zu sehen.<br />
+Der user "test" sollte nun in der Lage sein seine domain zu konfigurieren.