
Minimal-Server & aaPanel-Setup: Die Basis-Härtung

Jeder erfahrene Entwickler kennt den Moment: Der neue vServer ist gemietet, die IP-Adresse zugewiesen und die Zugangsdaten vom Hoster liegen im Postfach. Der Reflex ist groß, sich direkt per SSH als root mit dem vorgegebenen Passwort einzuloggen und sofort mit der Installation der Web-Umgebung zu beginnen.
Genau dieser Impuls ist gefährlich. Wenn ein frisch aufgesetzter Server ans Netz geht, dauert es meist nur wenige Minuten, bis automatisierte Scanner und Botnetze die öffentliche IP-Adresse abklopfen. Sie suchen gezielt nach offenen Standard-Ports und versuchen, schwache Root-Passwörter per Brute-Force zu knacken. Wenn du deinen aaPanel Server einrichten willst, musst du diese kritische erste Phase nutzen, um die Standard-Angriffsflächen sofort zu eliminieren, bevor du Software überhaupt herunterlädst.
In diesem ersten Teil der Masterclass bauen wir das Fundament. Wir loggen uns in den nackten Ubuntu 24.04 LTS Server ein, deaktivieren den unsicheren Passwort-Login und etablieren eine saubere Authentifizierung über kryptografische Schlüssel (SSH-Keys). Erst wenn dieses Schloss ausgetauscht ist, installieren wir das aaPanel und verstecken das Dashboard so, dass automatisierte Scanner es nicht finden können.
Die ersten Schritte nach der Bereitstellung
Frisch ausgelieferte Server-Images der Hosting-Anbieter sind oft schon Wochen oder Monate alt. Das bedeutet, dass zum Zeitpunkt deines ersten Logins meist bereits geschlossene Sicherheitslücken im Kernel oder in Systembibliotheken vorliegen.
Der allererste Befehl nach dem Login als root lautet daher immer: System aktualisieren.
# Paketlisten aktualisieren und System auf den neuesten Stand bringen
apt update && apt upgrade -yWenn bei diesem Prozess ein Kernel-Update installiert wurde, führe einen kurzen Neustart (reboot) durch, damit die neuen Kernel-Sicherheitsfeatures aktiv werden.
Den Root-Login deaktivieren und SSH-Keys nutzen
Sich im Alltag als root-Benutzer mit einem Passwort einzuloggen, ist ein massives Sicherheitsrisiko. Wir erstellen stattdessen einen normalen Benutzer, geben ihm administrative Rechte (sudo) und erlauben den Login ausschließlich über einen sicheren SSH-Schlüssel, den wir lokal auf unserem Rechner generieren.
Öffne ein Terminal auf deinem lokalen Rechner (nicht auf dem Server) und generiere ein neues ed25519-Schlüsselpaar. Dieses kryptografische Verfahren ist sicherer und performanter als das ältere RSA-Format.
# Lokal ausführen: Neues Schlüsselpaar generieren
ssh-keygen -t ed25519 -C "admin-aapanel"Du wirst nach einem Speicherort und einem Passwort (Passphrase) für den Schlüssel gefragt. Ein starkes Passwort für den Key ist Pflicht, falls dein lokaler Rechner einmal kompromittiert wird.
Nun übertragen wir den öffentlichen Schlüssel (.pub) auf unseren neuen Server.
Wechsle zurück auf das Terminal deines Servers (wo du noch als root eingeloggt bist). Wir legen einen neuen Benutzer an, fügen ihn der sudo-Gruppe hinzu und hinterlegen den soeben generierten Schlüssel.
1# 1. Neuen Benutzer anlegen (z.B. 'deploy')
2adduser deploy
3
4# 2. Den Benutzer zur sudo-Gruppe hinzufügen
5usermod -aG sudo deploy
6
7# 3. Zum neuen Benutzer wechseln
8su - deploy
9
10# 4. Das versteckte SSH-Verzeichnis anlegen und Rechte setzen
11mkdir ~/.ssh
12chmod 700 ~/.ssh
13
14# 5. Die Datei für die erlaubten Schlüssel erstellen
15nano ~/.ssh/authorized_keysFüge nun den Inhalt deines lokalen öffentlichen Schlüssels (die Ausgabe von cat ~/.ssh/id_ed25519.pub auf deinem Rechner) in diese Datei ein. Speichere und schließe den Editor (Ctrl+O, Enter, Ctrl+X).
# 6. Striktes Rechtemanagement für die Schlüssel-Datei
chmod 600 ~/.ssh/authorized_keysTeste nun zwingend in einem neuen Tab auf deinem lokalen Rechner, ob der Login mit dem Key funktioniert, bevor du weitermachst:
ssh deploy@DEINE_SERVER_IPWenn du drin bist, können wir die Tür hinter uns abschließen. Wir deaktivieren den Root-Login und die Passwort-Authentifizierung komplett. Seit Ubuntu 24.04 wird die SSH-Konfiguration sauber über Drop-in-Dateien gesteuert. Wir legen eine eigene Konfigurationsdatei an, die alle Standardwerte überschreibt.
# Als Benutzer 'deploy' die SSH-Konfiguration bearbeiten
sudo nano /etc/ssh/sshd_config.d/99-hardening.confFüge dort diese vier Zeilen ein:
Ini, TOML
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yesLade den SSH-Dienst neu, um die Änderungen scharf zu schalten:
sudo systemctl reload sshDamit haben wir die grundlegendste Maßnahme getroffen. Brute-Force-Angriffe auf das Root-Passwort laufen jetzt komplett ins Leere.

Das Fundament steht. Der SSH-Zugang ist abgeriegelt. Nun transformieren wir den nackten Server in eine visuell steuerbare Hosting-Plattform. Wir nutzen dafür aaPanel, da es im Gegensatz zu herkömmlichen, schwerfälligen Administrations-Panels extrem ressourcenschonend arbeitet und nur die Dienste kompiliert, die du explizit anforderst.
Lade das offizielle Installationsskript herunter und führe es aus. Da wir uns zuvor als normaler Nutzer (deploy) eingeloggt haben, stellen wir dem Ausführungs-Befehl ein sudo voran.
# aaPanel Installationsskript für Ubuntu herunterladen und ausführen
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh
sudo bash install.shDas Skript fragt im Terminal, ob das Panel in das Verzeichnis /www installiert werden soll. Bestätige dies mit y. Die Installation dauert je nach Serverleistung einige Minuten. Anschließend gibt das Terminal deine initialen Zugangsdaten aus: Die Internet-IP, einen zufälligen Port (meist 7800 oder 40700), einen kryptischen Pfad (den Entrance Token) sowie einen generierten Benutzernamen und ein Passwort.
Kopiere diese Daten sorgfältig in deinen Passwortmanager. Logge dich jetzt jedoch noch nicht in die Web-Oberfläche ein. Wenn du einen professionellen aaPanel Server einrichten willst, reicht diese Standardkonfiguration niemals aus.
Jeder Botnetz-Betreiber kennt die gängigen Ports von Control-Panels. Behältst du diese bei, wird dein Server ununterbrochen von automatisierten Login-Versuchen bombardiert. Wir nutzen daher das interne Kommandozeilen-Werkzeug (CLI) von aaPanel, um das Dashboard komplett unsichtbar zu machen, bevor wir es das erste Mal im Browser aufrufen. Tippe dazu einfach bt in dein Terminal ein.
# aaPanel CLI-Menü aufrufen
sudo btEs erscheint ein nummeriertes Menü mit verschiedenen Verwaltungsoptionen. Wir ändern zuerst den Port auf einen unauffälligen, hohen Wert im fünfstelligen Bereich. Wähle idealerweise eine eigene Zufallszahl zwischen 10000 und 65000.
# Wähle Option 8: Change panel port
# Gib deinen neuen Port ein (z.B. 54321)Als Nächstes passen wir den Security Entrance an. Das ist der geheime URL-Pfad, ohne den die Login-Seite schlichtweg nicht lädt und stattdessen eine Fehlermeldung ausgibt. Standardmäßig generiert aaPanel einen Zufallswert (wie /835ff1a6). Wir setzen hier einen eigenen, komplexen Wert, der wie ein zweites Passwort fungiert.
# Wähle Option 11: Cancel/Set entrance limit
# Gib einen neuen Pfad ein, z.B. /mein-geheimer-tresor-2026Lasse dir abschließend mit der Option 14 (View panel default info) deine neuen Zugangsdaten anzeigen. Deine Login-URL lautet nun: http://DEINE_SERVER_IP:54321/mein-geheimer-tresor-2026. Verlasse das Menü mit 0.
Durch diese simplen Anpassungen auf Kommandozeilenebene haben wir das Dashboard massiv abgesichert. Automatisierte Port-Scanner finden auf den Standard-Ports keine Web-GUI mehr. Selbst wenn sie den neuen Port per Zufall scannen, stoßen sie ohne den exakten URL-Pfad ins Leere. Genau so muss man einen aaPanel Server einrichten – durch konsequente Reduktion der Angriffsfläche.
Im nächsten Teil der Serie loggen wir uns ein und verknüpfen die Linux-Firewall mit der panelinternen Sicherheit.

Teil der Serie
Vom Localhost zum Produktivserver (Ubuntu & aaPanel)
Häufig gestellte Fragen (FAQ)
Keine Panik. Da du noch vollen SSH-Zugang über deinen lokalen Key hast, loggst du dich einfach in dein Terminal ein und rufst das aaPanel-Kommandozeilentool mit sudo bt auf. Über die Option 14 (View panel default info) kannst du dir deinen Port, den URL-Pfad sowie den Benutzernamen jederzeit sicher anzeigen lassen.
Der Administrator-Benutzername root existiert auf jedem Linux-System. Angreifer haben damit 50 Prozent der Zugangsdaten bereits in der Hand und müssen "nur" noch das Passwort erraten. Wenn du deinen Ubuntu Server härten willst, ist die Deaktivierung der Passwort-Authentifizierung der effektivste Hebel überhaupt. Ohne den passenden, lokal generierten SSH-Schlüssel wird die Verbindung vom Server vom ersten Byte an abgelehnt.
Das Verlegen des SSH-Ports (z. B. auf Port 2222 oder höher) ist eine gute Praxis, um Log-Dateien sauber zu halten und das "Hintergrundrauschen" von dummen Scannern zu minimieren. Aus strikter Sicherheitsperspektive ist es bei einer reinen Key-Authentifizierung aber kein Muss mehr. Da wir den Passwort-Login deaktiviert haben, können Angreifer ohnehin keinen Zugang erzwingen. Zudem etablieren wir in Teil 2 Fail2ban, das Scanner auf Port 22 nach wenigen Fehlversuchen sofort für 24 Stunden aussperrt.
Nein. Wenn du einen professionellen aaPanel Server einrichten möchtest, reicht die quelloffene Free-Version für 99 % aller Anwendungsfälle völlig aus. Sie enthält alle Funktionen (Nginx, PM2, Docker-Manager, Let's Encrypt, Cronjobs), die wir für unseren hochperformanten Web-Stack benötigen. Es gibt eine kostenpflichtige Pro-Version, diese beinhaltet primär vorgefertigte WAF-Module (Web Application Firewalls) oder erweitertes Website-Tampering, was wir für unser Setup jedoch nicht zwingend benötigen.
Das ist genau der Vorteil von aaPanel. Anstatt Konfigurationsdateien für Nginx, PHP-FPM und MySQL händisch über nano oder vim zusammenzubauen, überlassen wir das Kompilieren und das Zusammenspiel dieser Dienste der Panel-Software. Das spart enorm viel Zeit, reduziert Fehlerquellen und ermöglicht uns später, PHP-Versionen oder SSL-Zertifikate per Mausklick zu verwalten, während das System im Hintergrund saubere, standardisierte Konfigurationen schreibt.
Dein nächster Schritt: Die Doppel-Brandmauer
Dein Fundament steht. Der Server ist aktualisiert, der unsichere Root-Zugang ist versperrt und das aaPanel läuft komplett versteckt unter einem geheimen Port. Doch "Security by Obscurity" (Sicherheit durch Unsichtbarkeit) reicht für ein echtes Produktionssystem nicht aus.
Im zweiten Teil unserer Masterclass loggen wir uns das erste Mal in das Web-Dashboard ein und ziehen eine doppelte Brandmauer hoch. Wir härten die Benutzeroberfläche zwingend mit Zwei-Faktor-Authentifizierung (2FA) und IP-Whitelisting. Auf Systemebene lösen wir den typischen Konfigurationskonflikt zwischen der Linux UFW-Firewall und den aaPanel-eigenen Regeln. Zum Abschluss schalten wir Fail2ban dazwischen, um hartnäckige Angreifer und Brute-Force-Bots vollautomatisch auf Netzwerkebene wegzusperren.
Jetzt starten: Teil 2 – aaPanel & Server-Hardening: Die Doppel-Brandmauer

Dietrich Bojko
Senior Webentwickler
Webinteger arbeitet seit vielen Jahren produktiv mit
Linux-basierten Entwicklungsumgebungen unter Windows.
Der Fokus liegt auf
performanten Setups mit WSL 2, Docker, PHP, Node.js und modernen
Build-Tools in realen Projekten –
nicht auf theoretischen Beispielkonfigurationen.
Die Artikel dieser Serie entstehen direkt aus dem täglichen Einsatz in Kunden- und Eigenprojekten und dokumentieren bewusst auch typische Fehler, Engpässe und bewährte Workarounds.


