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.

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 12 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.

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

service dovecot stop
service postfix stop

Wiederherstellung der Benutzerkonten

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

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.

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:

Starte nach der Wiederherstellung den Datenbankserver einmal neu:

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:

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/

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 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:

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.

Kategorie: Server

Tags: , ,

0 Kommentare

315 Aufrufe

Über mich

Ich bin Janis (aka. EurenikZ), 25 Jahre alt und komme aus der Nähe von 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.

569 Aufrufe

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten.

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen. Sei der Erste, der diesen Beitrag bewertet!

Es tut mir Leid, dass der Beitrag für dich nicht hilfreich war!

Wie kann ich diesen Beitrag verbessern?

Hinterlasse einen Kommentar

  • Manchmal ist es notwendig, sich in die Shell eines Docker-Containers zu schalten, um dort beispielsweise weitere Konfigurationen vornehmen zu können. Wie du dich in eine Container-Shell einloggst, zeige ich dir in diesem Beitrag. Begib dich zunächst in das Verzeichnis, in[...]

    12.03.2024 18:37

    33
  • Mithilfe eines Swap-Speichers lagert man temporäre Daten in eine Auslagerungsdatei aus, anstatt in den RAM zu schreiben. Das ist vor allem dann sinnvoll, wenn wenig Arbeitsspeicher zur Verfügung steht und man Abstürze wegen zu wenig Arbeitsspeicher umgehen möchte. Was ist[...]

    01.01.2024 10:00

    144
  • Beim Löschen von Dateien in Nextcloud landen diese im Papierkorb und bleiben dort, bis dieser manuell geleert wird. Möchte man Dateien im Papierkorb automatisch nach einer bestimmten Zeit löschen lassen, muss die Konfiguration entsprechend angepasst werden. Die Papierkorb-Funktion ist[...]

    10.12.2023 20:57

    84
  • Manchmal ist es notwendig, sich in die Shell eines Docker-Containers zu schalten, um dort beispielsweise weitere Konfigurationen vornehmen zu können. Wie du dich in eine Container-Shell einloggst, zeige ich dir in diesem Beitrag. Begib dich zunächst in das Verzeichnis, in[...]

    12.03.2024 18:37

    33
  • Mithilfe eines Swap-Speichers lagert man temporäre Daten in eine Auslagerungsdatei aus, anstatt in den RAM zu schreiben. Das ist vor allem dann sinnvoll, wenn wenig Arbeitsspeicher zur Verfügung steht und man Abstürze wegen zu wenig Arbeitsspeicher umgehen möchte. Was ist[...]

    01.01.2024 10:00

    144