KeyHelp: Komplettes System-Backup wiederherstellen :: ITv4.de
KeyHelp: Komplettes System-Backup wiederherstellen

In diesem Beitrag geht es um den Restore eines kompletten KeyHelp-Servers, falls beispielsweise ein Serverumzug ansteht oder es zu einem Totalausfall kam. Es werden alle Daten samt Einstellungen, Webseiten und E-Mails wiederhergestellt. Voraussetzung ist ein existierendes Vollbackup.


INHALTSVERZEICHNIS


Für den kompletten Wiederherstellungsprozess musst du mit ca. 1 Stunde rechnen. Je nach Datenmenge kann es auch länger dauern.

Vorbereitung auf dem alten Server

Für den Restore ist ein Vollbackup notwendig. Erstelle daher eines, falls noch möglich. Falls bereits eines existiert, kann dieser Schritt übersprungen werden.

Navigiere dazu zu den Einstellungen Backup Backup erstellen. Wähle hier Vollständig sowie die gewünschte Repository aus. Da der Server bald nicht mehr aktiv ist, muss hier unbedingt eine externe Repository verwendet werden. Ich verwende einen Clouddienst mit Rclone und habe daher unter Benutzerdefiniert die entsprechende Speicherkonfiguration. Diese Speicherkonfiguration solltest du für später kopieren.

Rclone: Verbindung zu Google Drive aufbauen per Shell

Merke dir, welche PHP-Interpreter in Verwendung sind: Einstellungen Konfiguration PHP-Interpreter

Mache dir Gedanken darüber, was neben KeyHelp noch auf dem Server läuft. Auch diese Dienste und Daten sollten gesichert werden. Diese sind in diesem Backup nicht enthalten.

Vorbereitung auf dem neuen Server

Setze zunächst einen frischen Server auf. Dieser muss unter dem selben Betriebssystem mit selber Version laufen, wie der alte Server. Installiere lediglich KeyHelp. Es empfiehlt sich, dieselben Anmeldedaten für das Administrator-Konto wie vom alten Server zu verwenden. Das vereinfacht den Ablauf später.

KeyHelp unter Debian 11 installieren und Domain mit E-Mail einrichten [KeyHelp Tutorial]

Lege nun die selbe Backup-Repository an, wie auf dem alten Server. Navigiere dazu zu Einstellungen Backup Repository-Verwaltung.

Während die Repository eingebunden wird, sicherst du alle SQL-Benutzerkonten. Melde dich dazu beispielsweise mit phpMyAdmin als mysqladmin an. Die zunächst neuen Zugangsdaten für diesen User findest du unter /root/ in der Textdatei. Später wird das alte Kennwort wieder aktiv sein.

Wähle unter Benutzerkonten den Haken Alle auswählen und klicke auf Exportieren. Kopiere den dargestellten Code und speichere ihn zwischen, er wird später noch benötigt.

Screenshot

Verbinde dich nun per Shell auf den Server und beende die Mailserver-Dienste:

sudo service dovecot stop
sudo service postfix stop

Wiederherstellung der Benutzerkonten

Zurück in KeyHelp wird nun inzwischen unter Backup wiederherstellen das zuvor erstellte Backup aufgelistet.

Screenshot

Wähle dieses Backup zum Wiederherstellen aus. Wähle im Fenster der Wiederherstellung lediglich unter Dateien und Verzeichnisse den Pfad /etc/ aus. Setze unten Alternativer Pfad und vergib einen temporären Pfad, beispielsweise /restore.

Screenshot

Warte ab, bis die Wiederherstellung abgeschlossen ist.

Bearbeite anschließend per Shell die Dateien passwd und shadow aus dem wiederhergestellten Verzeichnis mit beispielsweise nano. Entfernen aus diesen beiden Dateien alle Benutzer, welche keine Benutzerkonten von Kunden sind. Die Dateien sollten schließlich nur noch so aussehen:

root@keyhelp:/restore # cat /restore/etc/passwd
kunde1:x:5001:5001::/home/users/kunde1/:/bin/false
kunde2:x:5002:5002::/home/users/kunde2/:/bin/false
kunde3:x:5003:5003::/home/users/kunde3/:/bin/false
root@keyhelp:/restore # cat /restore/etc/shadow
kunde1:$6$rounds=100000$sX9GhftWlpwVzr8.$bpHZ5oDNIMOIwboC/Pl2MAaHlWd2PEC45xQanwPVpWbRGdqFrw/HxRZn/Pzv3/kLeck9y1tBcn3oHwYCb/x/D1:19406:0:99999:7:::
kunde2:$6$rounds=100000$0aC3jOFlNH4GQft1$OxO1bTMCCyhTznae/t1YMokgbxVQ99j4FPiF8lLm8M77tVJXC497tJ/8Q3ELYYpmxXuecoJVjVIvK5ISNm7VI.:19406:0:99999:7:::
kunde3:$6$rounds=100000$Y3A45T2bWQHR7i/v$1S0blo0fq5n/U96LUtAYrIcif3apH3kOhuMHlrDhcV0b55hcCq1ZJCedzxmBoGTlEt4xi4Q/LUJFpk4gY0r8F.:19406:0:99999:7:::

Füge diese Einträge nun zur aktiven Datei unter /etc/ an:

cat /restore/etc/passwd >> /etc/passwd
cat /restore/etc/shadow >> /etc/shadow

Dasselbe wird jetzt noch mit den Dateien group und gshadow gemacht, mit dem Unterschied, dass zusätzlich folgende 5 Gruppen von KeyHelp bleiben:

root@keyhelp:/restore # cat /restore/etc/group
keyhelp_file_manager:x:1001:kunde1,kunde2,kunde3
keyhelp_nossh:x:1002:kunde1,kunde2,kunde3
keyhelp_noftp:x:1003:
keyhelp_suspended:x:1004:
keyhelp_chroot:x:1005:
kunde1:x:5001:
kunde2:x:5002:
kunde3:x:5003:
root@keyhelp:/restore # cat /restore/etc/gshadow
keyhelp_file_manager:!::kunde1,kunde2,kunde3
keyhelp_nossh:!::kunde1,kunde2,kunde3
keyhelp_noftp:!::
keyhelp_suspended:!::
keyhelp_chroot:!::
kunde1:!::
kunde2:!::
kunde3:!::

Bevor du jetzt diese Gruppen anhängst, musst du die bereits existierenden KeyHelp-Gruppen aus der aktiven Datei entfernen. Editiere die beiden Dateien unter /etc/ und entferne jeweils folgende 5 Zeilen daraus:

root@keyhelp:/restore # cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
. . .
keyhelp_file_manager:x:1001:
keyhelp_nossh:x:1002:
keyhelp_noftp:x:1003:
keyhelp_suspended:x:1004:
keyhelp_chroot:x:1005:
. . .
clamav:x:121:amavis
amavis:x:122:clamav
debian-spamd:x:123:
root@keyhelp:/restore # cat /etc/gshadow
root:x:0:
daemon:x:1:
bin:x:2:
. . .
keyhelp_file_manager:!::
keyhelp_nossh:!::
keyhelp_noftp:!::
keyhelp_suspended:!::
keyhelp_chroot:!::
. . .
postfix:!::
postdrop:!::
policyd-spf:!::

Nun können die Inhalte angehängt werden:

cat /restore/etc/group >> /etc/group
cat /restore/etc/gshadow >> /etc/gshadow

Wiederherstellung der Verschlüsselungsschlüssel

Für einige Verschlüsselungen, wie beispielsweise die 2-Faktor-Authentifizierung, befindet sich im der KeyHelp Konfiguration der so genannte Verschlüsselungsschlüssel. Dieser muss wiederhergestellt werden, damit eben unter anderem die Authentifizierung wieder funktioniert.

Öffne die alte Konfiguration aus dem Backup:

tail /restore/etc/keyhelp/config/config.json

Kopiere hier den Wert von base heraus und speichere ihn zwischen:

"encryption": {
        "base": "7r8O4ORsYCGe3LA6ftb6naeO"
}

Füge diesen Wert nun in die neue Konfiguration ein:

nano /etc/keyhelp/config/config.json

Da nun eine Änderung in der Konfiguration vorgenommen wurde, muss die Backup-Repository einmal gelöscht und neu angelegt werden.

Wiederherstellung der Standarddatenbanken

Nun werden die 5 Standarddatenbanken von KeyHelp wiederhergestellt. Navigiere dazu wieder in das KeyHelp Panel zu Backup wiederherstellen und wähle das Backup wieder aus. Setze unter Datenbanken alle Haken der Datenbanken, die zu KeyHelp gehören:

Screenshot

Starte nach der Wiederherstellung den Datenbankserver einmal neu:

sudo service mysql restart

Es wird nun beim Aufruf vom KeyHelp Panel zu einem Datenbankfehler kommen. Begib dich daher in der Shell zur MySQL-Kommandozeile:

mysql -u root -p

Melde dich mit den ursprünglichen Passwort an. Setze hier den kompletten Inhalt mit den Benutzerkonten ab, welchen du zuvor kopiert hast.

Verlasse die Kommandozeile mit

quit

und starte den SQL-Server erneut neu:

sudo service mysql restart

Die Anmeldung im Panel ist nun wieder möglich. Da wieder Änderungen in der Konfiguration vorgenommen wurden, muss die Backup-Repository erneut gelöscht und neu angelegt werden. Außerdem sollten unter Einstellungen Konfiguration PHP-Interpreter die notwendigen Interpreter wieder installiert werden.

Wiederherstellung der Benutzerdaten

Nun ist es an der Zeit, die Benutzerdaten wiederherzustellen. Dies beinhaltet alle Webseiten, E-Mails und alles andere, was dazugehört.

Navigiere erneut zu Backup wiederherstellen, wähle das Backup aus und wähle diese Elemente aus:

Unter E-Mail-Konten alle E-Mail-Konten
Unter Datenbanken alle Datenbanken der Kunden, sofern vorhanden. Und wirklich nur diese, keine Datenbanken, welche bereits vorher wiederhergestellt wurden!
Unter Dateien und Verzeichnisse alle Verzeichnisse der Kunden: /home/users/XXX/
Screenshot

Warte ab, bis der Wiederherstellungs-Vorgang abgeschlossen ist.

Wiederherstellung der SSL-Zertifikate

Jetzt werden noch die SSL-Zertifikate übernommen:

cd /restore
mv /etc/ssl/keyhelp /etc/ssl/keyhelp.bak
cp -av etc/ssl/keyhelp/ /etc/ssl/
rm -rf /etc/ssl/keyhelp.bak

Wiederherstellung der DKIM-Keys

Sofern DKIM für die Mail-Authentizität verwendet wird, müssen die Schlüssel jetzt auch noch wiederhergestellt werden:

cd /restore
cp -r etc/opendkim/ /etc/opendkim/

Wiederherstellung der White-Label

Sofern Änderungen am Aussehen von KeyHelp vorgenommen wurde, wie beispielsweise ein eigenes Favicon oder Banner, muss zusätzlich folgender Schritt durchgeführt werden. Da sich diese Bilddaten im User-Verzeichnis von keyhelp befinden, werden die Daten aus diesem Verzeichnis noch wiederhergestellt.

Navigiere erneut zu Backup wiederherstellen, wähle das Backup aus und wähle unter Dateien und Verzeichnisse das Verzeichnis /home/keyhelp aus.

Setze den Haken Wiederherstellen einer einzelnen Datei oder eines Unterverzeichnisses und wähle im Dropdown-Menü /home/keyhelp aus. In das Textfeld daneben trägst du folgendes ein:

/www/keyhelp.white_label

Lasse die Ordner in den /restore Pfad wiederherstellen und kopiere ihn anschließend nach /home/keyhelp/www.

Wiederherstellung abschließen

Unter Konfiguration IP-Adressen muss jetzt noch die neue IP-Adresse angekreuzt werden, sofern ein Wechsel stattfand.

Abschließend müssen noch die Benutzer-Konfigurationsdateien von KeyHelp neu geschrieben werden. Verwende dazu in der Shell folgenden Befehl:

keyhelp-toolbox

Drücke im Hauptmenü die 1 und befolge die weiteren Schritte.

Starte den Server nun noch einmal neu:

sudo reboot now

Der temporäre Ordner /restore kann jetzt gelöscht werden. Der vollständige Wiederherstellungs-Prozess ist abgeschlossen.


Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.


Zuletzt aktualisiert
Drucken
War dieser Artikel hilfreich?
1
Hinterlasse einen Kommentar

Hast du Fragen, Probleme oder Anregungen? Hier kannst du öffentliches Feedback geben, anderen helfen und selbst um Hilfe bitten.

Folgende BBCodes sind erlaubt: [B], [I], [U], [CODE] und [MARK].

Die mit * markierten Felder sind Pflichtfelder. Möchtest du über neue Antworten auf deinen Kommentar informiert werden, kannst du deine E-Mail-Adresse hinterlegen. Diese wird nicht veröffentlicht.

Janis Mades
Janis Mades

Ich bin Janis (aka. EurenikZ), 24 Jahre alt und komme aus Frankfurt am Main. Ich habe eine abgeschlossene IHK-Ausbildung zum Fachinformatiker für Systemintegration und arbeite als Junior IT-Administrator in einem IT-Systemhaus. Neben meinem IT-Blog beschäftige ich mich viel mit diversen IT-Themen und meinen Webseiten sowie Telegram Bots und biete IT-Dienstleistungen an.

Themen
Melde dich für den Newsletter an

Mit dem kostenlosen Newsletter wirst du gelegentlich über die neuesten Tipps & Tricks per E-Mail informiert!

Ich verwende Cookies 🍪

Du kannst deine Zustimmung jederzeit widerrufen.

Verarbeitungszwecke

Ich setze Cookies ein, um meinen Blog stetig für dich zu verbessern und meine für dich kostenlosen Inhalte zu finanzieren. Dabei ist es möglich, dass Daten außerhalb des EWR verarbeitet, Nutzungsprofile gebildet und mit Daten von anderen Webseiten angereichert werden.

Indem du auf "Zustimmen und weiter" klickst, stimmst du diesen Datenverarbeitungen freiwillig zu. Mehr Informationen findest du in der Datenschutzerklärung. Dort kannst du auch jederzeit deine Entscheidung zu Cookies widerrufen.

Ich übernehme keinerlei Haftung auf die Richtigkeit meiner Beiträge und daraus folgenden Schäden.

Oder

Melde dich mit deinem EZ-Account an und besuche alle meine Webseiten werbefrei und ohne Tracking. Der EZ-Account ist kostenlos.



Impressum