Die Sicherung von SSH umfasst eine Vielzahl möglicher Techniken, aber nicht alle sind für jede Umgebung gleichermaßen praktisch. Die Empfehlungen in diesem Artikel sind allgemein anerkannte, wirksame Methoden, die eine einfache Implementierung mit robustem Schutz in Einklang bringen. Sie basieren auf Standards von Organisationen wie NIST, CERT und dem OpenSSH-Projekt und spiegeln Kernprinzipien wider, die SSL.com auch bei der Sicherung digitaler Zertifikate anwendet – Schutz von Schlüsseln, Verwendung starker Verschlüsselung und Beschränkung privilegierter Zugriffe.
Nachdem Sie diese grundlegenden Best Practices eingerichtet haben, können Sie bei Bedarf fortgeschrittenere Taktiken erkunden, beispielsweise zertifikatsbasiertes SSH, Port-Knocking oder SSH über VPN.
1. Verwenden Sie schlüsselbasierte Authentifizierung anstelle von Passwörtern
Was es ist:
Sie ersetzen Passwort-Logins durch ein kryptografisches öffentliches/privates Schlüsselpaar. Der öffentliche Schlüssel wird auf Ihrem Server gespeichert, während der private Schlüssel auf Ihrem lokalen Computer verbleibt.
Warum es sicherer ist:
- Passwörter sind anfällig für Brute-Force-Angriffe
- Ein Angreifer muss Ihren privaten Schlüssel physisch in die Hände bekommen, um einzubrechen, was weitaus schwieriger ist, als ein Passwort zu erraten
So implementieren Sie:
Generieren eines Schlüsselpaars
Öffnen Sie unter Linux oder macOS ein Terminal und führen Sie Folgendes aus:
ssh-keygen -t ed25519
Für zusätzliche Sicherheit (wenn ed25519 in Ihrer Umgebung nicht verfügbar ist) können Sie Folgendes verwenden:
ssh-keygen -t rsa -b 4096
Kopieren Sie den öffentlichen Schlüssel auf Ihren Server
Mit dem Befehl „ssh-copy-id“ (unter Linux/macOS) können Sie Ihren öffentlichen Schlüssel ganz einfach übertragen:
ssh-copy-id Benutzer@Serveradresse
Wenn ssh-copy-id nicht verfügbar ist, hängen Sie den Inhalt Ihrer Datei id_ed25519.pub (oder id_rsa.pub) manuell an die Datei ~/.ssh/authorized_keys des Servers an.
Kennwortauthentifizierung deaktivieren
Legen Sie in /etc/ssh/sshd_config Folgendes fest:
PasswordAuthentication No.
Starten Sie den SSH-Dienst neu:
sudo systemctl Wiederaufnahme ssh
Genau wie die Verwaltung digitaler Zertifikate stellt die schlüsselbasierte SSH-Authentifizierung sicher, dass nur jemand mit dem richtigen privaten Schlüssel eine Verbindung herstellen kann.
2. Root-Login deaktivieren
Was es ist:
Verhindern Sie, dass sich der Root-Benutzer direkt über SSH anmeldet.
Warum es sicherer ist:
- Der Root-Account verfügt über unbegrenzte Rechte und ist ein attraktives Ziel für Angreifer
- Durch die Deaktivierung des direkten Root-Zugriffs müssen Angreifer nicht nur einen Schlüssel oder ein Passwort, sondern auch einen gültigen Benutzernamen erraten
So implementieren Sie:
Suchen oder fügen Sie in /etc/ssh/sshd_config Folgendes hinzu:
PermitRootLogin-Nr
SSH neu starten:
sudo systemctl Wiederaufnahme ssh
Dieser Schritt verkleinert Ihre Angriffsfläche effektiv, indem er das mächtigste Konto außer Reichweite bringt.
3. Erzwingen Sie starke Verschlüsselung und MAC-Algorithmen
Was es ist:
Mit SSH können Sie angeben, welche Chiffren und Message Authentication Codes (MACs) zum Verschlüsseln von Daten und Überprüfen der Datenintegrität verwendet werden sollen.
Warum es sicherer ist:
- Ältere oder schwache Algorithmen (z. B. DES, RC4) können anfällig für kryptografische Angriffe sein
- Die Verwendung moderner Verschlüsselungsverfahren (wie AES-256) und starker MACs (wie HMAC-SHA2) trägt dazu bei, Ihre Sitzungsdaten vertraulich und manipulationssicher zu halten.
So implementieren Sie:
Fügen Sie in /etc/ssh/sshd_config Ihre Cipher/MAC-Liste hinzu oder aktualisieren Sie sie:
Chiffren aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-256, hmac-sha2-512
SSH neu starten:
sudo systemctl Wiederaufnahme ssh
Die Kryptographie für SSH auf dem neuesten Stand zu halten, ist ebenso wichtig wie die Gewährleistung der Verwendung sicherer Protokolle und Chiffren in TLS.
4. Halten Sie SSH (und Ihr System) auf dem neuesten Stand
Was es ist:
Stellen Sie sicher, dass OpenSSH sowie Ihr restliches Betriebssystem regelmäßig Sicherheitspatches erhalten.
Warum es sicherer ist:
- Veraltete Software enthält häufig bekannte Schwachstellen
- Angreifer zielen oft mit ungepatchten Exploits auf ältere Versionen ab
So implementieren Sie:
Auf Debian- oder Ubuntu-basierten Systemen:
sudo apt-get update && sudo apt-get-Aktualisierung
Auf CentOS-, Fedora- oder RHEL-basierten Systemen:
sudo yum update
Suchen Sie auch nach Firmware-Updates, wenn Sie SSH auf Netzwerkgeräten oder anderer Hardware ausführen.
5. Implementieren Sie eine Zwei-Faktor- oder Multi-Faktor-Authentifizierung (2FA/MFA)
Was es ist:
Fügt eine zusätzliche Sicherheitsebene hinzu, indem zusätzlich zu einem Kennwort oder Schlüssel noch etwas anderes erforderlich ist (z. B. ein Einmalcode auf Ihrem Telefon).
Warum es sicherer ist:
- Selbst wenn Angreifer Ihren SSH-Schlüssel erhalten, benötigen sie immer noch den zweiten Faktor, um sich anzumelden
- Hilft beim Schutz vor Anmeldeinformationsdiebstahl
So implementieren Sie:
Installieren und Konfigurieren eines MFA-Tools
Zum Beispiel, Google Authenticator kann auf Linux-Servern installiert und als PAM-Modul (Pluggable Authentication Modules) eingerichtet werden. Befolgen Sie die Installationsanweisungen für Ihre Distribution.
Bearbeiten Sie /etc/pam.d/sshd und /etc/ssh/sshd_config
- Aktivieren Sie den Google Authenticator oder ein anderes MFA-Modul
- Setzen Sie ChallengeResponseAuthentication auf „yes“ und AuthenticationMethods auf „publickey,keyboard-interactive“ (oder eine beliebige Kombination, die zu Ihrer Umgebung passt).
SSH neu starten:
sudo systemctl Wiederaufnahme ssh
6. Protokollierung und Überwachung aktivieren
Was es ist:
Erfassen Sie SSH-Anmeldeereignisse, verfolgen Sie verdächtige Aktivitäten und erhalten Sie Warnungen, wenn etwas nicht stimmt.
Warum es sicherer ist:
- Einbruchsversuche sind in Protokollen oft als wiederholte fehlgeschlagene Anmeldungen oder nicht autorisierte Aktionen sichtbar
- Durch die frühzeitige Erkennung können Sie schnell reagieren – indem Sie IPs blockieren oder Konfigurationen ändern, bevor Schaden entsteht.
So implementieren Sie:
Ausführlichkeit des Protokolls erhöhen
Legen Sie in /etc/ssh/sshd_config Folgendes fest:
LogLevel VERBOSE
Aggregierte Protokolle
- Tools wie syslog, rsyslog, oder auch syslog-von helfen beim Sammeln und Zentralisieren von Protokollen
- A SIEM-Lösung (Security Information and Event Management) bietet erweiterte Analysen und Warnmeldungen
Verwenden Sie Intrusion Prevention Tools
fail2ban scannt Protokolldateien und sperrt IPs, die bösartige Anzeichen aufweisen, wie etwa zu viele falsche Kennworteingaben.
7. Implementieren Sie Zugriffskontrollen und -beschränkungen
Was es ist:
Beschränken Sie, wer sich von wo aus mit SSH verbinden kann, und verhindern Sie so unbefugte oder übermäßige eingehende Anfragen.
Vorgehensweise:
Firewall-Einschränkungen
Erlauben Sie SSH nur von bekannten oder vertrauenswürdigen IP-Adressen. Beispielsweise unter Linux mit ufw:
sudo ufw erlauben von 192.168.1.0/24 an jeden Port 22
Port Configuration
Das Ausführen von SSH auf einem nicht standardmäßigen Port (z. B. 2222) kann die Anzahl automatischer Scan-Versuche verringern. Dies ist kein Ersatz für echte Sicherheitsmaßnahmen, kann jedoch das Rauschen verringern.
Benutzer-/Gruppenbeschränkungen
Geben Sie in /etc/ssh/sshd_config Folgendes an:
Benutzer zulassen Alice Bob
or
AllowGroups sshadmins
8. Verwenden Sie SSH-Schlüsselpassphrasen und einen sicheren Schlüsselspeicher
Was es ist:
Verschlüsseln Sie Ihren privaten Schlüssel mit einer Passphrase, sodass der Schlüssel selbst bei einem Angriff auf Ihren Computer nicht sofort verwendbar ist.
Warum es sicherer ist:
- Eine gestohlene Schlüsseldatei ohne Passphrase kann sofortigen Zugriff gewähren
- Passphrasen fungieren als zusätzliche Verschlüsselungsebene für Ihren lokalen Schlüssel
So implementieren Sie:
Legen Sie während der Schlüsselgenerierung eine Passphrase fest
ssh-keygen -t ed25519
(Sie werden aufgefordert, eine Passphrase einzugeben.)
Schützen Sie Ihre Schlüsseldateien
Beschränken Sie die Berechtigungen für Ihren .ssh-Ordner und die Schlüsseldateien:
chmod 700 ~ / .ssh
chmod 600 ~/.ssh/id_ed25519
Erwägen Sie Hardware-Sicherheitsmodule (HSMs) oder Token
Bei größeren Organisationen kann die Verwendung dedizierter Hardware zur Schlüsselspeicherung das Risiko eines Softwarediebstahls oder von Schadsoftware verringern.
Schlussfolgerung
SSH-Sicherheit besteht aus mehreren Schutzschichten. Durch die Implementierung einer schlüsselbasierten Authentifizierung, die Deaktivierung des direkten Root-Zugriffs, die Verwendung starker Verschlüsselung, die ständige Aktualisierung, die Anforderung einer Multi-Faktor-Authentifizierung, die Überwachung von Protokollen, die Einschränkung des Zugriffs und die Sicherung Ihrer Schlüssel mit Passphrasen decken Sie die häufigsten (und schwerwiegendsten) Risiken ab.
Diese Maßnahmen entsprechen der gleichen umfassenderen Sicherheitsphilosophie, die SSL.com für digitale Zertifikate vertritt: Schützen Sie kryptografische Schlüssel, verwenden Sie eine robuste Verschlüsselung, beschränken Sie privilegierte Zugriffe und überwachen Sie Ihre Systeme genau. Sobald Sie diese grundlegenden Best Practices etabliert haben, können Sie erweiterte Optionen wie SSH-Zertifizierungsstellen, Port-Knocking oder die Ausführung von SSH über ein VPN erkunden, um Ihre Sicherheitslage weiter anzupassen.