Konkrete Schritte für einen frischen Ubuntu- oder Debian-Server. Setzt Grundwissen im Umgang mit der Kommandozeile voraus — wenn dir das zu viel ist, lies stattdessen warum das Ganze überhaupt wichtig ist und lass mich das für dich machen.
Bevor du loslegst: Teste jeden SSH-bezogenen Schritt in einer zweiten, offenen Terminal-Sitzung, bevor du die erste schließt. Wenn du dich versehentlich aussperrst, brauchst du die Rescue-Console deines Hosters, um wieder reinzukommen.
Der Klassiker, aber er wird trotzdem oft übersprungen. Ein aktuelles System schließt bekannte Sicherheitslücken, für die längst Exploits im Umlauf sind.
apt update && apt upgrade -y
Für automatische Sicherheitsupdates zusätzlich:
apt install unattended-upgrades -y dpkg-reconfigure --priority=low unattended-upgrades
Erzeuge auf deinem eigenen Rechner ein Schlüsselpaar (falls noch nicht vorhanden) und kopiere den öffentlichen Schlüssel auf den Server:
ssh-keygen -t ed25519 -C "dein-server" ssh-copy-id benutzername@deine-server-ip
Danach in /etc/ssh/sshd_config Passwort-Login und Root-Login per SSH deaktivieren:
PasswordAuthentication no PermitRootLogin no
systemctl restart ssh
(Auf Ubuntu/Debian heißt der Dienst ssh, nicht sshd — auf manchen anderen Distributionen wie CentOS/RHEL ist es umgekehrt. Falls ssh nicht gefunden wird, systemctl status ssh sshd zur Kontrolle.)
Ab jetzt kommt niemand mehr per Passwort-Brute-Force auf den Server, der Schlüssel lässt sich praktisch nicht erraten.
Nur die Ports freigeben, die du wirklich brauchst, alles andere bleibt zu:
apt install ufw -y ufw allow OpenSSH ufw allow 25565/tcp # Beispiel: Minecraft ufw enable
Ersetze 25565 durch den tatsächlichen Port deines Gameservers oder Panels. Mit ufw status prüfst du danach, welche Regeln aktiv sind.
Fail2ban sperrt IP-Adressen automatisch temporär, wenn sie zu oft fehlgeschlagene Login-Versuche produzieren:
apt install fail2ban -y cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
In /etc/fail2ban/jail.local im Abschnitt [sshd] aktivieren und Werte nach Bedarf anpassen, z. B.:
[sshd] enabled = true maxretry = 4 bantime = 1h findtime = 10m
systemctl restart fail2ban
Alles, was nicht läuft, kann auch nicht angegriffen werden. Prüfe, was auf dem Server aktiv ist, und schalte ab, was du nicht brauchst:
systemctl list-unit-files --state=enabled
systemctl disable --now dienstname
Kein echter Sicherheitsgewinn im klassischen Sinn, aber es reduziert die schiere Masse an automatisierten Scan- und Brute-Force-Versuchen spürbar, weil die meisten Bots stur Port 22 abklappern. In sshd_config:
Port 2222
Nicht vergessen, den neuen Port in der Firewall freizugeben, bevor du den alten schließt, sonst sperrst du dich selbst aus.
Nicht vergessen: Hardening ersetzt kein Backup. Ein sauber abgesicherter Server kann trotzdem durch Hardware-Defekte, eigene Fehlkonfiguration oder ein fehlerhaftes Update Daten verlieren. Automatische Backups sind eine eigene Baustelle, dazu mehr im Ratgeber: Backup-Politik. Im Pro-Setup richte ich das standardmäßig mit ein.
Wenn dir das zu viel Bastelei ist oder du es einfach nicht selbst machen willst: Genau das übernehme ich im Rahmen der Server-Absicherung, inklusive kurzer Einweisung, was ich eingerichtet habe und warum.
Ich richte SSH-Härtung, Firewall, Fail2ban und mehr einmalig für dich ein — 59 €, als Zusatzoption zu jedem Paket.
Server absichern lassen