Die ersten 10 Sicherheitsschritte auf einem neuen VPS
Auf einem neuen VPS aktualisieren Sie zuerst das System, legen einen eigenen Benutzer an, der sich statt root mit einem Schlüssel anmeldet, schalten die Passwort-Anmeldung ab, aktivieren Firewall und fail2ban, richten automatische Sicherheitsupdates ein und prüfen, ob Ihre Sicherungen funktionieren. Unten stehen die 10 Schritte in der richtigen Reihenfolge. Die Befehle gelten für Ubuntu und Debian.
Jeder Server im Internet ist Ziel automatisierter Scans und Bots, die Passwörter erraten, und das sehen Sie im SSH-Protokoll Ihres eigenen Servers. Die Reihenfolge ist wichtig: Prüfen Sie, dass Schritt 2 und 3 funktionieren, bevor Sie Schritt 4 ausführen, sonst sperren Sie sich womöglich aus. Das sudo in den Befehlen funktioniert auch, wenn Sie als root angemeldet sind.
System und Konten
1. System aktualisieren
sudo apt update && sudo apt upgrade -y
Unter Ubuntu erscheint die Datei /var/run/reboot-required, wenn ein Update einen Neustart braucht. Ist sie da, starten Sie den Server einmal neu. Debian legt diese Datei möglicherweise nicht an, starten Sie nach einem Kernel-Update also trotzdem neu.
2. Eigenen Benutzer anlegen
Arbeiten Sie im Alltag nicht als root. Legen Sie einen eigenen Benutzer mit sudo-Rechten an. Ersetzen Sie deploy durch einen beliebigen Namen:
sudo adduser deploy
sudo usermod -aG sudo deploy
3. Mit einem SSH-Schlüssel anmelden
Wenn Ihr Computer noch kein Schlüsselpaar hat, erstellen Sie eines mit ssh-keygen -t ed25519. Kopieren Sie dann den öffentlichen Schlüssel zum neuen Benutzer und testen Sie die Anmeldung:
ssh-copy-id [email protected]
Wenn Sie ohne Passwortabfrage hineingekommen sind, ist alles bereit. Windows hat kein ssh-copy-id. In PowerShell erledigt dieser Befehl dieselbe Aufgabe:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
SSH absichern
4. Passwort- und Root-Anmeldung abschalten
Prüfen Sie zuerst, dass Sie sich mit Ihrem Schlüssel als neuer Benutzer anmelden können. Finden Sie dann heraus, welche Dateien diese Einstellungen festlegen. Findet OpenSSH dieselbe Einstellung an mehreren Stellen, gilt der erste Wert, den es liest. Unter Debian und Ubuntu bindet die Hauptkonfigurationsdatei ganz oben den Ordner /etc/ssh/sshd_config.d/ ein. Images von Anbietern können in diesem Ordner eine Datei hinterlassen, die die Passwort-Anmeldung einschaltet. Selbst wenn Sie in der Hauptdatei no schreiben, bleibt das yes in dieser Datei maßgeblich:
sudo grep -rniE "^\s*(PasswordAuthentication|PermitRootLogin|KbdInteractiveAuthentication)" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/
Setzen Sie jede aktive Zeile der Ausgabe in der Datei, in der sie steht, auf no: PasswordAuthentication no, PermitRootLogin no, KbdInteractiveAuthentication no. Hängen Sie jede Einstellung, die in der Ausgabe nicht auftaucht, ans Ende von /etc/ssh/sshd_config an. Testen Sie dann, übernehmen Sie die Änderung und prüfen Sie die tatsächlich geltenden Werte:
sudo sshd -t && sudo systemctl reload ssh
sudo sshd -T | grep -E "^(passwordauthentication|permitrootlogin|kbdinteractiveauthentication)"
Alle drei Zeilen sollten auf no enden. Schließen Sie Ihre offene Sitzung nicht. Öffnen Sie ein neues Terminal und prüfen Sie, dass die Anmeldung mit dem Schlüssel funktioniert, bevor Sie gehen. Falls Sie sich trotzdem aussperren, öffnen Sie die VNC-Konsole im Panel. Die Anmeldung über die Konsole hängt nicht von den SSH-Einstellungen ab.
Diese Einstellungen können später unbemerkt zurückspringen. Aktionen im Panel des Anbieters, etwa das Hinzufügen eines SSH-Schlüssels oder das Zurücksetzen des Passworts, können dazu führen, dass das Erststart-Skript des Anbieters (cloud-init) beim nächsten Start erneut läuft und die Passwort-Anmeldung wieder einschaltet. Führen Sie nach jeder solchen Aktion den obigen Befehl sshd -T erneut aus und prüfen Sie die Werte.
Zugriff von außen eingrenzen
5. Firewall einschalten
Erlauben Sie in ufw zuerst SSH und aktivieren Sie erst danach die Firewall. Machen Sie es umgekehrt, bricht Ihre Verbindung ab. Läuft SSH auf einem anderen Port als 22, verwenden Sie statt 22 diesen Port:
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose
Wenn Sie einen Webserver betreiben, erlauben Sie zusätzlich die Ports 80 und 443. Standardmäßig weist ufw eingehende Verbindungen ab. Auch das Panel hat ein Firewall-Werkzeug. Wenn Sie Docker nutzen, seien Sie vorsichtig: Laut Dokumentation von Docker umgehen veröffentlichte Ports die ufw-Regeln. Für Dienste, die nur der Server selbst erreichen muss, veröffentlichen Sie den Port nur auf der Loopback-Adresse, zum Beispiel 127.0.0.1:5432:5432 in einer Docker-Compose-Datei.
6. fail2ban installieren
fail2ban sperrt IP-Adressen, deren Anmeldungen wiederholt scheitern, für eine Weile:
sudo apt install -y fail2ban python3-systemd
printf '[sshd]\nenabled = true\nbackend = systemd\nmaxretry = 5\nbantime = 1h\n' | sudo tee /etc/fail2ban/jail.local
sudo systemctl enable fail2ban && sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
Auf den Ein-Klick-App-Servern von Seturack ist ufw eingeschaltet und fail2ban läuft. Wenn Sie ein sauberes Betriebssystem installiert haben, prüfen Sie den Zustand mit sudo ufw status und systemctl is-active fail2ban.
7. Offene Ports prüfen
sudo ss -tulpn
Der Befehl listet jeden lauschenden Dienst und Port auf. Dienste, die keinen Zugriff von außen brauchen, etwa Datenbanken und Caches, sollten nur auf 127.0.0.1 lauschen. Beenden Sie, was Sie nicht brauchen: sudo systemctl disable --now service-name
So bleibt es sicher
8. Sicherheitsupdates automatisieren
Laut Dokumentation von Ubuntu ist das Paket unattended-upgrades normalerweise vorinstalliert, und Sicherheitsupdates sind eingeschaltet. Fehlt es, installieren und aktivieren Sie es:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Der automatische Neustart ist standardmäßig aus, starten Sie den Server nach Kernel-Updates also selbst neu. Nach den Nutzungsbedingungen liegt es nach der Einrichtung in Ihrer Verantwortung, das System aktuell zu halten.
9. Sicherungen anlegen und Wiederherstellung testen
Bei Seturack wird Ihr Server jede Nacht gesichert, und die letzten 7 Tage bleiben erhalten. Das ist im Preis enthalten. Auf dem Tab Verwaltung öffnen Sie Sicherungen, sehen die Sicherungen, stellen einzelne Dateien wieder her oder den ganzen Server. Zum Testen der Wiederherstellung holen Sie eine einzelne Datei zurück: Die Wiederherstellung des ganzen Servers ersetzt die gesamte aktuelle Festplatte. Vor einer großen Änderung einen Snapshot zu erstellen ist eine gute Gewohnheit, aber ein Snapshot ist keine Sicherung. Bewahren Sie eine Kopie Ihrer wichtigen Daten auch außerhalb des Servers auf. Einzelheiten stehen im Artikel zu täglichen Sicherungen.
10. Passwörter stärken
Ihr Panel-Konto ist der Schlüssel zum Server. Verwenden Sie dort ein langes Passwort, das Sie nirgends sonst nutzen, und bewahren Sie es in einem Passwortmanager auf. Ändern Sie das erste Root-Passwort, das Sie aus dem Panel kopiert haben, mit sudo passwd root. Schützen Sie Ihren privaten SSH-Schlüssel mit einer Passphrase. Fügen Sie Passwörter oder Schlüssel niemals in Support-Nachrichten oder Chats ein.
Kommentare0
Noch keine Kommentare
Schreiben Sie den ersten Kommentar und teilen Sie Ihre Gedanken.
Bitte melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen.