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

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

SSH ist eine der gebräuchlichsten Methoden für den Zugriff auf entfernte Server. SSH ist auch einer der häufigsten Gründe für kompromittierte Linux-Server.

Versteh mich nicht falsch. SSH (Secure Shell) ist per Design ein ziemlich sicheres Protokoll, aber das bedeutet nicht, dass Sie es bei der Standardkonfiguration belassen sollten.

In diesem Artikel zeige ich Ihnen einige praktische Möglichkeiten zur Verbesserung der SSH-Sicherheit und damit zur Sicherung Ihrer Linux-Server.

Tipps zur Sicherung von SSH auf Linux-Servern

Folgen Sie nicht blind allen hier erwähnten SSH-Härtungstipps. Lesen Sie alle und sehen Sie dann, welche Ihren Anforderungen entsprechen. Denken Sie auch daran, dass einige Tipps möglicherweise nicht mit anderen kompatibel sind.

Wenn Sie beispielsweise die passwortbasierte SSH-Anmeldung deaktivieren, müssen Sie sich nicht für eine Fail2Ban-Lösung entscheiden.

Wenn Sie sich mit den SSH-Grundlagen auskennen, wissen Sie, dass sich die SSH-Konfigurationsdateien unter /etc/ssh/sshd_config befinden .

Die meisten der hier erwähnten SSH-Härtungstipps erfordern, dass Sie diese Konfigurationsdatei bearbeiten. Aus diesem Grund ist es eine gute Idee, die Originaldatei zu sichern. Sie müssen den SSH-Dienst auch neu starten, wenn Sie Änderungen an der SSH-Konfigurationsdatei vornehmen.

Sehen wir uns an, welche Schritte Sie unternehmen können, um Ihren SSH-Server zu sichern.

1. Leere Passwörter deaktivieren

Ja. Es ist möglich, Benutzerkonten unter Linux ohne Passwörter zu haben. Wenn diese Benutzer versuchen, SSH zu verwenden, benötigen sie auch keine Passwörter für den Zugriff auf den Server über SSH.

Das ist ein Sicherheitsrisiko. Sie sollten die Verwendung leerer Passwörter verbieten. Stellen Sie in der Datei /etc/ssh/sshd_config sicher, dass die Option PermitEmptyPasswords auf no gesetzt ist.

PermitEmptyPasswords no

2. Standard-SSH-Ports ändern

Der Standard-SSH-Port ist 22, und die meisten Angriffsskripts werden nur um diesen Port herum geschrieben. Das Ändern des Standard-SSH-Ports sollte eine zusätzliche Sicherheitsebene hinzufügen, da die Anzahl der Angriffe (die auf Port 22 eingehen) reduziert werden kann.

Suchen Sie nach den Portinformationen in der Konfigurationsdatei und ändern Sie sie in etwas anderes:

Port 2345

Die Portnummer müssen Sie sich merken bzw. notieren, sonst können Sie auch nicht mit SSH auf Ihre Server zugreifen.

3. Deaktivieren Sie die Root-Anmeldung über SSH

Um ehrlich zu sein, sollte die Verwendung des Servers als Root selbst verboten sein. Es ist riskant und hinterlässt keinen Prüfpfad. Mechanismen wie sudo existieren nur aus diesem Grund.

Wenn Sie sudo-Benutzer auf Ihrem System hinzugefügt haben, sollten Sie diesen sudo-Benutzer verwenden, um über SSH statt root auf den Server zuzugreifen.

Sie können die Root-Anmeldung deaktivieren, indem Sie die Option PermitRootLogin ändern und auf no:

setzen
PermitRootLogin no

4. SSH-Protokoll 1 deaktivieren

Dies ist der Fall, wenn Sie eine ältere Linux-Distribution verwenden. Bei einigen älteren SSH-Versionen ist möglicherweise noch das SSH-Protokoll 1 verfügbar. Dieses Protokoll hat bekannte Schwachstellen und darf nicht verwendet werden.

Neuere SSH-Versionen haben automatisch das SSH-Protokoll 2 aktiviert, aber es schadet nicht, es doppelt zu überprüfen.

Protocol 2

5. Idle-Timeout-Intervall konfigurieren

Das Leerlauf-Timeout-Intervall ist die Zeitspanne, die eine SSH-Verbindung ohne Aktivität aktiv bleiben kann. Solche Leerlaufsitzungen sind auch ein Sicherheitsrisiko. Es ist eine gute Idee, das Leerlaufzeitüberschreitungsintervall zu konfigurieren.

Das Timeout-Intervall wird in Sekunden gezählt und ist standardmäßig 0. Sie können es auf 300 ändern, um ein fünfminütiges Timeout-Intervall beizubehalten.

ClientAliveInterval 300

Nach diesem Intervall sendet der SSH-Server eine Alive-Nachricht an den Client. Wenn es keine Antwort erhält, wird die Verbindung geschlossen und der Endbenutzer abgemeldet.

Sie können auch steuern, wie oft die Alive-Nachricht gesendet wird, bevor die Verbindung getrennt wird:

ClientAliveCountMax 2

6. SSH-Zugriff nur ausgewählten Benutzern erlauben

Wenn es um Sicherheit geht, sollten Sie dem Prinzip der geringsten Rechte folgen. Geben Sie keine Rechte, wenn es nicht erforderlich ist.

Wahrscheinlich haben Sie mehrere Benutzer auf Ihrem Linux-System. Müssen Sie SSH-Zugriff auf alle zulassen? Vielleicht nicht.

Ein Ansatz wäre hier, den SSH-Zugriff nur wenigen ausgewählten Benutzern zu erlauben und damit für alle anderen Benutzer einzuschränken.

AllowUsers User1 User2

Sie können auch ausgewählte Benutzer zu einer neuen Gruppe hinzufügen und nur dieser Gruppe den Zugriff auf SSH erlauben.

AllowGroups ssh_group

Sie können auch DenyUsers und DenyGroups verwenden, um bestimmten Benutzern und Gruppen den SSH-Zugriff zu verweigern.

7. X11-Weiterleitung deaktivieren

Der X11- oder X-Display-Server ist das Grundgerüst für eine grafische Umgebung. Die X11-Weiterleitung ermöglicht es Ihnen, eine GUI-Anwendung über SSH zu verwenden.

Grundsätzlich führt der Client die GUI-Anwendung auf dem Server aus, aber dank X11-Weiterleitung wird ein Kanal zwischen den Computern geöffnet und die GUI-Anwendungen werden auf dem Client-Computer angezeigt.

Das X11-Protokoll ist nicht sicherheitsorientiert. Wenn Sie es nicht benötigen, sollten Sie die X11-Weiterleitung in SSH deaktivieren.

X11Forwarding no

8. Automatische Abwehr von Brute-Force-Angriffen

Um SSH-Bruteforce-Angriffe zu vereiteln, können Sie ein Sicherheitstool wie Fail2Ban verwenden.

Fail2Ban überprüft die fehlgeschlagenen Anmeldeversuche von verschiedenen IP-Adressen. Wenn diese Fehlversuche innerhalb eines festgelegten Zeitintervalls einen Schwellenwert überschreiten, wird die IP für einen bestimmten Zeitraum für den Zugriff auf SSH gesperrt.

Sie können alle diese Parameter nach Ihren Wünschen und Anforderungen konfigurieren. Ich habe eine ausführliche Einführung zur Verwendung von Fail2Ban geschrieben, die Sie lesen sollten.

9. Passwortbasierte SSH-Anmeldung deaktivieren

Egal, wie sehr Sie es versuchen, Sie werden immer schlechte Anmeldeversuche über SSH auf Ihrem Linux-Server sehen. Die Angreifer sind schlau und die von ihnen verwendeten Skripte kümmern sich oft um die Standardeinstellungen von Fail2Ban wie Tools.

Um die ständigen Brute-Force-Angriffe loszuwerden, können Sie sich für eine ausschließlich schlüsselbasierte SSH-Anmeldung entscheiden.

Bei diesem Ansatz fügen Sie den öffentlichen Schlüssel der Remote-Client-Systeme zur Liste der bekannten Schlüssel auf dem SSH-Server hinzu. Auf diese Weise können diese Client-Rechner auf SSH zugreifen, ohne das Passwort des Benutzerkontos einzugeben.

Wenn Sie dieses Setup haben, können Sie die kennwortbasierte SSH-Anmeldung deaktivieren. Jetzt können nur die Client-Rechner, die über die angegebenen SSH-Schlüssel verfügen, über SSH auf den Server zugreifen.

Bevor Sie sich für diesen Ansatz entscheiden, stellen Sie sicher, dass Sie dem Server Ihren eigenen öffentlichen Schlüssel hinzugefügt haben und dieser funktioniert. Andernfalls sperren Sie sich aus und verlieren möglicherweise den Zugriff auf den Remote-Server, insbesondere wenn Sie einen Cloud-Server wie Linode verwenden, auf dem Sie keinen physischen Zugriff auf den Server haben.

Lesen Sie dieses ausführliche Tutorial, um zu erfahren, wie Sie die passwortbasierte SSH-Authentifizierung deaktivieren können.

10. Zwei-Faktor-Authentifizierung mit SSH

Um die SSH-Sicherheit auf die nächste Stufe zu heben, können Sie auch die Zwei-Faktor-Authentifizierung aktivieren. Bei diesem Ansatz erhalten Sie ein einmaliges Passwort auf Ihrem Mobiltelefon, per E-Mail oder über eine Authentifizierungs-App eines Drittanbieters.

Informationen zum Einrichten der Zwei-Faktor-Authentifizierung mit SSH finden Sie hier.

Schlussfolgerung

Mit diesem Befehl können Sie alle Parameter Ihres SSH-Servers anzeigen:

sshd -T

Auf diese Weise können Sie leicht erkennen, ob Sie Parameter ändern müssen, um die Sicherheit des SSH-Servers zu erhöhen.

Sie sollten auch die SSH-Installation und das System auf dem neuesten Stand halten.

Ich habe einige praktische Möglichkeiten der SSH-Härtung aufgelistet. Natürlich gibt es mehrere andere Möglichkeiten, SSH und Ihren Linux-Server zu sichern. Es ist nicht möglich, sie alle in einem einzigen Artikel aufzulisten.

Ich hoffe, Sie finden diese Tipps hilfreich. Lassen Sie mich wissen, welche Tipps Sie nützlich finden.

Kennen Sie weitere Tipps zur SSH-Sicherheit? Warum teilen Sie es uns nicht im Kommentarbereich mit?


Linux
  1. 9 Dinge, die Sie in den ersten 10 Minuten auf einem Linux-Server tun sollten

  2. 7 Schritte zur Sicherung Ihres Linux-Servers

  3. Sichern Sie Ihren Linux-Server mit Fail2Ban [Anfängerleitfaden]

  4. So richten Sie passwortloses SSH unter Linux ein

  5. Linux-Befehl zum Warten auf das Hochfahren eines SSH-Servers

12 Dinge, die nach der Installation eines Linux-Servers zu tun sind

Wie Sie von Windows aus SSH in Ihren Linux-Server einbinden

So führen Sie SSH zum Server über Linux

So sichern Sie SSH mit Fail2Ban

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

Wie man sysctl in Linux richtig sichert:Tipps zur Sicherheitshärtung