Übersetzungen: [ en/English ] · [ es/Español ] · [ fr/Français ]
Inhaltsverzeichnis
SSH nutzlos machen: Ein Leitfaden zur Absicherung von SSH
Es kann eine Zeit kommen, in der Sie den SSH-Daemon (sshd
) auf einem Linux-Server installiert lassen müssen, aber sicherstellen möchten, dass er praktisch inaktiv ist. Dieser Leitfaden erläutert, wie Sie sshd
so konfigurieren können, dass es für typische Anwendungsszenarien unbrauchbar wird, um Anforderungen an erhöhte Sicherheit, Compliance oder einfach für eine experimentelle Einrichtung zu erfüllen.
Zweck der Deaktivierung von SSHD
Die Gründe für die Deaktivierung von sshd
reichen von Sicherheitsprotokollen bis hin zu Bildungszwecken:
- Sicherheitskonformität: Spezifische Richtlinien oder Sicherheitsrichtlinien können erfordern, dass
sshd
vorhanden ist, aber als Vorsichtsmaßnahme deaktiviert ist. - Reduzierung der Angriffsfläche: Ein inaktiver Dienst verringert potenzielle Sicherheitslücken und schützt das System vor unbefugten Zugriffsversuchen.
- Bildungseinblick: Das Verständnis der Feinheiten der Deaktivierung von Diensten kann das Wissen in der Systemadministration und Cybersicherheit verbessern.
Schritt-für-Schritt-Anleitung: Konfigurieren von SSHD als Nicht-Funktional
Im Folgenden finden Sie eine Aufschlüsselung jeder Konfigurationsanweisung, um die Funktionen von sshd
zu deaktivieren. Fügen Sie das Folgende in Ihr Terminal ein:
echo '# SSHD-Konfiguration, um SSH nutzlos zu machen
PermitRootLogin no # Deaktiviert die Anmeldung des Root-Benutzers für zusätzliche Sicherheit.
PasswordAuthentication no # Deaktiviert die Passwort-basierte Anmeldung und erfordert Schlüssel, die wir ebenfalls deaktivieren.
PubkeyAuthentication no # Deaktiviert die öffentliche Schlüssel-Authentifizierung und stellt sicher, dass keine Anmeldeverfahren verfügbar sind.
ChallengeResponseAuthentication no # Deaktiviert Herausforderungs-Antwort-Authentifizierungen wie OTPs.
UsePAM no # Deaktiviert Pluggable Authentication Modules und beschränkt damit weiterhin die Anmeldeverfahren.
PrintMotd no # Verhindert, dass die Nachricht des Tages nach der Anmeldung gedruckt wird.
AcceptEnv LANG LC_* # Gibt an, welche Umgebungsvariablen akzeptiert werden, um die Anpassung zu minimieren.
Subsystem sftp /bin/false # Versucht, SFTP zu deaktivieren, indem ein ineffektives Binär zugewiesen wird.
AllowTcpForwarding no # Verbietet TCP-Portweiterleitung, eine Methode für sichere Datenübertragung.
X11Forwarding no # Deaktiviert X11-Weiterleitung und verhindert die Weiterleitung der GUI-Anzeige.
PermitEmptyPasswords no # Stellt sicher, dass leere Passwörter nicht erlaubt sind, eine grundlegende Sicherheitsmaßnahme.
PermitUserEnvironment no # Beschränkt Benutzer daran, Umgebungsvariablen über SSH zu setzen.
AllowAgentForwarding no # Deaktiviert die Weiterleitung von Authentifizierungs-Agentenverbindungen.
PermitTunnel no # Deaktiviert Tunneling und beschränkt damit den Aufbau sicherer Tunnel.
PermitUserRC no # Verhindert die Ausführung benutzerspezifischer Konfigurationsdateien beim Anmelden.
Port 4592 # Ändert den Empfangsport auf eine unkonventionelle Nummer zur Verschleierung.
' | sudo tee /etc/ssh/sshd_config >/dev/null
Die Umsetzung dieser Einstellungen macht sshd
äußerst restriktiv und deaktiviert effektiv seine Hauptfunktionen.
Anwendung der Konfiguration
Nach der Konfiguration wenden Sie die Änderungen an, indem Sie sshd
neu starten:
sudo systemctl restart sshd
Überprüfung der Konfiguration
Um sicherzustellen, dass der SSH-Dienst nun aus Designgründen nicht funktionsfähig ist, versuchen Sie, eine SSH-Verbindung herzustellen:
ssh -p 4592 benutzer@ihrserver
Ersetzen Sie benutzer@ihrserver
durch Ihre tatsächlichen Serverdetails. Die Verbindung sollte fehlschlagen, was darauf hinweist, dass Ihr sshd
-Dienst nun so restriktiv ist, wie beabsichtigt, und somit seinen Zweck erfüllt, für Standardoperationen “nutzlos” zu sein, während er weiterhin aktiv ist.
Erstellt am: Aug. 3, 2024
Mehr zu diesem Thema entdecken:
- Einführung in Red Hat Openshift
- Erweiterte Einführung in Terraform
- Umfassender Leitfaden zum Verstehen und Zählen von inodes
- Automatisierung von Container-Updates mit Podman Auto-Update
- Beherrschen von Konfigurationsdateiformaten: INI, YAML, TOML, JSON, XML & Mehr