GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Die 11 besten Möglichkeiten, Ihren SSH-Server zu sichern

SSH bezieht sich auf Secure Shells, die beim sicheren Betrieb von Netzwerkdiensten wie Remote-Login beim Server, Dateiübertragung und anderen serverbezogenen Vorgängen über ein unsicheres oder sicheres Netzwerk helfen.

Die SSH-Standardkonfiguration reicht nicht aus, um den SSH-Kanal zu härten; Wir müssen die zusätzliche Einstellung konfigurieren, um die Sicherheit vollständig zu verbessern. In diesem Artikel lernen wir 11 Methoden zum Sichern Ihres SSH-Servers kennen.

Stammanmeldung über SSH-Server deaktivieren

Da der Root-Benutzer Zugriff auf alle Dienste auf dem Server hat, ist es besser, das System nicht zu riskieren, indem es eine Remote-Root-Anmeldung zulässt. Es könnte viel zu anfällig sein, wenn das Passwort bei einem Brute-Force-Angriff oder einem anderen Hacking-Tool offengelegt wird. Daher ist es am besten, die Remote-Root-Anmeldung zu deaktivieren und beim normalen Benutzer zu bleiben.

Um die Remote-Root-Anmeldung zu deaktivieren, öffnen Sie die Datei sshd_config.

$ sudo vim /etc/ssh/sshd_config

Setzen Sie dann „PermitRootLogin“ auf no

SSH-Root-Benutzeranmeldung deaktivieren.

Leeres Passwort deaktivieren

Einige Linux-Distributionen erstellen Benutzer ohne Passwörter, so dass es anfällig sein könnte, ssh-Verbindungen mit leeren Passwörtern für den Fernzugriff zuzulassen. Um diesen Dienst zu deaktivieren, müssen wir also „PermitEmptyPasswords“ in der Datei sshd_config auf no setzen.

PermitEmptyPasswords no

Anmeldung mit leerem Passwort deaktivieren.

Verwenden Sie die auf öffentlichen Schlüsseln basierende Authentifizierung über das SSH-Protokoll.

Es wird dringend empfohlen, die auf öffentlichen Schlüsseln basierende Authentifizierung zu verwenden, da der SSH-Server verschiedene Authentifizierungsprozesse unterstützt. Der Hacker versucht mit verschiedenen Hacking-Tools, das Passwort mit verschiedenen Methoden wie Brute-Force-Angriffen zu knacken. Um dies zu verhindern, verwenden wir eine auf öffentlichen Schlüsseln basierende Authentifizierung.

Zuerst müssen wir mit dem Befehl ssh-keygen einen öffentlichen Schlüssel und einen privaten Schlüssel generieren. Um den Schlüssel zu generieren, führen Sie den folgenden Befehl aus. Dabei werden Sie gefragt, wo der ssh-Schlüssel generiert werden soll, drücken Sie die Eingabetaste, wenn Sie mit dem Standard fortfahren möchten. Dann werden Sie nach einer Passphrase gefragt, die sich auf das Passwort für Ihren SSH-Schlüssel bezieht und ein starkes Passwort verwendet, das sich aus einem Sonderzeichen, Alphabet und Zahlen zusammensetzt. Sobald das Passwort festgelegt ist, wird Ihr SSH-Schlüssel im .ssh-Verzeichnis in Ihrem Home-Verzeichnis generiert.

$ ssh-keygen -t rsa

Generieren von SSH-Schlüsselpaaren.

Stellen Sie vor dem Hochladen des öffentlichen Schlüssels sicher, dass Sie ein .ssh-Verzeichnis auf Ihrem Remote-Server haben, wenn Sie keins in Ihrem Home-Verzeichnis erstellen, und laden Sie dann Ihren öffentlichen ssh-Schlüssel mit dem folgenden Befehl auf den Server hoch.

$ cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

Hochladen des öffentlichen Schlüssels auf den Server.

Jetzt können Sie sich als Benutzer Ubuntu mit dem öffentlichen Schlüssel über das SSH-Protokoll anmelden.

Auf öffentlichen Schlüsseln basierende Authentifizierung.

SSH-Anmeldeauthentifizierung mit Passwort deaktivieren

Es wird dringend empfohlen, die ssh-Public-Key-Authentifizierung für den Fernzugriff auf den Server zu verwenden, da Passwörter durch Brute-Force-Angriffe offengelegt werden können, wenn kein starkes Passwort verwendet wird. Um die Kennwortauthentifizierung vom SSH-Server zu deaktivieren, setzen Sie den Wert „PasswordAuthentication“ auf no.

PasswortAuthentifizierungsnummer

SSH-Standardport 22 ändern.

Standardmäßig läuft SSH auf Port 22 im System. Wenn wir den SSH-Standardport ändern, kann dies eine zusätzliche Sicherheitsebene hinzufügen, indem ungewöhnlicher Datenverkehr zum offenen Port vermieden wird. Um den Port also nicht einfach zu ändern, öffnen Sie die Datei sshd_config und legen Sie Ihre gewünschte ungenutzte Portnummer im Portabschnitt fest. Im folgenden Beispiel habe ich den Port auf 454 gesetzt.

SSH-Standardport ändern.

Benutzeranmeldungszugriff über SSH einschränken.

Der SSH-Server ermöglicht allen Benutzern den Remote-Zugriff auf den Server, aber wir können die Standardeinstellung überschreiben und nur bestimmte Benutzer so einstellen, dass sie den Remote-Zugriff über das SSH-Protokoll zulassen oder verweigern. Auf einfache Weise haben Sie Fernzugriff auf alle Systembenutzer, die sich anmelden, und schaffen so eine Möglichkeit für den Hacker, auf unser System zuzugreifen.

Um bestimmten Benutzern die Anmeldung über SSH zu ermöglichen, fügen Sie die folgende Zeile in sshd_config.

hinzu

AllowUsers Benutzer1 Benutzer2 Ubuntu

Und auf ähnliche Weise können Sie bestimmte Benutzer einschränken und anderen den Zugriff über SSH erlauben, indem Sie die folgende Codezeile hinzufügen.

DenyUsers Stammbenutzer3 Benutzer4

Verbessern Sie die Verwendung sicherer Passwörter für SSH-Benutzer/-Schlüssel.

Normalerweise verwenden die Leute oft einfache Passwörter für ihren Login wie 123456, irgendetwas123, damit sie sich Passwörter leicht merken können. Aus diesem Grund funktioniert ein Brute-Force-Angriff perfekt, da es wörterbuchweise geht, die Passwortprüfung zu versuchen. Um dies zu vermeiden, müssen wir also ein Passwort verwenden, das Sonderzeichen, Groß- und Kleinbuchstaben, Zahlen und eine Mindestpasswortlänge von 8 Zeichen enthält.

Idle-Timeout-Intervall konfigurieren

Benutzer halten ihre SSH-Verbindung oft für einen längeren Zeitraum im Leerlauf, sodass es ein hohes Risiko darstellt, wenn jemand versucht, Ihre SSH-Sitzung zu übernehmen und zu tun, was er will, wenn Benutzer gerade nicht anwesend sind. So können wir unser Login-Session-Timeout nach einer bestimmten Zeit der Inaktivität so einstellen, dass wir uns beim Session-Timeout erneut anmelden müssen. Um das Leerlaufzeitlimit festzulegen, müssen wir den Wert „ClientAliveInterval“ in der Datei sshd_config festlegen. Im folgenden Beispiel habe ich den Timeout-Wert auf 360 gesetzt, was 6 Minuten entspricht.

ClientAliveInterval 360

SSH-Protokoll 2 verwenden

SSH hat zwei Varianten des Protokolls SSH-Protokoll 1 und SSH-Protokoll 2, Protokoll 1 ist der Systemstandard, der weniger sicher ist als Protokoll 2, da Protokoll 2 Massenverschlüsselung, robuste Algorithmen und kryptografische Prüfungen anwendet. Um auf Protokoll 2 umzuschalten, müssen wir die folgende Zeile in der Datei sshd_config hinzufügen.

Protokoll 2

Verwendung des SSH-Protokolls 2.

Konfigurieren Sie ein Limit für Passwortversuche

Wir können die Anzahl der Passwortversuche für die SSH-Anmeldung begrenzen, sodass die Verbindung nach einer begrenzten Anzahl von Versuchen unterbrochen wird, was eine zusätzliche Sicherheitsebene hinzufügt, die das System vor Bot-Angriffen schützt. Um dies zu erreichen, müssen wir den Wert der Direktive „MaxAuthTries“ festlegen. Im Beispiel habe ich das Limit auf 4 Versuche gesetzt.

MaxAuthTries 3

Beschränken Sie den SSH-Anmeldeversuch.

Tunneling und Portweiterleitung deaktivieren

Wenn Sie den Tunneling- und Port-Weiterleitungsdienst nicht verwenden, ist es besser, ihn deaktiviert zu lassen, da ein Hacker diese Dienste verwenden könnte, um Ihr System zu durchbrechen. Um dies zu erreichen, setzen Sie den folgenden Direktivenwert auf no.

AllowAgentForwarding nein

AllowTcpForwarding nein

PermitTunnel Nr.

Schließlich, nachdem alles eingerichtet ist, vergessen Sie nicht, Ihren SSH-Server neu zu starten, um die Änderungen zu übernehmen

$ sudo systemctl restart ssh

Schlussfolgerung

In diesem Artikel lernen wir einige gängige Methoden zum Härten von SSH-Servern kennen, die dazu beitragen, verschiedene Sicherheitsrisiken zu vermeiden. Ich hoffe, Ihnen gefällt dieser Artikel.


Ubuntu
  1. 3 Möglichkeiten, wie ich SSH für den Datenschutz konfiguriere

  2. SSH-Anmeldung beim RHEL 7-Server ohne Passwort

  3. Best Practices für die OpenSSH-Sicherheit

  4. Ssh Private-Public Key Map für Client?

  5. Stellen Sie über SSH unter Linux oder Mac OS X eine Verbindung zu einem Server her

So verbinden Sie sich über SSH mit Ihrem Server

So richten Sie einen SSH-Schlüssel auf einem Plesk-Server ein

So fügen Sie dem Server einen öffentlichen SSH-Schlüssel hinzu

10 umsetzbare SSH-Härtungstipps zur Sicherung Ihres Linux-Servers

So sichern Sie SSH mit Fail2Ban

5 Best Practices für Linux SSH-Sicherheit zum Schutz Ihrer Systeme