Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Cloud / Hosting 12.06.2026 · 10 min Lesezeit

Erster eigener Cloud-Server: VPS bei Hetzner oder netcup aufsetzen und absichern

Vom bereitgestellten VPS bei Hetzner Cloud oder netcup zum abgesicherten Server: SSH-Schlüssel, Admin-Benutzer, Anbieter-Firewall und UFW, Fail2Ban, automatische Updates, Reverse DNS und Snapshots.

Geprüft am 14.10.2026 · für Fail2Ban 1.1.1

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Mehr dazu

Schreibtisch mit zugeklapptem Laptop, Kaffeetasse, Speicherstick und Netzwerkkabel vor einem verglasten Serverraum

Wer zum ersten Mal einen eigenen virtuellen Server (VPS) betreibt, findet viele Anleitungen zu Einzelthemen, aber selten den ganzen Weg in der richtigen Reihenfolge. Diese Anleitung führt Sie von der Bereitstellung bei Hetzner Cloud oder netcup bis zum abgesicherten, gesicherten Server: Schlüssel-Login, eigener Admin-Benutzer, Firewall beim Anbieter und auf dem Server, Fail2Ban, automatische Updates, Reverse DNS und Snapshots. Die Beispiele nutzen Ubuntu 24.04 LTS, die Befehle passen auch zu Debian 12/13.

Voraussetzungen

  • Kundenkonto bei Hetzner Cloud oder netcup. Für einen Einstieg mit einem oder zwei Diensten planen Sie 2 vCPU, 4 GB RAM und 40 GB Speicher ein, x86-64 oder ARM64 (auf ARM laufen nur dafür gebaute Programme).
  • Lokaler Rechner mit OpenSSH-Client (Linux, macOS, unter Windows 10/11 die PowerShell)
  • Ed25519-Schlüsselpaar, siehe SSH-Key-Authentifizierung einrichten
  • Optional eine eigene Domain, deren A-Record Sie auf die Server-IP setzen können (für Reverse DNS)
  • Etwa 90 Minuten Zeit, solange der Server noch keine produktiven Daten trägt

Schritt 1: Anbieter und Tarif festlegen

Beide Anbieter betreiben Rechenzentren in Deutschland. Die Unterschiede liegen weniger in der Technik als in Abrechnung, Werkzeugen und Zusatzfunktionen. Vergleichen Sie Tarife, Laufzeiten und Preise direkt auf den Produktseiten von Hetzner Cloud und netcup, denn das Angebot ändert sich regelmäßig. Für diese Anleitung sind folgende Punkte wichtig (Stand der Dokumentation: 14.10.2026):

MerkmalHetzner Cloudnetcup VPS/Root-Server
VerwaltungHetzner Console, REST-API, CLI hcloudServer Control Panel (SCP), REST-API
SSH-Schlüsselbei der Erstellung wählbar, danach nicht mehr über die Consoleim SCP hinterlegt, nur bei Installation eines offiziellen Images übertragen
Firewall beim AnbieterCloud Firewall, bis 500 effektive Regeln, ohne Regeln wird eingehend alles blockiertSCP-Firewall mit Policys, stateful für TCP, Policy „netcup Mail block“ sperrt SMTP
SicherungBackups (bis 7 Slots) und manuelle SnapshotsOffline- und Online-Snapshots, Offline empfohlen und exportierbar
NotzugangKonsole in der Hetzner ConsoleVNC-Konsole „Bildschirm“ im SCP

Wählen Sie den Anbieter, dessen Abrechnungsmodell und Werkzeuge zu Ihrem Vorhaben passen. Wer Server häufig per Skript erstellt und wieder löscht, profitiert von CLI und API. Wer einen Server dauerhaft betreibt, achtet eher auf Laufzeit, Speicher und Sicherungsoptionen.

Verifizieren: Sie können sich in der Hetzner Console beziehungsweise im netcup-SCP anmelden, und Ihr Konto ist für Bestellungen freigeschaltet.

Schritt 2: Server erstellen und SSH-Schlüssel hinterlegen

Erzeugen Sie den Schlüssel auf Ihrem Rechner, falls noch keiner existiert:

ssh-keygen -t ed25519 -a 64 -C "admin@example.de"

Hetzner Cloud: Öffnen Sie Ihr Projekt, wählen Sie Servers, Add server, dann Standort, Image (Ubuntu 24.04) und Typ. Fügen Sie unter SSH key den Inhalt von ~/.ssh/id_ed25519.pub hinzu. Laut Hetzner-Dokumentation lässt sich nach der Erstellung kein Schlüssel mehr über die Console ergänzen. Im Feld für cloud-init können Sie optional ein Skript mitgeben (höchstens 32 KiB), das nur beim ersten Start läuft.

netcup: Root-Passwort und SCP-Zugangsdaten kommen per E-Mail. Hinterlegen Sie den Schlüssel im SCP unter SSH-Schlüssel. Auf den Server gelangt er nur, wenn Sie unter Medien, Images ein offizielles Image installieren und den Schlüssel dabei auswählen. Die Installation löscht die Festplatte, machen Sie das also nur bei einem leeren Server. Wie Sie das SCP selbst mit Zwei-Faktor-Anmeldung absichern, zeigt die Anleitung netcup-Server: Erste Schritte nach der Bereitstellung.

Verifizieren: Der Server wird im Panel als laufend mit einer öffentlichen IPv4-Adresse angezeigt, und Ihr öffentlicher Schlüssel ist im Panel hinterlegt.

Schritt 3: Erster Login und System aktualisieren

Melden Sie sich als root an (Hetzner per Schlüssel, netcup ohne Image-Neuinstallation per Passwort aus der E-Mail) und aktualisieren Sie das System sofort:

ssh root@SERVER-IP
apt update && apt full-upgrade -y && apt autoremove -y

Existiert danach die Datei /var/run/reboot-required, starten Sie mit reboot neu und melden sich erneut an.

Verifizieren: lsb_release -d zeigt Ubuntu 24.04.x LTS, und apt list --upgradable listet keine ausstehenden Pakete.

Schritt 4: Admin-Benutzer anlegen

Arbeiten Sie nicht dauerhaft als root. Legen Sie einen Benutzer mit sudo-Rechten an und übernehmen Sie den Schlüssel von root:

adduser adminname
usermod -aG sudo adminname
install -d -m 700 -o adminname -g adminname /home/adminname/.ssh
install -m 600 -o adminname -g adminname /root/.ssh/authorized_keys /home/adminname/.ssh/authorized_keys

Hat root noch keinen Schlüssel (netcup ohne Neuinstallation), übertragen Sie ihn von Ihrem Rechner mit ssh-copy-id adminname@SERVER-IP.

Verifizieren: In einem zweiten Terminal gelingt ssh adminname@SERVER-IP ohne Server-Passwort, und sudo whoami gibt root aus. Lassen Sie die Root-Sitzung offen.

Schritt 5: SSH absichern

Legen Sie die Einstellungen in einer eigenen Datei ab. Ubuntu bindet /etc/ssh/sshd_config.d/ ganz oben ein, und OpenSSH verwendet bei den meisten Optionen den zuerst gelesenen Wert.

sudo tee /etc/ssh/sshd_config.d/00-haertung.conf >/dev/null <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
AllowUsers adminname
X11Forwarding no
EOF
sudo sshd -t && sudo systemctl reload ssh

Auf Ubuntu 24.04 heißt der Dienst ssh. Sperren Sie sich aus, hilft die Konsole im Panel des Anbieters, die unabhängig von SSH funktioniert.

Verifizieren: sudo sshd -T | grep -E '^(permitrootlogin|passwordauthentication|allowusers) ' zeigt die gesetzten Werte. ssh root@SERVER-IP endet mit Permission denied (publickey)., die Anmeldung als adminname funktioniert weiter.

Schritt 6: Firewall beim Anbieter einrichten

Eine Firewall beim Anbieter filtert Verkehr, bevor er den Server erreicht. Hetzner: Unter Firewalls, Create Firewall legen Sie eingehende Regeln an. Laut Hetzner-Dokumentation wird ohne Regel aller eingehende Verkehr blockiert und ausgehender erlaubt, Antwortverkehr lässt die Firewall automatisch durch.

ProtokollPortQuelleZweck
TCP22Any IPv4, Any IPv6SSH
TCP80Any IPv4, Any IPv6HTTP (nur mit Webserver)
TCP443Any IPv4, Any IPv6HTTPS (nur mit Webserver)

Weisen Sie die Firewall dem Server im Panel oder per CLI zu:

hcloud firewall apply-to-resource FIREWALL-NAME --type server --server SERVER-NAME

netcup: Die SCP-Firewall erlaubt anfangs allen Verkehr. Sobald Sie eine eigene eingehende Regel anlegen, wechselt die implizite Regel laut netcup-Helpcenter auf DROP. Legen Sie deshalb zuerst die Regel für SSH an. Details beschreibt die Anleitung netcup SCP-Firewall einrichten.

Verifizieren: Die Firewall ist im Panel dem Server zugewiesen, und eine neue SSH-Verbindung als adminname gelingt.

Schritt 7: UFW auf dem Server einrichten

UFW ergänzt die Anbieter-Firewall auf dem Server selbst und greift auch dann, wenn dort eine Regel zu weit gefasst ist. Geben Sie SSH frei, bevor Sie UFW aktivieren:

sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw enable

Weitere Ports öffnen Sie gezielt, etwa sudo ufw allow 80,443/tcp. Mehr dazu in Linux-Server absichern mit UFW und Fail2Ban.

Verifizieren: sudo ufw status verbose zeigt Status: active, Default: deny (incoming) und 22/tcp ALLOW IN Anywhere.

Schritt 8: Fail2Ban installieren

Fail2Ban sperrt IP-Adressen nach wiederholten Fehlanmeldungen. Mit backend = systemd liest es direkt aus dem Journal, das funktioniert auch auf Systemen ohne /var/log/auth.log.

sudo apt install -y fail2ban
sudo tee /etc/fail2ban/jail.d/sshd.local >/dev/null <<'EOF'
[sshd]
enabled = true
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h
EOF
sudo systemctl enable --now fail2ban
sudo systemctl restart fail2ban

Verifizieren: sudo fail2ban-client status sshd zeigt Status for the jail: sshd mit den Zählern Currently failed und Total banned.

Schritt 9: Automatische Sicherheitsupdates

Unter Ubuntu sind automatische Sicherheitsupdates laut Server-Dokumentation standardmäßig aktiv, unter Debian richten Sie sie ein:

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

Mail-Benachrichtigung und geplante Neustarts stellen Sie in /etc/apt/apt.conf.d/50unattended-upgrades ein:

Unattended-Upgrade::Mail "admin@example.de";
Unattended-Upgrade::MailReport "on-change";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

Details liefert Unattended-Upgrades unter Debian und Ubuntu.

Verifizieren: sudo unattended-upgrade --dry-run --debug 2>&1 | tail -20 läuft ohne Fehlermeldung durch.

Schritt 10: Kernel-Netzwerkparameter setzen

Einige sysctl-Werte schützen vor SYN-Flood und gefälschten Absenderadressen. Legen Sie sie dauerhaft ab:

sudo tee /etc/sysctl.d/99-vps-hardening.conf >/dev/null <<'EOF'
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
EOF
sudo sysctl --system

Verifizieren: sysctl net.ipv4.tcp_syncookies net.ipv4.conf.all.accept_redirects zeigt die Werte 1 und 0.

Schritt 11: Reverse DNS setzen

Der Reverse-DNS-Eintrag (PTR) ordnet der IP-Adresse einen Hostnamen zu. Für Mailserver ist er Pflicht: Laut Hetzner ist ein gültiger Eintrag in beide Richtungen auflösbar, der Hostname zeigt also per A-Record auf dieselbe IP. Setzen Sie deshalb zuerst den A-Record, zum Beispiel server1.example.de.

Hetzner: In der Console den Server wählen, Networking öffnen und rechts neben der IP den rDNS-Eintrag bearbeiten. Per CLI:

hcloud server set-rdns SERVER-NAME --ip SERVER-IP --hostname server1.example.de

netcup: Den rDNS-Eintrag setzen Sie im SCP beim Netzwerk des Servers. Mehr dazu in Reverse DNS für Mailserver einrichten.

Verifizieren: host SERVER-IP liefert domain name pointer server1.example.de., und host server1.example.de gibt dieselbe IP zurück.

Schritt 12: Snapshots und Backups festlegen

Bei Hetzner unterscheiden sich die beiden Mechanismen laut Dokumentation so:

MerkmalBackupsSnapshots
Auslösungautomatischmanuell, Console, API oder CLI
Anzahlbis 7 Slots je Server, der älteste wird ersetztstandardmäßig bis 30 über alle Projekte
Löschungautomatisch durch Rotationnie automatisch, nur durch Sie

Beide sind kostenpflichtige Zusatzleistungen, die Konditionen stehen auf der Preisseite. Einen Snapshot vor größeren Änderungen erstellen Sie so:

hcloud server create-image --type snapshot --description "vor-update-$(date +%Y%m%d)" SERVER-NAME

Bei netcup legen Sie unter Medien, Snapshots bevorzugt einen Offline-Snapshot an: Server unter Steuerung mit ACPI Herunterfahren stoppen, Snapshot erstellen, Server wieder starten. Snapshots liegen beim selben Anbieter und ersetzen keine externe Sicherung, siehe 3-2-1-Backup-Strategie praktisch umsetzen.

Verifizieren: Der Snapshot erscheint in der Liste des Panels, und der Server ist danach wieder per ssh adminname@SERVER-IP erreichbar.

Typische Fehler

Permission denied (publickey) beim Admin-Login

Der Schlüssel fehlt oder die Rechte stimmen nicht. Als root prüfen: /home/adminname/.ssh hat 700, authorized_keys hat 600, beide gehören adminname. Steht der Name nicht in AllowUsers, lehnt sshd ebenfalls ab.

SSH nach ufw enable unterbrochen

Die Freigabe für Port 22 fehlte. Über die Konsole im Panel anmelden und ufw allow 22/tcp ausführen. Prüfen Sie auch die Anbieter-Firewall: Bei netcup blockiert die erste eigene eingehende Regel allen übrigen Verkehr.

netcup: hinterlegter Schlüssel nicht aktiv

Im SCP gespeicherte Schlüssel gelangen nur bei der Installation eines offiziellen Images auf den Server. Auf einem laufenden System übertragen Sie den Schlüssel mit ssh-copy-id.

cloud-init läuft nach Neustart nicht erneut

Das ist so vorgesehen: User Data wird nur beim ersten Start ausgeführt. Für einen neuen Lauf erstellen Sie den Server neu.

Fail2Ban startet nicht

Meist fehlt backend = systemd auf Systemen ohne /var/log/auth.log. Die Ursache zeigt sudo journalctl -u fail2ban -e.

Häufige Fragen

Brauche ich Anbieter-Firewall und UFW?

Empfehlenswert ist beides. Die Anbieter-Firewall hält Verkehr vom Server fern, UFW schützt auch dann, wenn dort eine Regel zu weit gefasst ist oder ein Dienst auf dem Server unerwartet einen Port öffnet.

Backup oder Snapshot?

Backups laufen bei Hetzner automatisch und rotieren, Snapshots erstellen Sie gezielt vor Änderungen und behalten sie, bis Sie sie löschen. Beide liegen beim Anbieter und ersetzen keine Kopie an einem zweiten Ort.

Sollte ich den SSH-Port ändern?

Das ist optional. Ein anderer Port reduziert Einträge in den Logs, ersetzt aber keine Schlüssel-Anmeldung. Passen Sie vorher Anbieter-Firewall, UFW und Fail2Ban an.

Wie nutze ich cloud-init bei Hetzner?

Geben Sie bei der Erstellung im Feld für cloud-init eine YAML-Konfiguration mit, etwa zum Anlegen des Admin-Benutzers und Installieren von Paketen. Das Feld ist auf 32 KiB begrenzt.

Warum Reverse DNS setzen?

Empfangende Mailserver prüfen, ob IP und Hostname in beide Richtungen zusammenpassen. Ohne passenden PTR landen Mails häufig im Spam oder werden abgelehnt.

Fazit

Ein abgesicherter erster Server entsteht in fester Reihenfolge: Schlüssel bei der Erstellung hinterlegen, System aktualisieren, Admin-Benutzer anlegen, Root- und Passwort-Login abschalten, dann Firewalls, Fail2Ban, automatische Updates, Reverse DNS und Snapshot. Welcher Anbieter besser passt, entscheiden Abrechnungsmodell und Werkzeuge, nicht die Absicherung: Die Schritte auf dem Server sind bei Hetzner und netcup gleich.

Weiterführende Anleitungen und Quellen