Windows Server Backup Fehler 800423F4 bei CentOS 6.7 VM mit SELinux

Heute mal wieder ein Windows Server Backup Problem der etwas spezielleren Art. Es geht um den Fehler-Code 800423F4, der beim Backup einer CentOS 6.7 VM (abgesichert mit SELinux) auftrat.

1. Szenario

  • Windows Server 2012R2 als Hyper-V Host
  • CentOS 6.7 mit aktiviertem SELinux und installierten Hyper-V Linux Integrated Services (yum install hyperv-daemons) als Virtuelle Maschine
  • Online Windows Server Backup der CentOS-VM („Live virtual machine backup“) mithilfe des Hyper-V VSS Writers (wird erst ab Windows Server 2012R2 unterstützt, siehe Quellen)

2. Fehlermeldungen und Logs

2.1. 800423F4 Fehlermeldung des Windows Server Backup Dienstes

Die Fehlermeldung des Windows Server Backup Dienstes auf dem Hyper-V Host sieht wie folgt aus:

Fehler des Writers
Writer-ID: "{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}"
Instanz-ID: "{ECE207FA-AAAE-4F0E-9B73-60E152A3227C}"
Name des Writers: "Microsoft Hyper-V VSS Writer"
Status des Writers: "8"
Fehlerergebnis: "800423F4"
Anwendungsergebnis: "80004005"
Anwendungsmeldung: "(null)"
Komponente: "9759C888-FBAB-4FEF-AFD5-DF03F5BB5487"
Logischer Pfad: "(null)"
Komponentenergebnis: "800423F4"
Komponentenmeldung: (null)
Dateiangabe: "E:\eset\eset\Virtual Machines\\9759C888-FBAB-4FEF-AFD5-DF03F5BB5487.xml", rekursiv: "0"
Dateiangabe: "E:\eset\\ERA_Server-disk1.vhdx", rekursiv: "0"
Dateiangabe: "E:\eset\ERA_Server-disk1_7E3DC7F8-937D-411E-B2E8-9CD5AEB50552.avhdx", rekursiv: "0"
Dateiangabe: "E:\eset\eset\Snapshots\7E3DC7F8-937D-411E-B2E8-9CD5AEB50552.xml", rekursiv: "0"
*-----------------------------*


Anwendungssicherung
Writer-ID: "{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}"
Komponente: "9759C888-FBAB-4FEF-AFD5-DF03F5BB5487"
Beschreibung     : Online\eset
Logischer Pfad: ""
Fehler           : 80780175
Fehlermeldung   : Eine Komponente wurde bei der Schattenkopie des Volumes übersprungen.

Detaillierter Fehler  : 800423F4
Detaillierte Fehlermeldung : Für den Generator wurde ein nicht vorübergehender Fehler festgestellt. Wenn der Sicherungsvorgang wiederholt wird,
tritt der Fehler höchstwahrscheinlich erneut auf.



*-----------------------------*

(Ja, die Fehler traten bei einer ESET Remote Administration – Appliance auf, die aber auf CentOS 6.7 basiert.)

2.2. relevante CentOS 6.7 Log-Einträge

/var/log/messages:

Aug 23 12:46:24 eset Hyper-V VSS: FREEZE of /proc/sys/fs/binfmt_misc failed; error:13 Permission denied
Aug 23 12:46:24 eset Hyper-V VSS: VSS: op=FREEZE: failed
Aug 23 12:46:24 eset Hyper-V VSS: op=5 failed!
Aug 23 12:46:24 eset Hyper-V VSS: report it with these files:
Aug 23 12:46:24 eset Hyper-V VSS: /etc/fstab and /proc/mounts

/var/log/audit/audit.log:

type=AVC msg=audit(1440326784.521:191): avc:  denied  { read } for  pid=1317 comm="hv_vss_daemon" name="/" dev=dm-2 ino=2 scontext=system_u:system_r:hypervvssd_t:s0 tcontext=system_u:object_r:home_root_t:s0 tclass=dir
type=SYSCALL msg=audit(1440326784.521:191): arch=c000003e syscall=2 success=no exit=-13 a0=1ff726b a1=0 a2=2 a3=1 items=0 ppid=1 pid=1317 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="hv_vss_daemon" exe="/usr/sbin/hv_vss_daemon" subj=system_u:system_r:hypervvssd_t:s0 key=(null)

Die Logs deuten also darauf hin, dass SELinux dem hypervvssd-Dienst bestimmte Rechte verweigert.

3. Lösungen

Lösung 1 (einfach): Umschalten von SELinux in den „Permissive“ Modus

Diese Lösung ist nicht zu empfehlen, da sie die Sicherheit des Systems schwächt. Wer es dennoch einfach haben möchte, hier die Schritte:

In der Datei /etc/selinux/config einfach den Eintrag

SELINUX=enforcing

in

SELINUX=permissive

abändern. Speichern. CentOS neustarten.

Lösung 2 (sichererer): SELinux Richtlinienanpassung mithilfe von audit2allow

Dazu speichern wir die durch „audit2allow“ erzeugten Berechtigungen erstmal ab und schauen sie uns an:

grep hypervvssd_t /var/log/audit/audit.log | audit2allow -m hypervvssd > hypervvssd.te
cat hypervvssd.te

module hypervvssd 1.0;

require {
type home_root_t;
type hypervvssd_t;
class dir { read write };
}

#============= hypervvssd_t ==============
#!!!! The source type 'hypervvssd_t' can write to a 'dir' of the following types:
# boot_t, root_t, cluster_conf_t, cluster_var_lib_t, cluster_var_run_t

allow hypervvssd_t home_root_t:dir { read write };

Wie man sieht, macht „audit2allow“ direkt einen Vorschlag, den wir auch im nächsten Schritt übernehmen:

grep hypervvssd_t /var/log/audit/audit.log | audit2allow -M hypervvssd

Dann müssen wir das Richtlinien-Modul noch installieren/aktivieren (damit wird das Modul auch persistent im System und übersteht auch Neustarts):

semodule -i hypervvssd.pp

Im Anschluss noch überprüfen, ob das Modul geladen ist:

semodule -l
...
hypervvssd       1.0
...

Am besten am Ende nochmal einen Neustart machen und prüfen, ob das Modul auch wirklich persistent ist. Das Windows Server Live Backup der CentOS-VM sollte nun ohne Fehlermeldungen durchlaufen.

4. Quellen

4 Gedanken zu „Windows Server Backup Fehler 800423F4 bei CentOS 6.7 VM mit SELinux“

  1. Hallo,

    stehe vor genau dem gleichen Problem mit CentOS 7.2. Allerdings tauchen bei mir unter /var/log/messages keine von Dir genannten Hinweise bei einem Sicherungsversuch auf. Um genau zu sein, gar keine Meldungen die auf den Hyper-V VSS schließen lassen. Im audit.log tauchen bei einem Sicherungsversuch auch keine Meldungen auf.

    „systemctl | grep hyperv“ zeigt die hyper-v Daemons als „running“ an. SELINUX habe ich probehalber komplett abgeschaltet.

    Hast Du einen Tipp? Müssen noch Module geladen, entladen werden? Backuplog sieht Deinem sehr ähnlich (https://cloud.clxe.de/index.php/s/azi8nTyCeaJ7Jcr)

    1. Wenn der Fehler auch auftritt, wenn SeLinux abgeschaltet ist, wird es daran auch nicht liegen und dementsprechend werden die im Post gezeigten Fehlermeldungen auch nicht auftauchen. Wird denn zum Backup-Zeitpunkt überhaupt irgendein Fehler in /var/log/messages geloggt?

      1. Nein, im Log taucht leider gar nix auf. Hast Du die Hyper-V Free Variante im Einsatz, oder eine „vollwertige“ Windows Server 2012 Version mit Hyper-V Rolle?

        Ich habe das Problem schon lange, und habe bisher keine Lösung dazu gefunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.