Webhosting mal ganz entspannt! Das verspricht das Control Panel mit schnell wachsendem Funktionsumfang und schicker Oberfläche. Kommandozeilen-Kung-Fu und Skriptmagie soll nun der Vergangenheit angehören. Im Gegensatz zu den etablierten Alternativen cPanel und Plesk gibt es KeyHelp sogar kostenlos. Zumindest wenn man auf Dark Mode, SSH-Chroot und 1-Click-Installer verzichten kann.

KeyHelp Admin Panel
KeyHelp Admin Panel

Die schlechten Nachrichten gleich vorneweg: KeyHelp ist nicht perfekt und es fehlen noch Features für Poweruser und aufwendigere Installationen. Ein Beispiel ist hier die DNS Verwaltung. KeyHelp unterstützt die automatische Konfiguration des mitgelieferten DNS-Servers, jedoch können DKIM Selektoren nicht eingestellt werden. Außerdem muss der Server auf dem KeyHelp installiert ist als autoritative Nameserver eingetragen werden. Jedoch sollten (bzw. müssen) mindestens zwei Nameserver angegeben werden – es gibt aber keine einfache Möglichkeit, die Zonen auf einen zweiten Server zu synchronisieren.

Die gute Nachricht: Für einfachere Setups ist KeyHelp mehr als ausreichend. Und auch kompliziertere Installationen lassen sich realisieren, denn KeyHelp setzt auf Standardsoftware wie Apache und PHP-FPM und diese können auch weiterhin händisch konfiguriert werden. Beispielsweise können in der bind-Konfiguration (dem DNS-Server, der von KeyHelp verwendet wird) die für die Synchronisierung der DNS-Zonen nötigen allow-transfer und also-notify Blöcke ergänzt werden.

Es geht los – KeyHelp Installation

KeyHelp hat einige Ansprüche an den Server:

  • Es muss sich um ein x64 Debian oder Ubuntu System handeln
  • Mindestens 1 GB Arbeitsspeicher (ich würde hier aber zu mindestens 4 raten)
  • Der Server darf keine vorinstallierte/vorkonfigurierte Software enthalten (ich hatte mit installiertem OpenSSH-Server allerdings keine Probleme)

Außerdem muss die Installation als root-User erfolgen. Auf einem Debian oder Ubuntu System wechselt man mittels sudo su von jedem User mit sudo-Berechtigung zum root-User. Und dann genügt ein einziger Befehl, der in die Kommdozeile eingegeben wird:

wget https://install.keyhelp.de/get_keyhelp.php -O install_keyhelp.sh ; bash install_keyhelp.sh ;

Dieser besteht aus zwei Teilen: Der erste Teil lädt mithilfe des Programms wget das Installationsskript install_keyhelp.sh herunter, der zweite Teil führt das Skript aus und startet damit die Installation. Während der Installation wird nach der FQDN des Servers gefragt: Das ist die Internet-Adresse, unter der am Ende das KeyHelp Panel erreichbar sein soll, außerdem wird diese Adresse vom Mail-System verwendet werden. Daher ist es wichtig, dass die IP des Servers zu dieser Adresse über Reverse DNS auflöst.

Nach der Installation

Hat alles geklappt, dann sollte nun das Web-Interface über den Browser aufrufbar sein und der Login mit den im Installationsassistenten festgelegten Zugangsdaten funktionieren. Die Zugangsdaten können nach der Installation nochmals unter /root/keyhelp_login_data_* eingesehen werden.

Backups

KeyHelp organisiert Backups in sogenannten Repositories. Dabei werden viele verschiedene Systeme als Ziel unterstützt. Ich empfehle mindestens ein Offsite-Backup und, wenn der Platz auf dem Server es zulässt, ein lokales Backup. Lokale Backups können schnell erzeugt und wiederhergestellt werden und Offsite-Backups schützen vor einem Ausfall des Servers als Ganzes. Für Offsite-Backups verwende ich einen zweiten Server, der über ein Wireguard VPN an den KeyHelp-Server angebunden ist. Das Backup wird dann über SFTP übertragen. KeyHelp unterstützt auch ungesicherte FTP Verbindungen, von diesen würde ich aber strengstens abraten – vor allem, wenn nicht ein gesicherter Tunnel oder ähnliches verwendet wird.

DNS Einrichtung

KeyHelp erlaubt das Verwalten von DNS Einstellungen für eine Domain. Im Panel heißt dieser Punkt DNS Zone Editor. Es ist aber etwas Vorarbeit nötig, damit man diese Einstellungen auch nutzen kann. KeyHelp erwartet folgende Domains für einen primären und sekundären Nameserver

  • ns.server.domain
  • ns2.server.domain

(Sollen andere Domains verwendet werden, so kann das im Admin-Panel eingestellt werden). Das heißt es muss sichergestellt sein, dass diese Domains auch auf zwei Nameserver auflösen, die die Domains auf dem KeyHelp Server verwalten. Als primären Nameserver verwende ich den KeyHelp-Server selbst. Der sekundäre Nameserver muss (das wird vom DNS System zumindest meistens forciert) eine andere IP besitzen. Man könnte natürlich auf die Idee kommen, dem Server eine zweite IP zuzuweisen und das würde in den meisten Fällen auch funktionieren (manchmal werden sogar verschiedene Subnetze verlangt). Aus Gründen der Redundanz sollte aber ein zweiter unabhängiger Server verwendet werden.

Sekundärer DNS-Server

In Fällen, wo viele Domains vom KeyHelp-Server dynamisch verwaltet werden sollen, ist etwas Extraarbeit fällig. Dann müssen nämlich die Zonen selbst vom primären Server auf den sekundären Server in regulären Intervallen synchronisiert werden. Hier gibt es viele Ansätze, angefangen von Skripten bis hin zu sogenannten Catalog-Zones. Mit diesem Fall werde ich mich hier allerdings nicht weiter befassen.

Stattdessen möchte ich kurz die Konfiguration bei einem sehr statischen Setup mit wenigen Domains erklären. Denn dann kann statt eines eigenen zweiten Servers auch ein Online-Dienst verwendet werden, der sekundäres DNS anbietet. Ich habe sehr gute Erfahrungen z. B. mit der Hetzner DNS Console gemacht. Diesen Dienst bietet Hetzner sogar kostenlos.

Damit die Server von Hetzner wissen, welche Zonen sie anbieten sollen, müssen die im DNS Portal angelegt werden. Dabei wählt man den Typ “Sekundäres DNS”. Im Assistenten muss man anschließend die IP des primären Nameservers, also des KeyHelp-Servers eintragen. Auf deren Seite ist damit schon alles erledigt, jetzt muss die Übertragung auf die Hetzner-Server von unserer Seite aus noch genehmigt werden. Dazu öffnet man eine Konsolensession auf dem KeyHelp-Server und ergänzt in der Datei

/etc/bind/named.conf.options

folgende zwei Blöcke:

allow-transfer {
    // Hier die Hetzner IPs eintragen
};
also-notify {
    // Hier auch die Hetzner IPs eintragen
};

Das erlaubt sogenannte Zonentransfers auf die eingegebenen IPs (Asynchronous Full Transfer Zone oder Asynchronous Xfer Full Range, AXFR). Jetzt muss nur noch die DNS-Server Konfiguration neu geladen werden:

# Prüfen ob die Konfiguration gültig ist
named-checkconf
# Dann die DNS-Server Konfiguration neu laden
rndc reload

Damit ist alles bereit und die Zonen sollten in den nächsten Stunden übertragen werden. Jetzt muss sichergestellt werden, dass der KeyHelp-Server auf ns.server.domain auflöst und einer der Hetzner DNS-Server auf ns2.server.domain. Anschließend sollte geprüft werden, ob die Zonen auf beiden Servern ordnungsgemäß eingerichtet sind. Hierzu empfehle ich das Kommandozeilen-Tool dig⁣, bei dem man angeben kann, welcher Server für die Auflösung verwendet werden soll.

# Zum Beispiel Prüfen der IPs auf ns.server.domain
dig @ns.server.domain TYP domain.tld

# TYP z. B. NS, A, AAAA, SOA
# Ergebnis in der Antwort sollte dem entsprechen was im Panel eingestellt ist

Erst jetzt werden bei Registrar die beiden Nameserver hinterlegt. Auch hier ist Geduld gefragt: Je nach TTL der früheren Einträge kann es bis zu 48h dauern, bis die Änderungen überall bekannt sind (meist sind es aber eher 15-120 Minuten).

Vorsicht: Soll die Domain des Servers selbst verwaltet werden, dann müssen unbedingt Glue Records gesetzt werden. Sonst kann der Nameserver nicht von den Resolvern gefunden werden.

Ihr habt einen Tipp, wie man noch entspannter Webserver verwaltet? Schreibt ihn gerne in die Kommentare und lasst andere dran teilhaben!

Weiterlesen

Bildquellen


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published.