Backups mit BackupPC bei PING

Das backuppc Passwort ist im Homedir des Root Users auf blackhole:

/root/backuppc_password.txt

BackupPC ist für die Benutzung von rsync über ssh eingerichtet.

Web-Interface

Das Web-Interface läuft auf blackhole.buero.ping.de, aus technischen Gründen ist dieses allerdings nicht direkt von Außen erreichbar. Stattdessen muss ein SSH-Tunnel aufgebaut werden. Die passenden Einträge in der SSH-Konfiguration ~/.ssh/config können z.B. so aussehen:

Host blackhole
    Hostname buero.dyna.ping.de
    User bodo
    Port 4223
    UserKnownHostsFile ~/.ssh/known_hosts.buero
    CheckHostIP no
    LocalForward 8888 localhost:80

Nach erfolgreichem Login kann dann auf das Web-Interface unter http://localhost:8888/backuppc zugegriffen werden.

Client-Setup

Auf dem Client (System, das gesichert werden soll) muss lediglich rsync installiert und SSH eingerichtet werden.

rsync

apt-get install rsync

ssh

BackupPC nutzt rsync über ssh. Dazu muss auf dem zu sichernden System das Login als root für den BackupPC-User (backuppc erlaubt sein.

ssh-forced-commands

Da es nicht die beste Idee ist, ein interaktives Login für einen unprivilegierten Systemuser als root auf einem anderen System zu erlauben wird der forced-command-Mechanismus von OpenSSH verwendet.

Hierzu wird das Skript /usr/local/sbin/ssh-backuppc-forcedcmd angelegt, mit diesem Inhalt:

use strict;
use POSIX;

delete($ENV{PATH});

my $origcmd = $ENV{'SSH_ORIGINAL_COMMAND'};

if (!defined($origcmd) || $origcmd eq "") {
        print "You're not allowed to do so! And you would have to give a command!\n";
        exit 1;
}

open(L, ">>/tmp/backuppc_commands") or die "Cannot open command list output!\n";
print L ctime(time()) . "$origcmd\n";

if ($origcmd =~ m/^\/usr\/bin\/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size\=2048 --recursive --ignore-times . \/$/) {
        exec "/usr\/bin\/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /";
} elsif ($origcmd =~ m/^\/usr\/bin\/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size\=2048 --recursive . \//) {
        exec "/usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive . /";
} else {
        print "You're not allowed to do so! - $origcmd\n";
}
close(L);

ssh-Schlüssel

In /root/.ssh/authorized_keys wird der öffentliche Schlüssel das BackupPC-Users eingetragen:

command="/usr/local/sbin/ssh-backuppc-forcedcmd" ssh-rsa AAAAB3NzaC1yc2EAAAADAQA...

Der vollständige öffentliche Schlüssel findet sich auf blackhole in ~backuppc/.ssh/id_rsa.pub.

BackupPC-Setup

Um weitere Maschinen zum Backup hinzuzufügen ist folgendes notwendig:

  1. Eine Datei /etc/backuppc/_HOSTNAME_.pl anlegen, in der spezifischere Config-Optionen angegeben sind. Mindestens die Exclude Liste, da sonst mitunter viele ungewünschte Dateien gesichert werden - besonders uncool auf dem Backup-Server selber.. ;-)

  2. Den Host entweder per Hand oder über das Webinterface in die Hosts Datei

    /etc/backuppc/hosts eintragen (_HOSTNAME_ muss auf die vorher angelegte Config Datei passen). Der "User" der dort gemeint ist, ist der User, der für diesen Host das Backup steuern / verändern / starten kann

  3. Entweder manuell über das Webinterface ein Backup starten oder bis zum nächsten "Wakeup" warten, bis BackupPC von alleine ein Backup startet.

BackupPC-Betrieb

BackupPC sichert dann alle Dateien des Servers und speichert diese in dem Backup-Verzeichnis (/srv/backup). Wenn man aus versehen zuviel gesichert hat, kann man die Dateien entweder in /srv/backup/backuppc/pc/_HOSTNAME_ löschen oder das gesamte Verzeichnis löschen. WICHTIG: Dabei wird nicht sofort Platz frei sondern üblicherweise erst, wenn Nachts der "Deduplication-Light" Job läuft.

Restore

Ein Restore kann man recht entspannt über das Webinterface durchführen. Das läuft dann auch über rsync.

Software/BackupPC (last edited 2016-02-24 14:30:54 by BodoBellut)