Wie ich CloudPanel auf einem Netcup VPS sicher eingerichtet habe

Vom leeren Server bis zum professionellen WordPress-Hosting

Als ich mein eigenes Webhosting auf Basis eines Netcup VPS aufgebaut habe, war mir eines besonders wichtig:
Ich wollte jeden einzelnen Schritt selbst kontrollieren – vom Betriebssystem über die Sicherheitskonfiguration bis hin zum Hosting-Panel.

In diesem Artikel dokumentiere ich aus der Praxis, wie ich CloudPanel auf einem Netcup VPS aufgesetzt habe, welches Betriebssystem ich installiert habe, welche Sicherheitsmaßnahmen umgesetzt wurden und warum dieses Setup heute die Grundlage für stabiles, sicheres und vertrauenswürdiges Hosting ist.


Ausgangspunkt: Ein leerer Netcup VPS

Am Anfang stand ein frisch bestellter Virtual Server bei Netcup – ohne zusätzliche Software, ohne Panels, ohne Vorinstallation.

Betriebssystem-Auswahl

Ich habe mich bewusst für eine Ubuntu LTS-Version entschieden, weil sie:

  • langfristige Sicherheitsupdates erhält
  • hervorragend dokumentiert ist
  • optimal von CloudPanel unterstützt wird
  • stabil und vorhersehbar läuft

Die Installation des Betriebssystems habe ich direkt im Netcup Server Control Panel (SCP) durchgeführt.


Schritt 1: Erstzugang & System vorbereiten

Nach der Betriebssysteminstallation habe ich mich erstmals per SSH als root verbunden.

ssh root@SERVER-IP

Direkt danach habe ich das System vollständig aktualisiert, um sicherzustellen, dass keine bekannten Sicherheitslücken vorhanden sind.

apt update && apt -y upgrade
apt -y autoremove

Dieser Schritt war mir besonders wichtig, da viele Angriffe gezielt auf frisch installierte, ungepatchte Systeme abzielen.


Schritt 2: Sauberen Hostnamen setzen

Noch bevor weitere Software installiert wurde, habe ich dem Server einen eindeutigen Hostnamen gegeben, z. B.:

panel.meinedomain.tld
hostnamectl set-hostname panel.meinedomain.tld

Der Hostname wurde anschließend geprüft:

hostnamectl

Ein sauber gesetzter Hostname sorgt für:

  • klare Logfiles
  • saubere SSL-Zertifikate
  • eindeutige Serveridentifikation

Schritt 3: Eigenen Admin-Benutzer anlegen

Ich arbeite grundsätzlich nicht dauerhaft als root.
Deshalb habe ich direkt einen eigenen Admin-Benutzer erstellt.

adduser adminuser

Anschließend habe ich ihm sudo-Rechte vergeben:

usermod -aG sudo adminuser

Ab diesem Zeitpunkt wurden administrative Aufgaben über diesen Benutzer erledigt – ein wichtiger Sicherheitsstandard.


Schritt 4: SSH absichern (Schlüssel statt Passwörter)

Einer der wichtigsten Schritte war die Absicherung des SSH-Zugangs.

SSH-Key-Verzeichnis vorbereiten

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Hier habe ich meinen Public SSH Key hinterlegt.


Passwort-Login deaktivieren

In der Datei /etc/ssh/sshd_config habe ich folgende Einstellungen gesetzt:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Danach wurde der SSH-Dienst neu gestartet:

systemctl restart ssh

Ab diesem Moment war der Server:

  • nicht mehr per Passwort angreifbar
  • nicht mehr direkt als root erreichbar
  • nur noch mit gültigem SSH-Key zugänglich

Schritt 5: Firewall aktivieren (Minimalprinzip)

Als Nächstes habe ich eine Firewall eingerichtet, die nur notwendige Ports freigibt.

ufw allow OpenSSH
ufw allow 80
ufw allow 443
ufw enable

Alle anderen Ports wurden konsequent blockiert.

Das Prinzip war klar:

Was nicht gebraucht wird, ist von außen nicht erreichbar.


Schritt 6: DNS vorbereiten

Parallel dazu habe ich im DNS meiner Domain einen A-Record gesetzt:

panel.meinedomain.tld → SERVER-IP

So war das Panel später sauber unter einer eigenen Subdomain erreichbar.


Schritt 7: Installation von CloudPanel

Erst nachdem das System abgesichert war, habe ich CloudPanel installiert.

Die Installation lief über das offizielle Installationsskript und wurde nicht verändert oder „angepasst“, um Updatefähigkeit und Stabilität zu gewährleisten.

Nach der Installation war CloudPanel:

  • ausschließlich per HTTPS erreichbar
  • mit gültigem SSL-Zertifikat abgesichert
  • klar vom restlichen System getrennt

Schritt 8: Absicherung innerhalb von CloudPanel

Im CloudPanel selbst habe ich darauf geachtet, dass:

  • nur notwendige Benutzer existieren
  • starke Passwörter verwendet werden
  • keine unnötigen Dienste aktiviert sind
  • jede Website einen eigenen Systembenutzer erhält

Dadurch sind Projekte sauber voneinander isoliert.


Schritt 9: WordPress-Hosting mit Struktur

Für WordPress-Websites habe ich:

  • getrennte Benutzer pro Projekt verwendet
  • PHP-Versionen gezielt eingestellt
  • Dateirechte restriktiv gehalten
  • SSL-Zertifikate automatisch genutzt

Das Ergebnis:

  • hohe Sicherheit
  • gute Performance
  • klare Wartbarkeit

Wartung & Betrieb

Nach dem Setup habe ich feste Routinen etabliert:

  • regelmäßige Systemupdates
  • CloudPanel-Updates
  • Logfile-Kontrollen
  • Backup-Strategien auf Server- und Projektebene

So bleibt das Hosting nicht nur sicher, sondern auch langfristig stabil.


Fazit: Warum dieses Setup Vertrauen schafft

Dieses Setup entstand nicht zufällig, sondern Schritt für Schritt:

  • kontrollierte Betriebssystem-Installation
  • konsequentes Server-Hardening
  • sichere SSH-Konfiguration
  • minimierte Angriffsfläche
  • klare Hosting-Struktur

Für meine Kunden bedeutet das:

Webhosting mit Verantwortung, Transparenz und technischem Anspruch.

Weitere Kundenreferenzen

Wie und warum ich eine eigene, hochsichere Mailserver-Infrastruktur aufgebaut habe

10. Dezember 2025
Server & Hosting

E-Mail ist eines der wichtigsten Kommunikationsmittel im Geschäftsalltag. Viele Unternehmen verlassen sich täglich darauf, dass Nachrichten zuverlässig zugestellt werden, geschützt sind und nicht in falsche Hände geraten. Gleichzeitig steigen sowohl…