Raspberry Pi

Aus Wiki Freifunk-3Ländereck
Wechseln zu: Navigation, Suche

Backup

Damit die auf dem Raspberry Pi hinterlegten Daten auch sicher sind, empfiehlt sich ein regelmäßiges, möglichst automatisiertes Backup. Lösungen gibt es hierzu viele. Eine einfache, jedoch recht komfortable Lösung bietet BackupPC. Neben diversen Verfahren zur eigentlichen Erstellung der Backups bietet es eine einfache Web-Oberfläche, welche einen bequemen Zugriff aus der Ferne ermöglicht. Zum Glück ist backuppc teil der Debian-Distribution und lässt sich mittels apt installieren:

apt-get install backuppc

Im Zuge der Installation wird automatisch der Benutzer "backuppc" angelegt und sowie ein zufälliges Passwort generiert. Diese sollte man sich notieren. Prinzipiell werden Passwörter in der Datei /etc/backuppc/htpasswd" verwaltet. Das Passwort für den Benutzer backuppc lässt sich mit dem folgenden Befehl ändern:

 sudo htpasswd /etc/backuppc/htpasswd backuppc

Die Konfiguration für den Apache2 Web-Server ist in der Datei /etc/apache2/conf.d/backuppc.conf abgelegt. Um sichere Verbindungen via SSL zu erzwingen, aktivieren wir dort die Option "SSLRequireSSL":

# Uncomment the line below to ensure that nobody can sniff importanti
# info from network traffic during editing of the BackupPC config or
# when browsing/restoring backups.
# Requires that you have your webserver set up for SSL (https) access.
SSLRequireSSL

Sofern man SSL für den Apache2 noch nicht aktiviert hat, sollte man dies jetzt nachholen:

sudo a2enmod ssl

Für den Backup-Betrieb genügen die vorinstallieren nichtöffentlichen Zertifikate. Im Anschluss starten wir den Apache2 neu:

service apache2 restart

Sofern der Neustart erfolgreich war, lässt sich die Weboberfläche von BackupPC ab sofort unter dem folgenden URL aufrufen:

 https://<host>/backuppc/

Für die Anmeldung benutzen wir den zuvor notierten Benutzernamen und das zugehörige Passwort.

Der Rechner "localhost" ist in BackupPC bereits vorkonfiguriert. Wir klicken auf "Host Summary" und danach auf den Link "localhost". Im Anschluss wählen wir im Menü links oben die Option "Edit Config". Im Reiter "Xfer" im Hauptfenster wählen wir danach als "Xfer Method" die Option "rsync". Der Rest der Einstellungen kann in der Regel unverändert bleiben.

Sollte rsync auf dem Rechner noch nicht isntalliert sein, so holen wir dies in der Konsole mittels apt nach:

 sudo apt-get install rsync

Backuppc läuft aus Sicherheitsgründen unter dem Linux-Benutzer "backuppc". Der Zugriff auf die zu sichernden Rechner erfolgt via SSH (zumindest bei der von uns gewählten Sicherungsmethode). Dies gilt auch, wenn der lokale Rechner gesichert werden soll. Damit sich BackupPC via SSH als Benutzer"root" anmelden kann, aktivieren wir die entsprechende Option in der Datei "/etc/ssh/sshd_config":

 PermitRootLogin yes

Weiterhin deaktivieren wir die Authentifizierung mittels unverschlüsselter Passwörter:

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

Sofern wir uns via SSH mit dem Raspberry Pi verbunden haben, sollten wir unbedingt sicherstellen, dass die Authentifizierung mittels eines registrierten Schlüssels möglich ist! Ansonsten sperren wir uns mit dieser Maßnahme selbst vom Rechner aus. Im Anschluss startend wir den SSH-Dämonen neu:

sudo service ssh restart

Als nächstes werden wir zum Benutzer backuppc:

 sudo su backuppc

In dieser Identität generieren wir ein SSH Schlüsselpaar:

 ssh-keygen -t rsa -b 4096 -C "<email@example.com>"

Das Schlüsselpaar wird standardmäßig im Heimatverzeichnis im Versteckten Unterverzeichnis ".ssh" abgelegt. Der öffentliche Schlüssel ist in der Datei "id_rsa.pub" gespeichert. Um diesen Schlüssel für den Zugang als Benutzer root zu registrieren führen wir die folgende Befehlszeile aus:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@localhost

Auf die Aufforderung hin geben wir das Passowrt des Benutzers root ein. Ab sofort sollte die Verbindung mittels SSH als Benutzer root auch ohne Passworteingabe möglich sein:

 ssh root@localhost
 exit

Nachdem dies erledigt ist, werden wieder zu unserem regulären Benutzer:E

 exit

Jetzt sind wir fast soweit, dass wir unser erstes Backup durchführen können. Backups werden im Verzeichnis /var/lib/backuppc gespeicher. Dieses dient dem Linux-Benutzer backuppc gleichzeitig als Heimverzeichnis. Da wir Backups aus Sicherheitsgründen nicht auf dem gleichen Speichermedium ablegen sollten, empfiehlt sich die Einrichtung eines USB-Speichers. Dieser muss unbedingt mit einem Datei-System formattiert sein, welches Linux-Benutzerrechte unterstützt (z.B. ext4fs). Es wird im Folgenden davon ausgegangen, dass der Speicher an der Stelle /mnt/<usb-storage> in das Dateisystem eingebunden ist. Zuerst stoppen wir den Hintergrundprozess von BackupPC:

sudo service backuppc stop

Im zweiten Schritt verschieben wir das existierende Heimverzeichnis auf den externen Speicher:

sudo mv /var/lib/backuppc /mnt/<usb-storage> 

Im Anschluss erstell wir an der ursprünglichen Stelle einen symbolischen Link auf den neuen Speicherort:

sudo ln -s /mnt/<stick>/backuppc /var/lib/backuppc

Zuletzt aktivieren wir wieder den BackupPC-Hintergrundprozess:

sudo service backuppc start

Damit sind wir soweit, dass wir unser erstes Backup starten können. Hierzu wechseln wir wieder in die Web-Oberfläche. In der Ansicht für den Rechner "localhost" hat man unter "User Actions" durch Klick auf die Schaltfläche "Start Full Backup" die Möglichkeit, ein erstes, vollständiges Backup manuell zu starten. Danach heißt es Geduld haben. Sollte es zu einem Fehler kommen, empfiehlt sich ein Studium der Log-Dateien. In Zukunft sollten die Backups automatisch erstellt werden. Wie sich die Intervalle anpassen lassen, entnimmt man am besten der Dokumentation.