Backup & Restore UCS

Verwalten Sie Windows-Rechner in Ihrer UCS-Domäne? Setzen Sie auch Samba ein, um einen Active-Directory-kompatiblen Domänencontroller mit einem Anmeldedienst für die Windows-Clients bereitzustellen? Dann haben Sie sich vielleicht schon gefragt, welche Backup-und-Restore-Strategie für Ihre Umgebung passend ist. Welche Daten gilt es zu sichern? Wie gehen Sie vor, um im Ernstfall einen einzelnen Domänencontroller (DC) wiederherzustellen? Und was ist zu tun, wenn die ganze Domäne von einem Ausfall betroffen ist?

In diesem Artikel möchte ich Ihnen verschiedene Ansätze zum Backup und Restore von Samba unter UCS vorstellen. Zugegeben, an einigen Stellen wird es etwas technisch – ich möchte Sie daher ausdrücklich ermuntern, eventuelle Fragen mit uns und anderen UCS-Anwenderinnen und -⁠Anwendern im Forum zu diskutieren.

Was kann schiefgehen?

Viele Dinge können den Admin um seinen Schlaf bringen – gerade in einer großen Umgebung mit vielen Rechnern an verteilten Standorten gibt es auch viele Möglichkeiten für Störfälle. Es muss aber nicht unbedingt ein Angriff von außen sein, der die Domäne mit Ransomware oder einem anderen Trojaner lahmlegt. Auch ein Hardware-Ausfall, eine falsche Konfiguration oder ein anderer Bug kann dafür sorgen, dass einzelne Systeme bzw. die ganze Domäne ausfallen.

Das Ganze ist unter anderem so komplex, weil die gesamte Active-Directory-Domänen-Datenbank auf mehrere Domänencontroller verteilt ist. Streng genommen handelt es sich dabei natürlich um mehrere Datenbanken: eine übergeordnete, die die Benutzeraccounts verwaltet, und auf jedem DC gibt es außerdem eine lokale Kopie davon. Im Hintergrund synchronisiert Samba die Daten regelmäßig, sodass jeder Domänencontroller stets auf dem aktuellen Stand ist (Stichwort Replikation).

Im „einfachsten“ Fall funktioniert ein einzelner Domänencontroller nicht richtig, während der Rest der Domäne aber tadellos läuft. Das kann passieren, wenn beispielsweise die lokale DC-Datenbank beschädigt ist. Jeder DC speichert darüber hinaus in seiner Datenbank lokale Informationen, die nicht repliziert werden – auch das kann zu Problemen führen. Funktioniert der Rest der Domäne, können Sie einzelne DCs wiederherstellen und dann erneut in die Domäne einbinden (rejoin). Danach ersetzt der DC seine beschädigte lokale Datenbank-Kopie durch eine neue Kopie, die (hoffentlich) fehlerfrei ist.

Was sollten Sie sichern?

Grundsätzlich gibt es verschiedene Ansätze. Neben dem klassischen dateibasierten Backup setzen einige Admins zusätzlich auf Snapshots bei der Daten- und Systemsicherung. Snapshots benötigen in der Regel weniger Zeit, erzeugen weniger Last auf den Systemen und verringern den Datenverkehr. Während Snapshot-basierte Backups durchaus ihre Berechtigungen in einer Backup-Strategie haben, können sie dateibasierte Backups aber nicht ersetzen.

Letztere sollten als Zusatzversicherung immer Teil des eigenen Backup-Plans sein, denn beim Rücksichern von Snapshots gibt es einiges zu beachten. So müssen beispielsweise alle Domänencontroller zur selben Zeit zurückgesetzt werden – gelingt das nicht, müssen diese erneut der Domäne beitreten (rejoin). Außerdem ist ein Wiederherstellen von einzelnen Dateien aus einem Snapshot umständlich, weswegen es sinnvoll ist, bestimmte Dateien einzeln zu sichern.

Welche Daten und Einstellungen benötigen Sie im Ernstfall, um ein System oder eine ganze Domäne wiederherzustellen?

  • LDAP-Datenbanken
  • TDB-Datenbanken
  • Konfigurationsdatei smb.conf
  • Gruppenrichtlinien

Im Folgenden möchte ich Ihnen zeigen, welche Tools und Mechanismen Univention Corporate Server (UCS) bereits mitbringt, um wichtige Dateien Ihrer Domäne zu sichern.

Tägliche LDAP- und Samba-Sicherungen

Univention Corporate Server bringt bereits ein paar sinnvolle Voreinstellungen mit, was das Backup systemrelevanter Daten betrifft. Ein Cronjob sichert jeden Tag den Inhalt des LDAP-Verzeichnisses auf dem Primary Directory Node und auf allen Backup Directory Nodes Ihrer Domäne. In der Voreinstellung läuft der Cronjob jede Nacht um Mitternacht und ruft das Skript /usr/sbin/univention-ldap-backup auf:

~# cat /etc/cron.d/univention-ldap-server
[…]
0 0 * * * root /usr/sbin/univention-ldap-backup

Als Ergebnis landen jede Nacht zwei Sicherungsdateien im Verzeichnis /var/univention-backup: eine mit gzip komprimierte LDIF-Datei (LDAP Data Interchange Format) und ein mit gzip komprimiertes Logfile. Beide Dateien sind nur für den Benutzer root lesbar.


Univention Backup

Setzen Sie Samba in Ihrer Domäne ein, sichert ein weiterer Cronjob jede Nacht um 3 Uhr diverse Dateien aus dem Verzeichnis /var/lib/samba. Diese Backups erzeugt das Skript /usr/sbin/univention-samba4-backup, und die Sicherungskopien landen im Ordner /var/univention-backup/samba.

In beiden Fällen sorgen die jeweiligen Backup-Skripte dafür, dass die Sicherungsdateien einen Zeitstempel im Namen tragen, der sich aus der Jahreszahl, dem Monat und dem Tag zusammensetzt.
Wie lange UCS alte Backups aufhebt, definiert die UCR-Variable backup/clean/max_age. Seit UCS 4.4-7 ist hier automatisch 365 eingetragen. Über die Univention Configuration Registry, die Sie über das Portal, Kachel System öffnen, können Sie den Wert verändern. Falls die Variable nicht gesetzt ist, werden keine Backups gelöscht.


Screenshot Univention Configuration Registry

Auch die beiden Cronjobs zum Sichern der LDAP- und Samba-Daten können Sie über UCR-Variablen beeinflussen. Für den LDAP-Server ist das die Variable slapd/backup/cron, und für Samba 4 die Variable samba4/backup/cron.

Hinweis: Bitte bearbeiten Sie die Cronjobs unter /etc/cron.d/ nicht direkt in einem Texteditor, da die Dateien von der Univention Configuration Registry gegebenenfalls überschrieben werden.

Das Univention-Backup-Skript für Samba

Das erwähnte Backup-Skript für Samba (/usr/sbin/univention-samba4-backup) definiert zunächst das Startverzeichnis (/var/lib/samba) und dann das Verzeichnis für die Sicherungskopien (/var/univention-backup/samba). Zuerst kümmert sich das Skript um das Unterverzeichnis private und schaut dort nach, ob es .ldb und .tdb-Dateien gibt:

  • LDB ist die in Samba eingesetzte Datenbank-Engine, eine eingebettete LDAP-ähnliche Datenbankbibliothek, jedoch nicht vollständig kompatibel zu LDAP. LDB kann seine Datenbank in .tdb-Dateien speichern oder mit einem LDAP-Server kommunizieren.
  • TDB (Trivial DataBase) ist eine sehr einfache Schlüssel-Werte-Datenbank (auch Key Value Database oder Key Value Store). Jeder Datensatz hat einen Schlüssel und einige mit diesem Schlüssel verbundene Daten. TDB speichert Daten im Binärformat.

Das Tool tdbbackup, das zur Samba-Suite gehört, erstellt Backups von beiden Dateitypen und packt diese in .tar.bz2-Archive zusammen; exclude-Statements schließen in diesem Zusammenhang ein paar Dateitypen aus. Auch Dateien aus dem Verzeichnis /var/lib/samba/sysvol packt das Univention-Skript zu .tar.bz2-Archiven zusammen. Zum Schluss entfernt das Skript alte Backups.

Für die meisten Umgebungen sollte das Backup-Skript /usr/sbin/univention-samba4-backup und die vorgestellten Zeitpläne ausreichend sein. Wenn Ihnen hier etwas fehlt und Sie ein eigenes Backup-Konzept für Samba entwickeln möchten, dann empfehle ich diesen englischsprachigen Artikel im Samba-Wiki. Er führt nicht nur ins Thema ein, sondern beschreibt auch detailliert unterschiedliche Backup-Ansätze (online, offline und rename) und wie Sie im Ernstfall eine Samba Active Directory Domäne oder einen einzelnen Domänencontroller wiederherstellen.

Sicher ist sicher

Grundsätzlich gilt, dass Sie jede Backup-Strategie regelmäßig überprüfen sollten – dazu gehört auch eine Wiederherstellung in einer Testumgebung.
Wie sieht die Backup-Strategie für Ihre Domänen aus? Setzen Sie außer den UCS-Bordmitteln weitere Tools und Skripte ein? Diskutieren Sie gerne mit uns – entweder in den Kommentaren unter diesem Artikel oder im Forum.

UCS Core Edition jetzt kostenfrei einsetzen!

Zum Downloadbereich
Julia Bremer

Julia hat ihre Ausbildung zur Fachinformatikerin der Anwendungsentwicklung im Juli 2021 bei Univention erfolgreich abgeschlossen und arbeitet nun als Open Source Software Engineer.

Was ist Ihre Meinung? Hinterlassen Sie einen Kommentar!

Kommentare

  1. ok, ich hab jetzt also mein UCS 4.4-8 verspult, irgendwas mit der Namensauflösung.
    Wie lautet denn nun der Befehl, um die Sicherung von vorgestern zurückzuspielen?

    Antworten
  2. Sebastian Schwarzbrunn

    Moin. Der Vorstellungstext von Julia Bremer sollte vielleicht nochmal überarbeitet werden. Das Wort „Auszubildung“ ist mir zumindest noch nicht untergekommen. Klingt so, als hätte es sich jemand mitten im Wort anders überlegt 😉

    Viele Grüße…

    Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert