SSH-Server unter Ubuntu installieren
Installation des SSH-Servers
Um den SSH-Server unter Ubuntu zu installieren, öffne ein Terminal und führe den folgenden Befehl aus:
sudo apt update && sudo apt install openssh-server
Durch diesen Befehl wird der SSH-Server installiert und automatisch als Dienst gestartet.
Konfiguration des SSH-Servers
Nach der Installation kannst du den SSH-Server konfigurieren, indem du die Datei /etc/ssh/sshd_config
bearbeitest. Du kannst diese Datei mit einem Texteditor wie Nano bearbeiten:
sudo nano /etc/ssh/sshd_config
In der Datei kannst du verschiedene Optionen konfigurieren, wie z. B. den SSH-Port, die Authentifizierungsmethoden und die Protokollebene. Weitere Informationen zu den Konfigurationsoptionen findest du in der SSHD-Konfigurationsdokumentation: https://manpages.ubuntu.com/manpages/bionic/man5/sshd_config.5.html
SSH-Server-Konfiguration
Nachdem du den SSH-Server auf deinem Ubuntu-System installiert hast, ist es wichtig, ihn für einen sicheren und reibungslosen Betrieb zu konfigurieren. Hier sind die wichtigsten Konfigurationsschritte:
SSH-Daemon-Konfigurationsdatei
Die SSH-Serverkonfigurationsdatei befindet sich in /etc/ssh/sshd_config
. Du kannst sie mit einem Texteditor wie nano
oder vi
bearbeiten.
Konfigurationsoptionen
Die sshd_config-Datei enthält zahlreiche Konfigurationsoptionen. Hier sind einige der wichtigsten:
- Port: Lege den Port fest, auf dem der SSH-Server lauscht. Der Standardwert ist 22.
- ListenAddress: Gib die IP-Adresse(n) an, auf denen der SSH-Server lauschen soll. Die Standardeinstellung ist 0.0.0.0 (alle Adressen).
- Protocol: Wähle das SSH-Protokoll aus, das der Server unterstützt. SSHv2 ist das empfohlene Protokoll.
- Ciphers: Lege die Verschlüsselungsalgorithmen fest, die der Server verwendet. AES-256-CBC ist eine sichere Option.
- MACs: Konfiguriere die Nachrichtenauthentifizierungscodes (MACs), die der Server verwendet. HMAC-SHA256 ist eine sichere Option.
- KeyRegenerationInterval: Gib das Intervall an, in dem der Server seine SSH-Hostschlüssel neu generiert. Der Standardwert ist 14 Tage.
Konfigurationsbeispiel
Hier ist ein Beispiel für eine grundlegende sshd_config-Datei:
Port 22
Protocol 2
Ciphers aes256-cbc
MACs hmac-sha256
KeyRegenerationInterval 14d
Änderungen speichern und neu starten
Nachdem du deine Konfigurationen vorgenommen hast, speichere die Datei und starte den SSH-Dienst neu mit:
sudo systemctl restart ssh
Zusätzliche Konfigurationen
Zusätzlich zu den oben genannten Konfigurationen kannst du auch Folgendes in Erwägung ziehen:
- Root-Login deaktivieren: Deaktiviere den Root-Login über SSH, um die Sicherheit zu erhöhen.
- Benutzerauthentifizierung einschränken: Beschränke die Benutzerauthentifizierungsmethoden, um Brute-Force-Angriffe zu verhindern.
- Port-Weiterleitung aktivieren: Aktiviere die Port-Weiterleitung, um auf Dienste hinter einer Firewall zuzugreifen.
- Dateiübertragung konfigurieren: Konfiguriere die SFTP-Dateiübertragung für eine sichere Dateiübertragung.
SSH-Port ändern
Der Standardport für SSH-Verbindungen ist 22. Aus Sicherheitsgründen empfiehlt es sich jedoch, diesen Port zu ändern, um Brute-Force-Angriffe zu erschweren.
Schritte zum Ändern des SSH-Ports
-
SSH-Konfigurationsdatei bearbeiten:
Öffne die SSH-Konfigurationsdatei/etc/ssh/sshd_config
mit einem Texteditor wienano
odervim
.
sudo nano /etc/ssh/sshd_config
-
Zeile für den Port suchen:
Suche nach der Zeile, die mitPort
beginnt. Der Standardwert sollte22
sein. -
Portnummer ändern:
Ändere die Portnummer zu einem anderen Wert, der nicht standardmäßig verwendet wird. Es wird empfohlen, einen Port oberhalb von 1024 zu wählen.
Zum Beispiel:
Port 443
-
Konfigurationsdatei speichern:
Speichere die Änderungen und beende den Editor. -
SSH-Dienst neu starten:
Starte den SSH-Dienst neu, damit die neuen Einstellungen wirksam werden:
sudo systemctl restart ssh
Überlegungen zur Portänderung
- Sicherheit: Das Ändern des SSH-Ports trägt zur Erhöhung der Sicherheit bei, indem es Brute-Force-Angriffe erschwert.
- Firewall-Einstellungen: Stelle sicher, dass die Firewall den neuen Port zulässt.
- Kundenspezifische Konfiguration: Wenn du dich mit einem Remote-Server verbindest, musst du den benutzerdefinierten Port in der SSH-Konfiguration des Clients angeben.
- VPN-Verbindungen: Wenn du eine VPN-Verbindung verwendest, musst du beim Herstellen einer Verbindung zum VPN den benutzerdefinierten SSH-Port konfigurieren.
Verbindung zum SSH-Server testen
Nachdem du den SSH-Server konfiguriert hast, musst du eine Verbindung testen, um sicherzustellen, dass er ordnungsgemäß funktioniert. Hier sind die Schritte zum Testen der Verbindung:
Verbindung über die Kommandozeile
ssh <benutzername>@<server-ip-adresse>
Ersetze <benutzername>
durch deinen Benutzernamen auf dem Server und <server-ip-adresse>
durch die IP-Adresse oder den Hostnamen des Servers. Du wirst möglicherweise aufgefordert, das Passwort deines Benutzers einzugeben.
Verbindung über einen GUI-Client
Du kannst auch einen GUI-Client wie PuTTY oder MobaXterm verwenden, um eine Verbindung zum SSH-Server herzustellen.
- Öffne den Client und gib die IP-Adresse oder den Hostnamen des Servers in das Feld "Host" ein.
- Gib deinen Benutzernamen in das Feld "Benutzername" ein.
- Klicke auf "Verbinden" und gib dein Passwort ein, wenn du dazu aufgefordert wirst.
Verbindungsprobleme beheben
Wenn du Probleme beim Herstellen einer Verbindung zum SSH-Server hast, kannst du Folgendes überprüfen:
- Stelle sicher, dass der SSH-Server aktiv ist.
- Überprüfe, ob du den richtigen Benutzernamen und das richtige Passwort verwendest.
- Stelle sicher, dass die Firewall den SSH-Port (Standard 22) nicht blockiert.
- Überprüfe, ob der SSH-Dienst auf deinem lokalen Computer aktiviert ist.
- Versuche, eine Verbindung von einem anderen Computer oder Gerät herzustellen.
Wenn du immer noch Probleme hast, kannst du die SSH-Konfigurationsdatei /etc/ssh/sshd_config
auf dem Server überprüfen oder dich an einen Systemadministrator wenden.
Sicherheitsüberlegungen bei SSH-Verbindungen
Als du SSH auf deinem Ubuntu-System aktivierst, öffnest du einen Remotezugriffspunkt für das System. Dies erfordert sorgfältige Sicherheitsmaßnahmen, um unbefugten Zugriff und Sicherheitsverletzungen zu verhindern. Nachfolgend sind einige wichtige Sicherheitsüberlegungen zu beachten:
Sichere Verbindung
- Authentifizierung mit Schlüsseln: Die Verwendung von SSH-Schlüsseln für die Authentifizierung anstelle von Passwörtern ist eine sichere Methode, da Schlüssel nicht geknackt werden können.
- Zwei-Faktor-Authentifizierung (2FA): Aktiviere 2FA für zusätzliche Sicherheit, sodass neben dem SSH-Schlüssel ein Einmalpasswort erforderlich ist.
Port- und IP-Adressbeschränkungen
- Ändere den SSH-Port: Der Standard-SSH-Port 22 ist anfällig für Angriffe. Ändere den Port, um die Wahrscheinlichkeit zu verringern, dass Angreifer nach Schwachstellen suchen.
- Beschränke IP-Adressen: Beschränke den Zugriff auf den SSH-Server auf bestimmte IP-Adressen, die du autorisiert hast.
Sicheres Protokoll
- Verwende SSHv2: Verwende SSHv2, das neuere und sicherere Version des SSH-Protokolls, das stärkere Verschlüsselungsalgorithmen bietet.
- Deaktiviere alte Protokolle: Deaktiviere veraltete SSH-Protokolle wie SSHv1, die anfällig für Sicherheitslücken sind.
Überwachung und Protokollierung
- Überwache SSH-Verbindungen: Verwende Tools wie Fail2ban, um verdächtige Anmeldeversuche zu überwachen und wiederholte Zugriffe von nicht autorisierten IP-Adressen zu blockieren.
- Protokolliere SSH-Aktivitäten: Aktiviere die Protokollierung auf dem SSH-Server, um Ereignisse wie Anmeldeversuche, Befehle und Änderungen zu verfolgen.
Zusätzliche Maßnahmen
- Software auf dem neuesten Stand: Stelle sicher, dass der SSH-Server und das Betriebssystem auf dem neuesten Stand sind, um bekannte Sicherheitslücken zu beheben.
- Überprüfe SSH-Konfigurationsdateien: Überprüfe regelmäßig die SSH-Konfigurationsdateien auf verdächtige Änderungen oder fehlende Sicherheitseinstellungen.
Fehlerbehebung von SSH-Verbindungsproblemen
Beim Einrichten oder Verwenden einer SSH-Verbindung kannst du auf verschiedene Probleme stoßen. Hier sind einige häufige Probleme und ihre Lösungen:
SSH-Server ist nicht aktiviert
- Überprüfe, ob der SSH-Server (sshd) aktiv ist:
systemctl status sshd
- Wenn der Server nicht aktiv ist, starte ihn:
sudo systemctl start sshd
Falscher Port
- Stelle sicher, dass du den richtigen SSH-Port verwendest. Standardmäßig ist dies Port 22. Wenn du den Port geändert hast, verwende den neuen Port.
Firewall blockiert SSH
- Überprüfe deine Firewall-Einstellungen, um sicherzustellen, dass SSH-Verbindungen nicht blockiert werden.
- Du kannst die Firewall vorübergehend deaktivieren, um zu testen, ob dies das Problem löst:
sudo ufw disable
Authentifizierungsprobleme
- Überprüfe deinen Benutzernamen und dein Passwort.
- Wenn du Schlüsselbasierte Authentifizierung verwendest, stelle sicher, dass der private Schlüssel korrekt ist und dass die Berechtigungen korrekt gesetzt sind.
- Setze dein Passwort zurück, wenn du es vergessen hast.
Verbindung abgelehnt
- Überprüfe, ob der SSH-Server aktiv ist und auf dem richtigen Port lauscht.
- Der SSH-Server kann durch zu viele fehlgeschlagene Anmeldeversuche gesperrt werden. Warte eine Weile und versuche es erneut.
Langsame Verbindung
- Überprüfe deine Netzwerkverbindungsgeschwindigkeit.
- Komprimierung kann die Verbindungsgeschwindigkeit verbessern:
Compression yes
in der/etc/ssh/sshd_config
-Datei.
Fehlerbehebung bei fortgeschrittenen Problemen
- Überprüfe die SSH-Server-Protokolldateien
/var/log/auth.log
und/var/log/syslog
auf Fehlermeldungen. - Nutze Tools wie
ssh -v
odertcpdump
, um den Datenverkehr zu überwachen und mögliche Probleme zu identifizieren. - Erwäge, die Hilfe eines erfahrenen Systemverwalters in Anspruch zu nehmen, wenn du die Fehler nicht selbst beheben kannst.