Procédure
Um den SSH-Zugang zu Ihrem LWS-VPS abzusichern, wird empfohlen, die Passwortauthentifizierung vollständig zugunsten eines SSH-Schlüssels zu deaktivieren und anschließend fail2ban zu installieren. Diese Konfiguration schützt Ihren Server vor Brute-Force-Angriffen und beseitigt die Risiken durch abgefangene oder erratene Passwörter. In diesem Tutorial kopieren Sie Ihren öffentlichen SSH-Schlüssel, passen die SSH-Konfiguration an, um die Standard-Einstellungen von cloud-init zu neutralisieren, und installieren sowie überprüfen anschließend den aktiven Schutz von fail2ban.
Öffnen Sie ein Terminal auf Ihrem Computer und verbinden Sie sich mit dem Server mithilfe des in Ihrer Liefer-E-Mail erhaltenen Root-Passworts. Akzeptieren Sie bei der ersten Verbindung den Fingerabdruck des Server-Schlüssels, indem Sie yes eingeben. Sobald die Verbindung hergestellt ist, beenden Sie die Sitzung sofort mit exit, um zu Ihrem lokalen Rechner zurückzukehren.
ssh root@203.0.113.10
exitVerwenden Sie auf Ihrem Computer den Befehl ssh-copy-id, um Ihren öffentlichen Schlüssel auf den Server zu kopieren. Geben Sie Ihr Root-Passwort ein letztes Mal ein, wenn das Terminal Sie dazu auffordert. Falls Sie Ihren SSH-Schlüssel bereits bei der Bestellung oder bei der Neuinstallation über das KVM-Panel hinzugefügt haben, ist dieser Schritt nicht erforderlich.
ssh-copy-id root@203.0.113.10Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@203.0.113.10'"
and check to make sure that only the key(s) you wanted were added.Verbinden Sie sich von Ihrem Computer aus erneut per SSH mit Ihrem VPS. Die Verbindung muss sofort hergestellt werden, ohne dass das Root-Passwort des Servers abgefragt wird, was bestätigt, dass Ihr öffentlicher Schlüssel korrekt installiert wurde.
ssh root@203.0.113.10Listen Sie die im Verzeichnis /etc/ssh/sshd_config.d/ vorhandenen Dateien auf und zeigen Sie den Inhalt von 50-cloud-init.conf an. Diese Datei aktiviert die Passwortauthentifizierung. Da der SSH-Server bei der Verarbeitung der Dateien in alphabetischer Reihenfolge die zuerst gefundene Direktive beibehält, muss Ihre eigene Konfiguration zwingend vor ihr gelesen werden.
ls /etc/ssh/sshd_config.d/
cat /etc/ssh/sshd_config.d/50-cloud-init.confPasswordAuthentication yesÖffnen Sie den Editor nano, um die Datei 00-cles-uniquement.conf zu erstellen. Das Präfix 00 stellt sicher, dass diese Datei vor 50-cloud-init.conf verarbeitet wird. Tragen Sie dort die Direktiven ein, die Passwörter deaktivieren und den Root-Zugriff auf Schlüssel beschränken, und speichern Sie dann mit Strg+X, bestätigen Sie mit O (oder Y je nach Sprache) und drücken Sie die Eingabetaste.
nano /etc/ssh/sshd_config.d/00-cles-uniquement.conf# SSH-Verbindung nur per Schlüssel
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-passwordFühren Sie sshd -t aus, um das Fehlen von Syntaxfehlern zu überprüfen, und kontrollieren Sie dann die aktiven Werte mit sshd -T. Beachten Sie, dass permitrootlogin without-password anzeigt, was prohibit-password entspricht. Wenn alles korrekt ist, laden Sie den SSH-Dienst neu, um die neuen Einstellungen ohne Unterbrechung Ihrer Sitzung anzuwenden.
sshd -t
sshd -T | grep -E "^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)"
systemctl reload sshpermitrootlogin without-password
passwordauthentication no
kbdinteractiveauthentication noOhne Ihre aktive Sitzung zu schließen, öffnen Sie ein zweites Terminalfenster auf Ihrem Computer. Versuchen Sie zunächst eine Verbindung, indem Sie die Schlüsselablehnung mit der Option PubkeyAuthentication=no erzwingen: Der Server muss den Zugriff verweigern. Starten Sie anschließend eine normale Verbindung: Die Authentifizierung per Schlüssel erfolgt erfolgreich.
ssh -o PubkeyAuthentication=no root@203.0.113.10
ssh root@203.0.113.10root@203.0.113.10: Permission denied (publickey).Aktualisieren Sie von Ihrer mit dem VPS verbundenen Sitzung aus die Liste der Debian-Paketquellen mit apt update und installieren Sie dann das Paket fail2ban. In aktuellen Debian-Versionen aktiviert fail2ban automatisch den Schutz des SSH-Dienstes direkt nach Abschluss der Installation.
apt update
apt install -y fail2banStellen Sie mit systemctl sicher, dass der Dienst fail2ban aktiv ist, und fragen Sie anschließend die Jail sshd ab, um zu bestätigen, dass die Filterung funktioniert und Verbindungen überwacht werden. Danach können Sie sich beruhigt abmelden.
systemctl is-active fail2ban
fail2ban-client status sshd
exitactive
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 3
| `- Journal matches: _SYSTEMD_UNIT=ssh.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:Der OpenSSH-Daemon liest die Dateien im Ordner sshd_config.d in alphabetischer Reihenfolge und wendet den ersten Wert an, auf den er trifft. Durch die Verwendung des Präfixes 00 werden Ihre Direktiven vor denen von 50-cloud-init.conf verarbeitet, was die Berücksichtigung der Passwortsperre sicherstellt.
Wenn Sie Ihren SSH-Zugang verlieren, melden Sie sich in Ihrem LWS-Kundenbereich an und öffnen Sie die für Ihren VPS verfügbare KVM-/VNC-Konsole. Diese Konsole simuliert einen physischen Bildschirm und eine physische Tastatur, die mit dem Server verbunden sind, und ermöglicht es Ihnen, Ihre Konfigurationsdateien ohne SSH zu korrigieren.
Es handelt sich genau um denselben Parameter in OpenSSH. prohibit-password ist die empfohlene moderne Syntax, aber der Befehl sshd -T zeigt in der Liste der aktiven Direktiven den historischen Gegenwert without-password an.
Auf aktuellen Distributionen wie Debian 13 richtet fail2ban die Jail für den SSH-Dienst bei der Installation des Pakets automatisch ein und startet sie. Sie können die Bann-Dauern später in einer jail.local-Datei anpassen, wenn Sie möchten.
Stellen Sie sie dem LWS-Team und der Community. Die Antwort wird nach Moderation veröffentlicht.