So sichern Sie SSH auf einem Linux-VPS ab
Ein öffentlich erreichbarer VPS erhält automatisierte Login-Versuche oft schon wenige Minuten nach dem Start. Mit den folgenden Schritten wird SSH deutlich schwerer angreifbar. Die Anleitung ist für Ubuntu oder Debian geschrieben. Wenn Sie noch keinen Server haben, können Sie einen Linux-VPS mieten und mit einem sauberen Image beginnen. Lassen Sie Ihre aktuelle SSH-Sitzung offen, bis Sie die neuen Einstellungen aus einem zweiten Fenster getestet haben.
1. Normalen Benutzer mit Sudo anlegen
adduser deploy
usermod -aG sudo deploy2. SSH-Schlüssel statt Passwörter verwenden
Auf Ihrem eigenen Rechner:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPMelden Sie sich einmal mit dem Schlüssel an, um zu prüfen, ob er funktioniert, bevor Sie die Passwort-Anmeldung deaktivieren.
3. Passwort- und Root-Login deaktivieren
Erstellen Sie /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Prüfen Sie die Syntax und laden Sie den Dienst neu. Der Dienst heißt ssh auf Ubuntu und Debian und sshd auf RHEL-basierten Systemen:
sudo sshd -t && sudo systemctl reload sshÖffnen Sie ein zweites Terminal und melden Sie sich erneut an. Erst danach schließen Sie die alte Sitzung.
4. Firewall aktivieren
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseÖffnen Sie nur die Ports, die Sie benötigen, etwa 80 und 443 für einen Webserver. Außerdem können Sie SSH mit einer Firewall-Regel im Cloud-Panel auf Ihre eigene IP-Adresse beschränken.
5. Wiederholte Fehlversuche mit Fail2ban blockieren
sudo apt install -y fail2banErstellen Sie /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Sicherheitsupdates automatisch installieren
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Optionale Zusatzmaßnahmen
- Eine Änderung des SSH-Ports reduziert das Log-Rauschen, ist aber allein keine Sicherheitsmaßnahme.
- Schützen Sie den privaten Schlüssel mit einer Passphrase und bewahren Sie eine Sicherungskopie an einem sicheren Ort auf.
- Prüfen Sie Anmeldungen mit
lastundsudo journalctl -u ssh --since today. - Erstellen Sie einen Snapshot, sobald der Server konfiguriert ist, damit Sie einen sauberen Ausgangszustand wiederherstellen können.
Wenn Sie sich ausgesperrt haben, nutzen Sie die Browser-Konsole in Ihrem Cloud-Panel, um sich anzumelden und die Konfiguration zu korrigieren. Unser Leitfaden zum DDoS-Schutz behandelt die nächste Schutzebene.
Häufig gestellte Fragen
Ist es sicher, den Root-Login zu deaktivieren?
Ja, wenn Sie zuerst einen Sudo-Benutzer anlegen und testen, ob dessen Schlüssel funktioniert. Administrative Befehle können Sie weiterhin mit sudo ausführen.
Brauche ich Fail2ban, wenn ich nur Schlüssel verwende?
Es ist optional. Wenn die Passwort-Anmeldung deaktiviert ist, kann ein Brute-Force-Angriff nicht erfolgreich sein, Fail2ban reduziert jedoch das Log-Rauschen und die Last.
Was tun, wenn ich meinen SSH-Schlüssel verliere?
Melden Sie sich über die Konsole in Ihrem Cloud-Panel an, fügen Sie einen neuen öffentlichen Schlüssel in ~/.ssh/authorized_keys hinzu und entfernen Sie den alten.