Kategorie: LiveConfig
Erstellt: 10.09.2020
Aktualisiert: 03.07.2023
Folgende Anleitung beschreibt, wie Sie eine komplette LiveConfig-Installation von einem Server auf einen anderen Server umziehen können. Anders als bei einem Serverumzug geht es also nicht darum, dass sich nur der Standort oder die IP-Adressen eines Servers ändern, sondern alle Inhalte werden von einem alten auf einen neuen Server verschoben.
Diese Anleitung erhebt keinen Anspruch auf Vollständigkeit. Insbesondere wenn Sie eigene Anpassungen auf dem Quellserver vorgenommen haben, müssen Sie diese auch selber auf den Zielserver übernehmen.
Bei Problemen melden Sie sich im Forum oder wenden sich an unseren Support.
Folgende Voraussetzungen sollten dringend erfüllt werden:
Sie benötigen vollen root-Zugriff per SSH auf den Quell- und auf den Zielserver.
Sie müssen als root-Benutzer Dateien per scp und per rsync vom Quell- auf den Zielserver kopieren können (d.h. SSH-Public-Key-Anmeldung als root auf dem Zielserver muss möglich sein, auf dem Quellserver muss vorübergehend der notwendige SSH Private Key hinterlegt sein).
Sie müssen mit der Administration eines Servers gut vertraut sein. Diese Anleitung ist definitiv keine “copy-und-paste”-Anleitung, sondern erklärt nur die notwendigen Schritte.
Auf dem Zielserver müssen alle Dienste installiert sein, die auch auf dem Quellserver vorhanden sind (also z.B. Apache, Postfix, Dovecot, ProFTPD, MySQL, …). Die Konfiguration dieser Dienste ist dabei völlig egal, weil die Konfigurationsdateien später umgezogen (umkopiert) werden.
Alle Dienste müssen auf dem Zielserver zudem beendet sein, um Nebenwirkungen zu vermeiden:
systemctl stop apache2
systemctl stop proftpd
systemctl stop postfix
systemctl stop dovecot
systemctl stop mysql
systemctl stop crond
Die MySQL-Version muss auf dem Quell- und dem Zielserver identisch sein! Also nicht von MariaDB auf MySQL oder von MySQL 5.7 auf 8.0 wechseln!
Installieren Sie auch liveconfig
(bzw. lcclient
beim Umzug eines Multi-Server-Systems). Sie brauchen weder einen Lizenzschlüssel noch ein Passwort o.ä. angeben, da das später alles vom Quellserver übernommen wird.
Beenden Sie dann LiveConfig (oder ggf. lcclient) auf dem Zielserver:
systemctl stop liveconfig
Da während des gesamten Vorgangs keine Daten auf dem Quellserver geändert oder gelöscht werden müssen, können Sie den Umzug auch bequem in aller Ruhe testen und bei Problemen einfach wiederholen.
LiveConfig liebt Datensparsamkeit. Sobald etwa ein FTP-Benutzer erfolgreich angelegt wurde, löscht LiveConfig das (zudem verschlüsselt gespeicherte) Passwort aus seiner Datenbank, da es dieses Passwort ab dann einfach nicht mehr benötigt.
Dieses Verhalten ist ein riesiger Sicherheitsvorteil (Passwörter, die nicht gespeichert sind, können auch nicht gehacked/geleaked werden). Bei einem Umzug ist das aber ein Problem: man kann nicht etwa sagen, dass LiveConfig nach einem Serverwechsel alle Systemaccounts auf dem Zielserver neu anlegen soll.
Zuerst müssen Sie herausfinden, bei welcher User-ID die “normalen” Accounts beginnen. Bei Debian/Ubuntu ist das meistens die 1000. Außerdem müssen Sie die ID des nobody
-Benutzers kennen (der braucht nicht umgezogen werden) - bei Debian ist das 65534.
Führen Sie folgenden Befehl auf dem Zielserver aus um sicherzustellen, dass dort noch keine normalen Benutzeraccounts angelegt sind:
awk -F: '($3>=1000) && ($3!=65534)' /etc/passwd
Es sollte idealerweise nichts ausgegeben werden. Falls doch, müssen Sie die betroffenen Accounts eventuell entfernen, falls auf dem Quell-Server Accounts mit der selben User-ID existieren!
Führen Sie dann auf dem Quellserver folgende Befehle aus:
awk -F: '($3>=1000) && ($3!=65534)' /etc/passwd >/root/passwd.add
awk -F: '($3>=1000) && ($3!=65534)' /etc/group >/root/group.add
awk -F: '($3>=1000) && ($3!=65534) {print $1}' /etc/passwd | grep -f - /etc/shadow >/root/shadow.add
awk -F: '($3>=1000) && ($3!=65534) {print $1}' /etc/group | grep -f - /etc/gshadow >/root/gshadow.add
Diese vier Dateien (passwd.add
, group.add
, shadow.add
und gshadow.add
) kopieren Sie dann auf den Zielserver und fügen deren Inhalte dort jeweils an die vorhandenen Systemdateien an:
cat passwd.add >>/etc/passwd
cat group.add >>/etc/group
cat shadow.add >>/etc/shadow
cat gshadow.add >>/etc/gshadow
Kopieren Sie per rsync alle Webspace-Verzeichnisse vom Quell- auf den Zielserver. Verwenden Sie dabei die rsync-Optionen -avRHAX
, z.B.:
rsync -avRHAX /var/www root@destination.example.org:/
Die E-Mails befinden sich meistens unter /var/mail
:
rsync -avRHAX /var/mail root@destination.example.org:/
Der Umzug von MySQL/MariaDB ist am einfachsten, wenn Sie den Service auf dem Quellserver beenden (systemctl stop mysql
) und dann direkt die Datenverzeichnisse kopieren:
rsync -avRHAX /var/lib/mysql root@destination.example.org:/
Sie können auch zu einem späteren Zeitpunkt inzwischen geänderte Dateien nachsynchronisieren. In diesem Fall fügen Sie noch die Option --delete
an, um auf dem Quellsystem gelöschte Dateien auf dem Zielserver auch zu löschen.
Mit folgendem Befehl kopieren Sie alle relevanten Konfigurationsdateien auf den Zielserver. Die vorhandene (Standard-)Konfiguration wird dabei einfach überschrieben. Machen Sie sich keine Sorgen um geänderte IP-Adressen, die werden später in LiveConfig korrigiert:
rsync -avR --delete /etc/apache2 /etc/nginx /etc/proftpd \
/etc/awstats /etc/webalizer \
/etc/ssl/certs/*.crt /etc/ssl/private \
/etc/postfix /etc/dovecot /etc/opendkim \
/etc/liveconfig /var/lib/liveconfig \
/etc/default/opendkim /etc/default/spamassassin \
root@destination.example.org:/
Passen Sie diese Liste entsprechend an, wenn Sie bestimmte Dienste davon nicht nutzen.
/etc/
-Verzeichnisses auf dem Zielserver. Beim Wechsel einer Distribution ist es gut möglich, dass Sie einzelne Konfigurationsdateien manuell nachbearbeiten müssen.
Starten Sie nun LiveConfig auf dem Zielserver und melden sich als admin an. Gehen Sie auf Serververwaltung -> Web. Bearbeiten Sie die Apache-Einstellungen (bzw. NGINX-Einstellungen) und wählen dort die zu verwendenden IP-Adressen aus. Anschließend bearbeiten Sie alle IP-Gruppen und aktivieren dort die in der jeweiligen Gruppe gewünschten IPs. Beim Bearbeiten der IP-Gruppen werden automatisch alle Apache- bzw. NGINX-vHost-Konfigurationsdateien neu geschrieben.
Analog gehen Sie durch die Einstellungen des Mailservers (Postfix, Dovecot) und des FTP-Servers (ProFTPD oder vsftpd) und speichern diese einfach neu ab.
Nun starten Sie der Reihe nach die Dienste auf dem Zielserver:
Apache
systemctl start apache2
Wenn etwas nicht klappt: Log-Datei /var/log/apache2/error.log
prüfen.
ProFTPD bzw. vsftpd starten:
systemctl start proftpd
Wenn etwas nicht klappt: Log-Datei /var/log/proftpd/proftpd.log
bzw. /var/log/vsftpd.log
prüfen.
Dovecot starten:
systemctl start dovecot
Wenn etwas nicht klappt: Log-Datei /var/log/mail.log
prüfen.
Postfix starten:
systemctl start postfix
Wenn etwas nicht klappt: Log-Datei /var/log/mail.log
prüfen.
MySQL/MariaDB starten:
systemctl start mysqld
Wenn etwas nicht klappt: Log-Datei /var/log/mysql/error.log
prüfen.
Wenn die Dienste soweit alle funktionieren, sollten Sie den Zielserver komplett neu starten. Somit können Sie prüfen ob beim Serverstart alle Dienste korrekt gestartet werden.
Wenn sich mit dem Umzug auch die Distribution ändern soll (z.B. von CentOS zu Debian oder Ubuntu), dann müssen Sie zusätzlich folgende Dinge beachten:
Umzug Konfigurationdateien
Anders als in diesem Dokument im Abschnitt 3. Konfigurationsdateien angegeben beschrieben, dürfen die Konfigurationsdateien der einzelnen Dienste nicht alle pauschal umkopiert werden, da sich die Pfade zwischen verschiedenen Distributionen häufig unterscheiden.
Statt dessen gehen Sie wie folgt vor:
admin
im LiveConfig an, gehen auf Verwaltung -> Server und aktivieren nun alle benötigten Dienste (Web-, SMTP/POP/IMAP-, FTP-, Datenbank- und DNS-Server). Hierbei erstellt LiveConfig die für die jeweilige Distribution benötigte Konfiguration./etc/dovecot/deny.imap
/etc/dovecot/deny.smtp
/etc/dovecot/passwd
/etc/postfix/dh*.pem
/etc/postfix/postgrey*
/etc/postfix/recipient_access*
/etc/postfix/sasl_access*
/etc/postfix/sender_access*
/etc/postfix/sender_local*
/etc/postfix/spamassassin*
/etc/postfix/virtual_alias*
/etc/postfix/virtual_domains*
/etc/proftpd/passwd
/etc/opendkim/keytable
/etc/opendkim/signingtable
/etc/opendkim/keys/*
Datenbank
Während CentOS häufig MySQL installiert, ist bei Debian/Ubuntu üblicherweise MariaDB dabei. Da sich die Benutzerverwaltung/Authentisierung von MySQL und MariaDB zunehmend unterscheiden, kann es sein, dass ein direkter Umzug (mit dump/import) nicht möglich ist. In diesem Fall empfehlen wir, auf dem Zielserver das selbe Datenbanksystem wie auf dem Quellserver zu installieren (ggf. eben in einer etwas neueren Version). Sowohl MySQL als auch MariaDB stellen Pakete für alle üblichen Distributionen in eigenen Repositories bereit.
Umzug vsftpd/ProFTPD
Die zusätzlichen (virtuellen) FTP-Accounts werden in ProFTPD und vsftpd grundsätzlich unterschiedlich verwaltet. Ein Wechseln vom einen auf den anderen FTP-Server bedeutet daher, dass die Passwörter aller virtuellen FTP-Accounts neu gesetzt werden müssen; eine Übernahme der Passwörter ist technisch leider nicht möglich.