Dokumentation LHS - Kapitel 10

Verschlüsselte Daten bringen das Problem mit sich, dass zum "Aufschließen" ein Schlüssel bereitgestellt bzw. eine Passphrase eingegeben werden muss. Wenn dies schon während des Bootvorgangs erforderlich ist, macht das einen Systemneustart per Fernsteuerung (ssh) unmöglich und erfordert den Anschluss von Bildschirm und Tastatur am Server.

Das Betriebssystem des Wirtsrechners enthält selbst keine verschlüsselten Teile und kann daher jederzeit - auch per Fernzugriff - neu gestartet werden. Am Server muss keine Tastatur und kein Bildschirm angeschlossen sein. Erst für den Start des eigentlichen Home Servers (virtuelles Gastsystem) ist eine Passphrase erforderlich. Sie kann über eine interaktive SSH-Verbindung eingegeben oder von einem USB-Stick gelesen werden.

Tabellarische Übersicht der Installationsschritte 1 bis 24.

Nach dem Neustart ist das virtuelle Gastsystem nicht aktiv.

Für einen bequemen Start werden alle erforderlichen Anweisungen in einem Shell-Skript zusammengefasst.

   cd /root/bin
   editor startlhs.sh

Schreiben Sie die Skriptdatei.

Der eigentliche Linux HomeServer kann jetzt durch Aufruf der Skriptdatei gestartet werden.

   ./startlhs.sh --

Der Parameter --bewirkt, dass die Passphrase interaktiv abgefragt wird.

Achtung: Ohne Parameter versucht das Skript, die Passphrase von einem USB-Stick lesen.

Erwartet wird die Passphrase für /dev/mapper/vg1-sec

Die wichtigsten Schritte des Startskriptes können am Bildschirm verfolgt werden.

  • Die verschlüsselte Partition /dev/mapper/vg1-sec wird geöffnet.
  • Die geöffnete Partition wird als /root/safeeingebunden.
  • Weitere Passphrases können jetzt aus dem Verzeichnis /root/safe gelesen werden.
  • Die verschlüsselte Partition /dev/mapper/vg0-lhs wird geöffnet.
  • Die geöffnete Partition wird als /var/lib/vservers/lhseingebunden.
  • Das virtuelle Gastsystem lhs startet.

Das Gastsystem kann vom Skript startlhs.sh auch ohne Benutzereingabe gestartet werden.

Das Skript sucht die Passphrase für /dev/mapper/vg1-sec im Verzeichnis /media.

In diesem Verzeichnis werden USB-Sticks automatisch eingebunden.

Für die vollautomatische Einbundung wird ein weiteres Shellscript benötigt.

   editor autostart.sh

Das Skript autostart.sh soll nach dem Hochfahren des Wirtsrechners automatisch starten.

Das erledigt die Datei /etc/cron.d/startlhs als Cron-Job.

Bearbeiten Sie die Datei /etc/cron.d/startlhs:

   @reboot root test -x /root/bin/autostart.sh && /root/bin/autostart.sh

Als nächstes soll das Gastsystem erstmals im laufenden Betrieb gesichert werden.

  1. Logical Volume bak auf Volume Group vg1 (Raid 1) anlegen:
    lvcreate --size 38G --name bak vg1
  2. Dateisystem des Gastsystems einfrieren:
    xfs_freeze -f /var/lib/vservers/lhs
  3. Snapshot tmpdes Gastsystems erstellen:
    lvcreate --snapshot --size 4G --name tmp /dev/vg0/lhs
  4. Dateisystem des Gastsystems auftauen:
    xfs_freeze -u /var/lib/vservers/lhs
  5. Im Hintergrund den Inhalt des Logical Volumes tmp nach bak kopieren:
    nice dd if=/dev/mapper/vg0-tmp of=/dev/mapper/vg1-bak bs=65536 &

Die Laufzeit des Kopierjobs aus dem letzten Schritt kann zur Skripterstellung genutzt werden.

   editor /etc/cron.daily/copylhs

Dieses Skript übernimmt die tägliche interne Sicherung des Gastsystems.

Die Sicherung wird ausfallsicher auf dem RAID-1-Gerät gespeichert.

Ein weiteres Skript erstellt wöchentliche Kopien.

   editor /etc/cron.weekly/copylhs

Diese Sicherung erlaubt es, Daten wieder her zu stellen, die nach dem Backup versehentlich gelöscht wurden.

Nach Abschluss des Kopiervorgangs kann der Snapshot gelöscht werden.

   lvremove dev/vg0/tmp

Die Sicherungskopie ist verschlüsselt, sie kann mit der gleichen Passphrase wie das Original geöffnet werden.

   cryptsetup luksOpen /dev/mapper/vg1-bak vg1-bak_crypt

Die Sicherungskopie kann jetzt eingesehen werden.

   mount -t xfs -o nouuid /dev/mapper/vg1-bak_crypt /mnt
   mc /mnt /var/lib/vserverslhs

Mit dem Programm mc können Originaldaten und die erste Sicherungskopie eingesehen und verglichen werden.

Zunächst wird die Einbindung der Sicherungskopie zurückgenommen.

   umount /mnt

Anschließend wird die Entschlüsselung deaktiviert.

   cryptsetup luksClose vg1-bak_crypt

Ein Aufruf von lvs zeigt, dass das Volume bak weiter vorhanden ist.

Das ist Voraussetzung für die automatische Tagessicherung, die jetzt getestet wird.

   /etc/cron.daily/copylhs

Bei erfolgreichem Abschluss der Sicherung erscheint die Meldung:
Alle Schritte der täglichen Sicherung beendet.

Anzeige des Einbindungsverzechnisses der Sicherungskopie:

   mount | grep bak

Das Skript bindet Tagessicherungen automatisch unter /var/backups/lhs.bakein.

   mc /var/backups/lhs.bak

Mit dem Programm mc können Originaldaten und die Tagessicherung eingesehen und verglichen werden.

Die Einbindung der Tagessicherung kann zurückgenommen werden.

   umount /var/backups/lhs.bak
   cryptsetup luksClose vg1-bak_crypt

Als nächstes wird das Logical Volume oldfür die Tagessicherung in der Volume Group vg0 angelegt.

   lvcreate --size 38G -name old vg0

Danach kann die vorhandene Tagessicherung aus bak nach old kopiert werden.

   dd if=/dev/mapper/vg1-bak of=/dev/mapper/vg0-old bs=65536

Anschließend wird das Skript für die Wochensicherung als Hintergrundjob erprobt.

   /etc/cron.weekly/copylhs >copylhs.log 2>&1 &

Nach Abschluss des Jobs kann in der Protokolldatei das Jobergebnis kontrolliert werden.

   less copylhs.log

Bei erfolgreichem Abschluss der Sicherung erscheint die Meldung:
Alle Schritte der Wochensicherung beendet.

Mit dem Programm mc können Originaldaten und die Wochensicherung eingesehen und verglichen werden.

Einrichtung eines automatischen Erinnerungsdienstes für den Administrator.

Legen Sie im Verzeichnis /root die Datei calendar an.

Tragen Sie folgende Zeilen in die Kalenderdatei ein:

   Sunday        Sind die automatischen Sicherungen gelaufen?
   *             Bitte /var/log auf m3n78 durchsehen!
Der Benutzer root wird jetzt wöchentlich an die Kontrolle der Sicherungen erinnert.

Er wird monatlich daran erinnert, die Log-Dateien des Wirtsrechners durchzusehen.

Achtung: Zwischen Sunday bzw. * und dem Rest der Zeile muss ein Tabulatorzeichen eingefügt werden.

Passen Sie nun noch die Datei /etc/cron.daily/bsdmainutils an.

Die exit 0Anweisung in /etc/cron.daily/bsdmainutils muss deaktiviert werden.

Dies geschieht durch Einfügen eines Kommentarzeichens # am Zeileanfang.

   #exit 0

Die Datei /root/safe/passphrase enthält die Passphrase für /dev/mapper/vg0-lhs.

Der Zugriff auf diese Datei sollte nur dem Administrator root möglich sein.

   cd ~/safe
   chmod go-rwx passphrase

Gelegentlich empfiehlt sich eine Überprüfung des Auslastungsgrades der Speichervolumes:

   df

Weiter mit Kapitel 11

Diese Übersicht ist Bestandteil der Dokumentation zum Linux Home Server.

Stand der Angaben: Dezember 2008.

Bitte beachten Sie auch das Impressum.