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.