VPS absichern: eine Checkliste für 20 Minuten
Diese Anleitung wurde aus dem Englischen übersetzt. Einige verlinkte Seiten sind nur auf Englisch verfügbar.
Die konkreten Schritte, die den Großteil opportunistischer Angriffe stoppen.
Einen Server perfekt sicher zu machen, schaffen Sie nie. Sie können ihn aber in etwa zwanzig Minuten zu einem unattraktiven Ziel machen, was praktisch alle automatisierten Angriffe abwehrt.
1. SSH nur mit Schlüsseln
Ausführlich in SSH-Schlüssel und Zugang behandelt. Das ist der wertvollste Einzelschritt. Passwort-Bruteforce ist die häufigste Einbruchsmethode im öffentlichen Internet, und das beseitigt sie.
PasswordAuthentication no
PermitRootLogin prohibit-password2. Eine Firewall mit Default-Deny
Erlauben Sie nur, was Sie tatsächlich anbieten. Unter Debian/Ubuntu:
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH — see the warning below
ufw allow 80,443/tcp # web
ufw enable
ufw status verboseIn der RHEL-Familie nutzen Sie firewalld:
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadWarnung: Aktivieren Sie die Firewall, solange Ihre SSH-Sitzung offen ist, und bestätigen Sie, dass SSH erlaubt ist, bevor Sie die Verbindung trennen. Ändern Sie den SSH-Port, erlauben Sie zuerst den neuen Port. Details, einschließlich unserer privaten Mesh-Schnittstelle, die immer erlaubt sein muss, finden Sie unter Firewall-Grundlagen.
3. Automatische Sicherheitsupdates
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades # choose yes
# verify:
systemctl status unattended-upgrades --no-pagerIn der RHEL-Familie erledigt dnf-automatic dieselbe Aufgabe. Automatische Sicherheitspatches schließen das Zeitfenster zwischen Veröffentlichung einer Schwachstelle und ihrer Ausnutzung — das sind in der Praxis oft nur Stunden.
4. Fail2ban
Sperrt eine IP nach wiederholten fehlgeschlagenen Anmeldungen und macht aus einem endlosen Bruteforce-Versuch eine Sackgasse. Siehe Fail2ban-Grundlagen.
apt install -y fail2ban
systemctl enable --now fail2ban5. Schalten Sie ab, was Sie nicht nutzen
Jeder lauschende Dienst ist ein potenzieller Einstiegspunkt.
ss -tulpn # what is listening, and who owns it
systemctl --type=service --state=running # what is runningStoppen und deaktivieren Sie alles, was Sie nicht bestellt haben. Ein minimaler Server ist ein sicherer Server.
6. Dienste als unprivilegierte Benutzer ausführen
Datenbanken, Web-Apps und Worker sollten nie als root laufen. Die meisten Pakete legen automatisch einen eigenen Dienstbenutzer an; nutzen Sie ihn. Schreiben Sie eine eigene Unit-Datei, setzen Sie User= und Group= ausdrücklich.
7. Geheimnisse schützen
Committen Sie nie Geheimnisse in git. Nutzen Sie Umgebungsdateien mit
chmod 600.Machen Sie nie eine Konfigurationsdatei weltlesbar, wenn sie ein Passwort oder einen Schlüssel enthält.
Bevorzugen Sie Zugangsdaten pro Dienst statt eines gemeinsamen Admin-Zugangs.
8. Haben Sie einen Weg zurück
Prüfen Sie, dass die Rescue-Konsole in /panel/vps funktioniert, bevor Sie sie brauchen.
Erstellen Sie vor riskanten Änderungen einen Snapshot — siehe Größe ändern, Snapshot und Neuinstallation.
Bewahren Sie mindestens einen SSH-Schlüssel an einem anderen Ort als auf Ihrem Alltagslaptop auf.
9. Überwachen
Einen Server, den Sie nie ansehen, können Sie nicht verteidigen. Richten Sie eine Monitoring-Prüfung ein und lesen Sie gelegentlich Ihre Logs — Ihre Logs lesen zeigt, wie.
Optional: Angriffserkennung
Für wertvollere Hosts bringen CrowdSec (gemeinschaftliches Blocking, MIT-Lizenz) und Wazuh (Host-Intrusion-Detection) echte Tiefe. Beide sind in unseren App-Hosting-Anleitungen dokumentiert.
Weiterführendes