Bundesamt für Sicherheit in der Informationstechnik

M 6.135 Regelmäßige Sicherung wichtiger Systemkomponenten eines Samba-Servers

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Verantwortliche für die Datensicherung

Der Ausfall eines Samba-Servers kann gravierende Auswirkungen auf die Geschäftsprozesse einer Behörde oder eines Unternehmens haben. Unbeabsichtigte Änderungen, wie zum Beispiel Fehlkonfigurationen oder Hardwarefehler, können die Wiederherstellung wichtiger Systemkomponenten erfordern. Zu den wichtigen Systemkomponenten zählen nicht nur die eigentlichen Systemdateien (zum Beispiel der smbd Dämon des Samba Pakets), sondern auch Konfigurationsdaten (zum Beispiel in smb.conf), Statusinformationen (zum Beispiel in den Trivial Database (TDB)-Dateien) und Protokolldaten (zum Beispiel die Logdatei des smbd Dämons). Die Sicherung der Daten muss im Rahmen der Vorgaben eines Datensicherungskonzepts (siehe Baustein B 1.4 Datensicherungskonzept ) durchgeführt werden.

Bei der Wiederherstellung von Konfigurationsdaten, Statusinformationen und Systemdateien sollte darauf geachtet werden, dass diese zueinander kompatibel sind. Werden beispielsweise zur Wiederherstellung der Konfiguration eines Samba-Servers Konfigurationsdaten verwendet, die ursprünglich mit einer neueren Version des Samba-Pakets in Verwendung waren, so kann dies zu Problemen führen. Möglicherweise kann die ältere Version von Samba einige Parameter in der Konfiguration nicht auswerten, da diese erst in einer späteren Version von Samba hinzugekommen sind. Dies kann zu unerwünschten (Seiten-)Effekten führen bzw. den Betrieb von Samba gänzlich verhindern. Außerdem sollte vor einer Wiederherstellung sichergestellt werden, dass das Basisbetriebssystem identisch eingerichtet wurde (siehe auch M 4.331 Sichere Konfiguration des Betriebssystems für einen Samba-Server ).

Entsprechend der Serverrolle und den Verfügbarkeitsanforderungen sollte die Wiederherstellung und die Wiederherstellungsdauer im Rahmen eines Notfallplans für den Server regelmäßig getestet und verbessert werden.

Um den Zustand eines Samba-Servers wiederherstellen zu können sollten die folgenden Daten / Informationen regelmäßig gesichert werden:

  • Datei smb.conf (Konfigurationsdaten)
  • Wichtige TDB-Dateien (Konfigurationsdaten und Statusinformationen)
  • Kontoinformationen (Statusinformationen)
  • Verzeichnis für Logdateien (Protokolldaten)

In den nachstehenden Abschnitten werden Maßnahmen zum Sichern dieser Daten / Informationen angeführt.

smb.conf (Konfigurationsdaten)

Bei der Datei smb.conf handelt es sich um die zentrale Konfigurationsdatei von Samba. Einstellungen zum Verhalten der Samba-Dienste (nmbd, smbd und winbindd) werden in dieser Datei vorgenommen.

Der Speicherort dieser Datei hängt von den Optionen ab, mit denen Samba kompiliert wurde. Mit "smbd -b | grep smb.conf" kann der Speicherort in Erfahrung gebracht werden.

TDB-Dateien (Konfigurationsdaten und Statusinformationen)

Samba legt in den TDB-Dateien unterschiedlichste Informationen ab. Hier einige Beispiele:

  • Samba legt als Mitglied einer Domäne das Passwort des Computerkontos in der Datei secrets.tdb ab. Bei einem Computerkonto handelt es sich um ein normales Benutzerkonto in der Domänen-Benutzerdatenbank, das für jeden Mitgliedsrechner existiert. Anhand des Passworts dieses Computerkontos authentisieren sich Domänenmitglieder und Domänencontroller gegenseitig. Geht das Passwort des Computerkontos verloren, muss Samba der Domäne neu beitreten.
  • In der Funktion als Primary Domain Controller (PDC) speichert Samba in secrets.tdb den Domänen-Security Identifier (SID). Der Verlust des SID bedeutet unter Umständen, dass sämtliche Clients der Domäne erneut beitreten und sämtliche Benutzerprofile an die neue Domäne angepasst werden müssen.
  • In anderen TDB-Dateien werden in der Regel nur temporäre Informationen abgelegt, deren Verlust keine Konsequenzen nach sich zieht.

Samba speichert TDB-Dateien in zwei Verzeichnissen. Mit "smbd - b | grep PRIVATE_DIR" kann der Ort des PRIVATE_DIR-Verzeichnisses ermittelt werden, außer wenn in smb.conf die Option "private dir" verwendet wurde. In diesem Ordner werden die TDB-Dateien mit vertraulichen Informationen abgelegt. Beim zweiten Verzeichnis handelt es sich um das LOCKDIR-Verzeichnis. Darin werden TDB-Dateien mit nicht vertraulichen Informationen abgelegt. Mit "smbd -b | grep LOCKDIR" kann der Speicherort des LOCKDIR-Verzeichnisses ausgegeben werden, außer wenn in smb.conf die Option "lock directory" verwendet wird.

Es wird empfohlen von allen TDB-Dateien in beiden Verzeichnissen regelmäßig Sicherungskopien zu erstellen. TDB-Dateien, die in Unterverzeichnissen dieser beiden Verzeichnisse abgelegt sind, müssen nicht gesichert werden. Diese enthalten Informationen, die für eine Wiederherstellung nicht nötig sind. Es ist darauf zu achten, dass die Sicherung der TDB-Dateien auf ordnungsgemäße Art erfolgt (siehe Abschnitt "Korrekte Sicherung von TDB-Dateien").

Kontoinformationen (Statusinformationen)

Je nachdem, welches Backend (Parameter "passdb backend" in smb.conf) Samba zum Speichern der Kontoinformationen nutzt, muss für die Sicherung ein anderer Weg gewählt werden. In Samba 3.0.0 bis 3.0.23 konnten mehrere Backends gleichzeitig verwendet werden. Frühere sowie spätere Versionen von Samba unterstützen diese Funktion nicht.

Für eine Wiederherstellung ist es notwendig, die Kontoinformationen aus allen eingesetzten Backends regelmäßig zu sichern. Je nachdem, welches oder welche Backends zum Einsatz kommen, werden für die Sicherung der Kontoinformationen folgende Vorgehensweisen empfohlen:

  • smbpasswd
    Falls nicht anders über den Parameter "passdb backend" in smb.conf konfiguriert (zum Beispiel "passdb backend = smbpasswd:/etc/smb/ priv/datafile"), hängt der Speicherort dieser Textdatei davon ab, mit welchen Optionen Samba kompiliert wurde. Wenn der Parameter "passdb backend" nicht benutzt wurde, kann der Speicherort mit "smbd -b | grep SMB_PASSWD_FILE" in Erfahrung gebracht werden. Da es sich bei dieser Datei um eine einfache Textdatei handelt, sind bei der Sicherung keine Besonderheiten zu berücksichtigen.
  • tdbsam
    Standardmäßig werden die Kontoinformationen in der Datei passdb.tdb im Verzeichnis PRIVATE_DIR gespeichert. Der Speicherort kann über den Parameter "passdb backend" in smb.conf verändert werden (zum Beispiel "passdb backend = tdbsam:/etc/smb/priv/datafile.tdb"). Es ist darauf zu achten, dass von dieser TDB-Datei Sicherungen auf ordnungsgemäße Art durchgeführt werden (siehe Abschnitt "Korrekte Sicherung von TDB-Dateien").
  • ldapsam
    Sollte kein Prozess für die regelmäßige Sicherung des vollständigen Lightweight Directory Access Protocol ( LDAP )-Verzeichnisses in der Behörde oder im Unternehmen existieren, so muss ein eigener Prozess für die Sicherung der für Samba relevanten Kontoinformationen etabliert werden.

Verzeichnis für Logdateien (Protokolldaten)

In diesem Verzeichnis speichern nmbd, smbd und winbindd ihre Protokolldateien. Um den Zustand eines Samba-Servers wiederherzustellen, sind die Daten nicht nötig. Doch im Hinblick auf eine nachträgliche Suche nach Fehlerursachen sollten diese Daten regelmäßig gesichert werden.

Falls nicht anders in smb.conf konfiguriert (Option "log file"), hängt der Ort des Verzeichnisses davon ab, mit welchen Optionen Samba kompiliert wurde. In diesem Fall kann das Verzeichnis mit "smbd -b | grep LOGFILEBASE" ermittelt werden.

Korrekte Sicherung von TDB-Dateien

Bei TDB handelt es sich um ein binäres Datenbankformat, ähnlich der Berkeley DB, das gleichzeitigen Schreibzugriff von mehreren Prozessen sowie Locking unterstützt. Eine Besonderheit der TDB-Dateien ist, dass die Inhalte der Datenbanken von den Dämonen (nmbd, smbd und winbindd) oft für längere Zeit zwischengespeichert werden und die Inhalte auf der Festplatte zu Laufzeit nicht immer aktuell sein müssen. Außerdem werden beim Schreiben in TDB-Dateien die Zeitstempel der Dateien nicht aktualisiert.

Wenn TDB-Dateien im laufenden Betrieb mit ungeeigneten Programmen (zum Beispiel "cp") gesichert werden, berücksichtigen diese deren Besonderheiten nicht. Die erstellten Sicherungen sind unter Umständen unbrauchbar. Sicherungsmechanismen wie "rsync" haben im Normalbetrieb damit Probleme, dass sich die Zeitstempel der TDB-Dateien nach Schreiboperation nicht ändern. Rsync ist so nicht in der Lage zu erkennen, ob sich am Inhalt der TDB-Dateien etwas geändert hat.

Um eine konsistente Sicherung der Datenbanken zur Laufzeit von Samba zu erstellen, muss die Applikation "tdbbackup" verwendet werden. Der Aufruf "tdbbackup /etc/samba/passdb.tdb" erzeugt die Sicherungsdatei /etc/samba/ passdb.tdb.bak. Mit dem Aufruf "tdbbackup -v etc/samba/passdb.tdb" kann die Integrität der Datenbank geprüft werden. Werden Schäden gefunden, so wird eine eventuell vorhandene Backup-Datei benutzt, um die Datenbank wiederherzustellen. Über den Parameter -s kann tdbbackup übermittelt werden, welche Dateinamenserweiterungen bei der Sicherung und der Überprüfung benutzt werden sollen. Denkbar wäre statt .bak eine Datumsangabe wie .20080303.

Prüffragen:

  • Werden die für die Wiederherstellung eines Samba-Servers nötigen Systemkomponenten im Rahmen des organisationsweiten Datensicherungskonzepts gesichert?

  • Werden die Besonderheiten von TDB -Dateien bei der Sicherung berücksichtigt?

  • Wird bei der Wiederherstellung von Konfigurationsdaten, Statusinformationen oder Systemdateien darauf geachtet, dass diese zueinander kompatibel sind?

  • Werden, entsprechend der Serverrolle und den Verfügbarkeitsanforderungen, die Wiederherstellung und die Wiederherstellungsdauer im Rahmen eines Notfallplans für den Server getestet und gegebenenfalls verbessert?

  • Werden die Kontoinformationen aus allen eingesetzten Backends regelmäßig und ordnungsgemäß gesichert?

Stand: 11. EL Stand 2009