Ja, beide Systeme laufen mit KeyHelp. Der zu sichernde Server und der Backup-Server...
Ich habe das jetzt mit FTP only getestet, und da lief alles problemlos durch. Das ist aber nicht was ich will.
Aber ich habe jetzt eine Lösung mit SFTP gefunden, die mir besser gefällt.
Ziel:
Jeder zu sichernde Server soll auf dem Backup-Server nichts von den anderen Servern sehen können und das soll über SFTP mit SSH-Keys laufen (nicht mit Passwort).
Vorgehensweise:
Dazu benötigt man auf dem Backup-Server für die zu sichernden Server eine SSH-Umbebung mit chroot.
Für jeden zu sichernden Server wird dazu auf dem Backup-Server in KeyHelp ein eigener Kunde angelegt.
Dieser Kunde hat nur folgende Berechtigungen:
Speicherplatz und Traffic unbegrenzt, Zugriff auf SSH, Datei-Manager und Control-Panel
Ab jetzt geht es in der Konsole des Backup-Servers weiter und wir müssen uns dort als root anmelden.
Um den Kunden-Account des zu sichernden Servers in einer chroot-Umgebung einzusperren, genügt es diesen Account der Gruppe keyhelp_chroot hinzuzufügen:
Code: Select all
usermod -aG keyhelp_chroot USERNAME
Zur Info: Um den Kunden-Account wieder aus dieser Gruppe zu entfernen, kann man folgenden Befehl verwenden...
Code: Select all
gpasswd -d USERNAME keyhelp_chroot
Damit haben wir für den zu sichernden Server schon mal die SSH-chroot-Umgebung, aus der er nicht ausbrechen kann. Dieser Account hat keinen Zugriff auf die Konsole, aber man kann den Zugang verwenden um das Backup über SFTP auf dem Backup-Server zu speichern.
Nun bereiten wir alles vor, um den öffentlichen Schlüssel, den wir auf dem zu sichernden Server erstellen werden auf dem Backup-Server zu hinterlegen. Dazu brauchen wir die Datei ~/.ssh/authorized_keys mit dem richtigen Besitzer und Rechten...
Datei anlegen:
Code: Select all
> /home/users/USERNAME/.ssh/authorized_keys
Den Besitzer korrigieren, da diese Datei aktuell root gehört:
Code: Select all
chown USERNAME:USERNAME /home/users/USERNAME/.ssh/authorized_keys
und nun noch die richtigen Rechte: (nur der Kunde selbst darf Zugriff auf diese Datei haben...)
Code: Select all
chmod 700 /home/users/USERNAME/.ssh/authorized_keys
Wir legen noch ein Verzeichnis an, in dem wir das Backup speichern wollen z.B. im Home-Ordner/files/ des Kundenaccounts mit dem richtigen Besitzer:
Code: Select all
mkdir /home/users/USERNAME/files/backup
chown USERNAME:USERNAME /home/users/USERNAME/files/backup
Jetzt müssen wir nur noch den öffentlichen Schlüssel auf dem zu sichernden Server generieren und im Backup-Server hinterlegen:
Dazu melden wir uns beim zu sichernden Server in KeyHelp an und legen ein neues Repository für das Backup an.
Dort wählen wir SFTP aus und als Authentifizierungsmethode "Öffentlicher / Privater Schlüssel", den wir dort mit einem Klick generieren und kopieren können.
Das Repository aber noch nicht speichern. Wir müssen den öffentlichen Schlüssel erst auf dem Backup-Server hinterlegen.
Dazu gehen wir wieder in die Konsole des Backup-Servers und öffnen die vorher angelegte Datei authorized_keys und kopieren dort den öffentlichen Schlüssel hinein:
Code: Select all
vim /home/users/USERNAME/.ssh/authorized_keys
Jetzt können wir auf dem zu sichernden Server das Repository speichern und wenn alles geklappt hat, sollte das Repository angelegt worden sein.
Nun legen wir noch einen regelmäßigen Backup-Plan an und das Backup läuft...
Das war jetzt eine Menge Text, aber wem dieses Vorgehen gefällt, kann das übernehmen.
LG Jens