Simpler Backup-Server für den Heimgebrauch

Backups sind auch zu Hause extrem wichtig und da ich seit Jahren einen alten MicroServer von HP im Schrank stehen habe, war es nun Zeit, endlich ein funktionierendes und einfaches Backup-System auf den Weg zubringen. Für meinen persönlichen Geschmack sollten folgende Anforderungen erfüllt werden:

    1. Wichtige System-Backups sollen verschlüsselt übertragen werden (Meinen Windows-Studio-Rechner betrachte ich zum Beispiel nicht als sonderlich vertraulich)
    2. Wichtige System-Backups sollen verschlüsselt abgelegt werden. Was bringt einem die schönste Festplatten-Verschlüsselung im Betrieb, wenn die Datensicherungen schutzlos auf der Festplatte des Backup-Servers liegen?
    3. Der eigentliche Sicherungsvorgang muss für jeden Benutzer so einfach wie möglich gehalten werden

Hier war meine Idee, für jeden User ein kleines Skript zu schreiben, welches mittels rsync, sshfs und encfs all diese Parameter berücksichtigt. Wie schön, dass das schon jemand für mich in einer grafischen Variante getan hat und ich nicht die ganze Arbeit erneut machen musste: Back in Time

Back in Time erfüllt alle meine Anforderungen für meine kritischen Systeme. Jetzt musste nur noch der Server aufgesetzt und konfiguriert werden.

Ich habe mich für eine blanke Installation von Ubuntu 14.04 Server auf meinem HP MicroServer mit zwei 2TB-Festplatten im RAID1-Verbund entschieden. Ein Raspberry Pi mit angeschlossener USB-Festplatte tut es für den einfachen Weg wahrscheinlich auch.

Server und Client für Back in Time konfigurieren

Zunächst sollte der SSH-Server mit folgenden Optionen gehärtet werden:

PermitRootLogin no
PubkeyAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication no

Anschließend können die User – ich habe hier pro zu sicherndes System einen eigenen User verwendet – angelegt werden.

useradd -m mybu
mkdir /home/mybu/.ssh
vi /home/mybu/.ssh/authorized_keys
mkdir /home/mybu/backups
chown -R mybu:mybu /home/mybu/

Das war schon der Server-Teil. Nun müssen auf dem Client noch die entsprechenden Pakete nachinstalliert werden.

sudo apt-get install backintime-kde sshfs encfs
sudo adduser <user> fuse

Der Backup-Server muss zu den „Known Hosts“ hinzugefügt werden. Dabei kann man auch direkt testen, ob der Login funktioniert.

ssh mybu@backupsystem

Nachdem man sich an seinem eigenen System ab- und wieder angemeldet hat, um die neue Gruppenzugehörigkeit zu aktivieren, kann Back in Time schon konfiguriert und genutzt werden.

Falls man ohne Back in Time wieder an seine Backups kommen möchte, kann man den erstellten encfs-Container selbstverständlich auch manuell auf dem Server öffnen:

mkdir /tmp/backups
encfs /home/mybu/backups /tmp/backups

Anschließendes Aushängen mit:
fusermount -u /tmp/backups

 

SMB-Server für Windows-Backups

Da ich noch einen Windows-Studio-Rechner habe, sollten die sich daruf befindlichen Daten ebenfalls regelmäßig gesichert werden. Hierfür hat mir eine passwortgesicherte SMB-Freigabe gereicht, um zumindest die wichtigsten Daten abzulegen. Ein Verschieben in einen verschlüsselten Container kann anschließend immer noch manuell auf dem Server erfolgen.

Installation des Samba-Servers:

apt-get install samba-common samba

Anlegen des enstprechenden Benutzers. Hier ist es empfehlenswert für den System- und den SMB-Benutzer dasselbe Passwort zu verwenden

useradd -m pc1 -s /bin/false
passwd pc1
smbpasswd -a pc1
mkdir /home/pc1/backups
chown -R pc1:pc1 /home/pc1/backups

Nun kann das Share in /etc/samba/smb.conf eingerichtet werden:

[PC1]
path = /home/pc1/backups
public = no
writeable = yes

Nach einem Neustart des SMB-Dienstes steht die Freigabe nun zur Verfügung.

 

RAID-Monitoring

Da mein Backup-Server nicht 24×7 läuft, sondern nur für Backup-Zwecke eingeschaltet wird, lässt sich der RAID-Status schlecht konstant überwachen. Ein einfaches Status-Update über den RAID-Zustand beim Start des Systems kann durchaus kurz per Jabber an mich versandt werden:

apt-get install sendxmpp

echo "<user>@<server> <password>" > /root/sendxmpprc
chmod 600 /root/sendxmpprc

cat > /root/raid-status.sh << EOF
#!/bin/bash
cat /proc/mdstat | sendxmpp -f /root/sendxmpprc -t -n ziel@jabberserver
EOF

chmod u+x /root/raid-status.sh

Eine Ausführung des Skriptes habe ich bei mir beim Hochfahren des Netzwerk-Interfaces eingetragen:

post-up /root/raid-status.sh

Schreibe einen Kommentar

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