Product SiteDocumentation Site

Kapitel 7. Sicherheit für Virtualisierung

7.1. SELinux und Virtualisierung
7.2. Hinweise in Zusammenhang mit SELinux
Beim Einsatz der Virtualisierungstechnologie innerhalb der Infrastruktur Ihres Unternehmens müssen Sie sicherstellen, dass der Host nicht kompromittiert werden kann. Der Host im Xen-Hypervisor ist die privilegierte Domain, die die Systemverwaltung übernimmt und sämtliche virtuellen Maschinen verwaltet. Falls der Host unsicher ist, sind alle anderen Domains im System angreifbar. Es gibt verschiedene Möglichkeiten zur Verbesserung der Sicherheit auf Systemen mit Virtualisierung. Sie bzw. Ihre Organisation sollte einen Einsatzplan entwickeln, welcher nicht nur Funktionsspezifikationen enthält, sondern auch Dienste spezifiziert, die auf Ihren virtualisierten Gästen und Host-Servern laufen sollen, sowie die nötige Unterstützung für diese Dienste spezifiziert. Nachfolgend sind einige Themen im Zusammenhang mit der Sicherheit aufgeführt, die bei der Entwicklung eines Einsatzplans beachtet werden sollten:

7.1. SELinux und Virtualisierung

Security Enhanced Linux was developed by the NSA with assistance from the Linux community to provide stronger security for Linux. SELinux limits an attackers abilities and works to prevent many common security exploits such as buffer overflow attacks and privilege escalation. It is because of these benefits that Fedora recommends all Linux systems should run with SELinux enabled and in enforcing mode.
SELinux verhindert das Laden von Gastabbildern, wenn SELinux aktiviert ist und die Abbilder nicht im richtigen Verzeichnis liegen. SELinux erfordert, dass alle Gastabbilder in /var/lib/libvirt/images gespeichert sind.
Hinzufügen von LVM-basiertem Speicher mit SELinux im Enforcing-Modus
Der folgende Abschnitt liefert ein Beispiel für das Hinzufügen eines logischen Datenträgers zu einem virtualisierten Gast bei aktiviertem SELinux. Diese Anleitung lässt sich auch auf Festplattenpartitionen übertragen.
Prozedur 7.1. Erstellen und Einhängen eines logischen Datenträgers auf einem virtualisierten Gast mit aktiviertem SELinux
  1. Legen Sie einen logischen Datenträger an. Dieses Beispiel erstellt einen 5 GB großen logischen Datenträger namens NewVolumeName auf der Datenträgergruppe namens volumegroup.
    # lvcreate -n NewVolumeName -L 5G volumegroup
    
  2. Formatieren Sie den logischen Datenträger NewVolumeName mit einem Dateisystem, das erweiterte Attribute unterstützt, wie z. B. ext3.
    # mke2fs -j /dev/volumegroup/NewVolumeName
    
  3. Erzeugen Sie ein neues Verzeichnis, um den neuen logischen Datenträger einzuhängen. Dieses Verzeichnis kann sich überall auf dem Dateisystem befinden, es wird jedoch empfohlen, es weder in einem der wichtigen Systemverzeichnisse zu erstellen (/etc, /var, /sys) noch in Benutzerverzeichnissen (/home oder /root). Dieses Beispiel verwendet ein Verzeichnis namens /virtstorage.
    # mkdir /virtstorage
    
  4. Hängen Sie den logischen Datenträger ein.
    # mount /dev/volumegroup/NewVolumeName /virtstorage
    
  5. Stellen Sie den richtigen SELinux-Typ für das Xen-Verzeichnis ein.
    semanage fcontext -a -t xen_image_t "/virtualization(/.*)?"
    
    
    Oder stellen Sie den richtigen SELinux-Typ für ein KVM-Verzeichnis ein.
    semanage fcontext -a -t virt_image_t "/virtualization(/.*)?"
    
    
    Falls die Targeted-Richtlinie verwendet wird (das ist der Standard), fügt der Befehl eine Zeile zur /etc/selinux/targeted/contexts/files/file_contexts.local-Datei hinzu, wodurch diese Änderung persistent gemacht wird. Die angefügte Zeile sieht etwa wie folgt aus:
    /virtstorage(/.*)?    system_u:object_r:xen_image_t:s0
    
    
  6. Führen Sie den Befehl aus, um den Typ des Einhängepunkts (/virtstorage) und aller darunterliegenden Dateien auf xen_image_t zu ändern (restorecon und setfiles lesen die Dateien in /etc/selinux/targeted/contexts/files/).
    # restorecon -R -v /virtualization