Sichern von Linux und Windows Systemen mit BackupPC

Weiterhin müssen wir ein Passwort für falko für die BackupPC Web Benutzeroberfläche erstellen:

server1.example.com:

htpasswd /etc/backuppc/htpasswd falko

(Wenn Du magst kannst Du nun einen zweiten Browser öffnen und Dich als falko auf http://192.168.0.100/backuppc/einloggen.)

Nun müssen wir /etc/backuppc/config.pl bearbeiten. Die Sicherungsmethode für falko-desktop wird rsync sein, also setzen wir $Conf{XferMethod} = ‚rsync‘;.
falko-desktop hat nur eine große Partition (/), also setzen wir $Conf{RsyncShareName} = ‚/‘;. Wenn Du mehrere Partitionen zu sichern hast, würdest Du etwas wie $Conf{RsyncShareName} = [‚/‘, ‚/var‘, ‚/data‘, ‚/boot‘]; festlegen.

rsync wird durch SSH (port 22) durchgeleitet. SSH muss den Hostnamen oder die IP Adresse des Client wissen. Wenn Du keinen DNS Server hast, der falko-desktop zu der IP Adresse auflöst, wird SSH nicht in der Lage sein, den Namen falko-desktop aufzulösen. Daher ersetzen wir $host with $hostIP in $Conf{RsyncClientCmd} und $Conf{RsyncClientRestoreCmd}.

server1.example.com:

vi /etc/backuppc/config.pl

[...]
$Conf{XferMethod} = 'rsync';        

$Conf{RsyncClientPath} = '/usr/bin/rsync';
$Conf{RsyncClientCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+';
$Conf{RsyncShareName} = '/';
#$Conf{RsyncShareName} = ['/', '/var', '/data', '/boot'];
[...]

(Du fragst Dich jetzt vielleicht wie wir Optionen für mehrere Clients festlegen können, da die Optionen für Notebook sich von denen für falko-desktop unterscheiden. Es funtioniert so: Die Optionen in /etc/backuppc/config.pl sind globale Werte, die für alle Clients gütlig sind, wenn sie nicht ihre eigene Konfigurationsdatei in /etc/backuppc haben, die nach ihrem Hostnamen benannt ist. Für Notebook werden wir also /etc/backuppc/notebook.pl erstellen. Es wird nur die Werte beinhalten, die sich von den Werten in /etc/backuppc/config.pl unterscheiden. Eigentlich hätten wir /etc/backuppc/falko-desktop.pl für falko-desktop erstellen können anstallt /etc/backuppc/config.pl zu bearbeiten.)

Als Nächstes starte BackupPC neu:

server1.example.com:

/etc/init.d/backuppc restart

5.1 Konfiguriere den SSH Tunnel

Die rsync Sicherung wird durch SSH geleitet. Die Sicherung läuft als Benutzer backuppc, daher muss dieser Benutzer in der Lage sein, sich auf falko-desktop als root einzuloggen ohne nach einem Passwort gefragt worden zu sein. Daher müssen wir Public keys austauschen um Passwort-less Logins für backuppc zuzulassen.

Zuerst müssen wir uns bei falko-desktop in der Kommandozeile einloggen und ein root login erstellen (wenn Du Ubuntu nicht verwendest, müsstest Du wahrscheinlich schon eins haben):

falko-desktop:

sudo passwd root
sudo su

Da Du nun als root eingeloggt bist, installiere OpenSSH und rsync:

falko-desktop:

apt-get install rsync ssh openssh-server

Erstelle dann ein private/public key Paar:

falko-desktop:

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <– <ENTER>
Created directory ‚/root/.ssh‘.
Enter passphrase (empty for no passphrase): <– <ENTER>
Enter same passphrase again: <– <ENTER>
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
0f:95:00:4b:fd:c3:cc:0b:1f:2b:00:c9:29:bf:ca:4e root@falko-desktop

Wenn Du keinen DNS Eintrag für server1.example.com hast, solltest Du jetzt server1.example.com zu /etc/hosts hinzufügen:

falko-desktop:

vi /etc/hosts

[...]
192.168.0.100   server1.example.com server1
[...]

Als Nächstes erstellen wir ein private/public key Paar auf server1.example.com. Wir müssen dies als Benutzer backuppc ausführen!

server1.example.com:

su backuppc
ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/backuppc/.ssh/id_rsa): <– <ENTER>
Created directory ‚/var/lib/backuppc/.ssh‘.
Enter passphrase (empty for no passphrase): <– <ENTER>
Enter same passphrase again: <– <ENTER>
Your identification has been saved in /var/lib/backuppc/.ssh/id_rsa.
Your public key has been saved in /var/lib/backuppc/.ssh/id_rsa.pub.
The key fingerprint is:
74:20:65:73:47:1c:cb:ba:5d:9b:5d:56:cf:91:1a:1a backuppc@server1.example.com

Dann kopieren wir den public key auf falko-desktop. Pass auf, dass Du falko-desktop’s derzeitige IP Adresse in dem scp Befehl verwendest:

server1.example.com:

cp ~/.ssh/id_rsa.pub ~/.ssh/BackupPC_id_rsa.pub
scp ~/.ssh/BackupPC_id_rsa.pub root@192.168.0.213:/root/.ssh/

The authenticity of host ‚192.168.0.213 (192.168.0.213)‘ can’t be established.
RSA key fingerprint is 9b:66:3e:ce:b4:8d:63:00:ba:87:14:b2:94:03:cb:a8.
Are you sure you want to continue connecting (yes/no)? <– yes
Warning: Permanently added ‚192.168.0.213‘ (RSA) to the list of known hosts.
root@192.168.0.213’s password: <– root password for falko-desktop
BackupPC_id_rsa.pub 100% 410 0.4KB/s 00:00

Als Nächstes hängen wir backuppc’s public key an ~/.ssh/authorized_keys2 auf falko-desktop an (wir tun dies als root Benutzer):

falko-desktop:

cat ~/.ssh/BackupPC_id_rsa.pub >> ~/.ssh/authorized_keys2

Wenn Du einen entsprechenden DNS Eintrag für server1.example.com hast oder ihn der Datei falko-desktop’s /etc/hosts beigefügt hast, nun kannst Du die Datei ~/.ssh/authorized_keys2 öffnen und die Zeile from=“server1.example.com“ am Anfang der Datei beifügen. Demnach kann nur server1.example.com kann Passwort-less logins genießen. (Wenn server1.example.com nicht zu falko-desktop aufgelöst werden kann, dann füge nicht die Zeile from=“server1.example.com“ hinzu)

falko-desktop:

vi ~/.ssh/authorized_keys2

from="server1.example.com" ssh-rsa AAAAB3[...]FMZpdAj8Hs9107tZ97Rq2oO/Zw== backuppc@server1.example.com

Kopiere dann root@falko-desktop’s public key zu server1.example.com (pass auf, dass Du die richtige IP Adresse verwendest):

falko-desktop:

scp ~/.ssh/id_rsa.pub root@192.168.0.100:/var/lib/backuppc/.ssh/client_id_rsa.pub

The authenticity of host ‚192.168.0.100 (192.168.0.100)‘ can’t be established.
RSA key fingerprint is 29:40:1c:c0:40:f8:e1:4c:68:47:36:b3:f3:53:b1:38.
Are you sure you want to continue connecting (yes/no)? <– yes
Warning: Permanently added ‚192.168.0.100‘ (RSA) to the list of known hosts.
root@192.168.0.100’s password: <– root password for server1.example.com
id_rsa.pub 100% 400 0.4KB/s 00:00

Sichere auf server1.example.com, wir fügen root@falko-desktop’s public key zu ~/.ssh/known_hosts hinzu. Vergewissere Dich, dass Du immer noch als Benutzer backuppc eingeloggt bist!

server1.example.com:

cat ~/.ssh/client_id_rsa.pub >> ~/.ssh/known_hosts

Dann wechseln wir zurück zum root Benutzer und löschen /var/lib/backuppc/.ssh/client_id_rsa.pub:

server1.example.com:

su
rm -f /var/lib/backuppc/.ssh/client_id_rsa.pub

Werde dann wieder backuppc und ändere die Zulassung des ~/.ssh Verzeichnisses:

server1.example.com:

su backuppc
chmod -R go-rwx ~/.ssh

Führe das gleiche bei falko-desktop aus (als root Benutzer):

falko-desktop:

chmod -R go-rwx ~/.ssh

Gehe dann zurücl zu server1.example.com und vergewissere Dich, dass Du immer noch als backuppc eingeloggt bist. Lass folgenden Testbefehl laufen, um zu sehen, ob falko-desktop Dich nach einem Passwort auffordert. Wenn Du alles richtig gemacht hast, sollte dies nicht passieren. (Vergewissere Dich, dass Du falko-desktop’s derzeitige IP Adresse verwendest!)

server1.example.com:

ssh -l root 192.168.0.213 whoami

Die Ausgabe sollte einfach nur diese sein

root

6 Unsere erste Sicherung

Da nun unser SSH Tunnel funktioniert, können wir die BackupPC Web Benutzeroberfläche auf http://192.168.0.100/backuppc/ neu laden. Nun solltest Du falko-desktop in der Liste der Hosts sehen, localhost sollte verschwunden sein:

Du kannst warten bis BackupPC seine erste Sicherung von falko-desktop startet (in der Standardkonfiguration tut es das in der ersten vollen Stunde), oder Du startest es manueall von der Web Benutzeroberfläche aus.

Während die Sicherung voranschreitet, sieht die Host Summary Seite wie folgt aus:

Das könnte dich auch interessieren …