5 Best Practices, um SSH-Brute-Force-Anmeldeangriffe unter Linux zu verhindern

5 Best Practices, um SSH-Brute-Force-Anmeldeangriffe unter Linux zu verhindern

Server laufen Ssh sind normalerweise ein weiches Ziel für Brute-Force-Angriffe. Hacker entwickeln ständig innovative Softwaretools und Bots zur Automatisierung von Brute-Force-Angriffen, die das Risiko eines Intrusion weiter erhöhen.

In diesem Leitfaden untersuchen wir einige der Tipps, die Sie implementieren können, um Ihre SSH-Server vor Brute-Force-Angriffen auf rhelbasierte Linux-Distributionen und Debian-Derivate zu schützen.

Deaktivieren Sie die SSH-Kennwortauthentifizierung und aktivieren Sie die SSH-Key-Authentifizierung

Die Standardauthentifizierungsmethode für Ssh ist Benutzername/Passwortauthentifizierung. Aber wie wir gesehen haben. Um sich auf der sicheren Seite zu befinden, wird empfohlen, eine wichtige SSH-Authentifizierung zu implementieren, bei der die Authentifizierung durch öffentliche und private SSH-Schlüsselpaare ermöglicht wird. Der private Schlüssel bleibt auf dem PC des Kunden, während der öffentliche Schlüssel auf den Server kopiert wird.

Während der SSH -Schlüsselauthentifizierung prüft der Server, ob der Client -PC den privaten Schlüssel besitzt. Wenn der Scheck erfolgreich ist, wird eine Shell -Sitzung erstellt oder der an den Remoteserver gesendete Befehl erfolgreich ausgeführt. Wir haben eine umfassende Anleitung zum Konfigurieren von SSH-Basis-Authentifizierung.

Auch nach der Einrichtung der wichtigsten Authentifizierung ist Ihr Server immer noch anfällig für Brute-Force-Angriffe. Dies muss deaktiviert werden.

Bearbeiten Sie daher die Standard -SSH -Konfigurationsdatei.

$ sudo vim/etc/ssh/sshd_config 

Setzen Sie die PasswortAuthentication Parameter zu NEIN wie gezeigt.

PasswortAuthentication -Nr 
Deaktivieren Sie die SSH -Passwort -Authentifizierung

Speichern Sie dann die Datei und laden Sie SSH neu, um die Änderungen anzuwenden.

$ sudo systemctl Reload SSH 

Implementieren Sie Fail2ban Intrusion Prevention Tool

Geschrieben in Python, Fail2ban ist ein Open-Source-Intrusion Prevention Framework, das Protokolldienste von Diensten nach Authentifizierungsfehlern scannt und IPs verbietet, die wiederholt die Authentifizierungsprüfungen für die Kennwort für eine bestimmte Zeitspanne nicht bestehen.

Fail2ban Monitors Serverprotokolldateien für Intrusionsversuche und andere schändliche Aktivitäten ständig überwacht, nachdem eine vordefinierte Anzahl von Authentifizierungsfehlern - in den meisten Fällen 3 fehlgeschlagene Anmeldeversuche - automatisch den Remote -Host vom Zugriff auf den Server blockiert, und der Host wird in einem 'gehaltenGefängnis'Für eine bestimmte Zeitdauer.

Dabei, Fail2ban Reduziert die Rate der falschen Kennwortauthentifizierungsversuche erheblich. Sehen Sie sich unsere Anleitung zur Installation und Konfiguration von Fail2ban unter Linux an, um Ihren Server vor Bruteforce -Angriffen zu sichern.

Begrenzen Sie die maximale Anzahl der SSH -Authentifizierungsversuche

Eine weitere einfache Möglichkeit, Ihren Server vor Brute-Force-Angriffen zu schützen, besteht darin, die Anzahl der SSH-Anmeldeversuche einzuschränken. Standardmäßig ist dies auf 3, Wenn dies jedoch zufällig auf einen höheren Wert eingestellt ist, stellen Sie ihn höchstens auf 3 Verbindungsversuche ein.

Zum Beispiel, um die maximalen Verbindungsversuche zum 3 festlegen MaxAuthtries Parameter zu 3 wie gezeigt

MaxAuthtries = 3 

Speichern Sie erneut die Änderungen und laden Sie den SSH -Dienst neu.

$ sudo systemctl Reload SSH 

Implementieren Sie TCP -Wrapper, um den SSH -Zugriff von Clients zu begrenzen

TCP Wrappers ist eine Bibliothek, die einen hostbasierten basierten Hostbasierten bietet Zugriffskontrollliste (ACL), die den Zugriff auf TCP -Dienste durch Remote -Clients basierend auf ihren IP -Adressen einschränken

Remote -Hosts vom Zugriff auf Dienste auf dem System. TCP -Wrapper verwenden die /etc/hosts.erlauben Und /etc/hosts.leugnen Konfigurationsdateien (in dieser Reihenfolge), um festzustellen, ob der Remote -Client auf einen bestimmten Dienst zugreifen kann oder nicht.

Normalerweise werden diese Dateien kommentiert und alle Hosts sind über die TCP -Wrappers -Ebene erlaubt. Regeln für den Zugriff auf einen bestimmten Dienst sind in der platziert /etc/hosts.erlauben Datei und Vorrang vor den Regeln in der /etc/hosts.leugnen Datei.

Best Practice empfiehlt, alle eingehenden Verbindungen zu blockieren. Öffnen Sie daher die /etc/hosts.leugnen Datei.

$ sudo vim /etc /hosts.leugnen 

Fügen Sie die folgende Zeile hinzu.

ALLES ALLES 

Speichern Sie die Änderungen und beenden Sie die Datei.

Dann zugreifen Sie auf die /etc/hosts.erlauben Datei.

$ sudo vim /etc /hosts.erlauben 

Konfigurieren Sie die Hosts oder Domänen, die über SSH eine Verbindung zum Server herstellen können. In diesem Beispiel erlauben wir nur zwei Remote -Hosts, eine Verbindung zum Server herzustellen (173.82.227.89 Und 173.82.255.55) und den Rest leugnen.

SSHD: 173.82.227.89 173.82.255.55 SSHD: ALL: 
Beschränken Sie den SSH -Zugriff auf Kunden

Speichern Sie die Änderungen und beenden Sie die Konfigurationsdatei.

Versuchen Sie, um es zu testen, eine Verbindung zum Server von einem Host herzustellen, der nicht zu denen gehört, zu denen Sie Zugriff zugelassen haben. Sie sollten wie gezeigt einen Berechtigungsfehler erhalten.

$ SSH [E -Mail geschützt] KEX_EXCHANGE_IDIENTIFIZIERUNG: Lesen: Verbindungsrücksetzer nach Peer -Verbindungsreset bis 173.82.235.7 Port 22 verlorene Verbindung 

Implementieren Sie die SSH -Authentifizierung von SSH -Faktoren

Zwei-Faktor-Authentifizierung Bietet eine zusätzliche Sicherheitsebene für die Authentifizierung der Kennworts, wodurch Ihr Server vor Brute-Force-Angriffen sicherer wird. Ein weit verbreiteter Zwei-Faktor-Authentifizierung Lösung ist Google Authenticator App Und wir haben eine gut dokumentierte Anleitung, wie Sie zwei Faktorauthentifizierung einrichten können.

Abschluss

Dies war eine Zusammenfassung von 5 Best Practices, die Sie implementieren können, um sie zu verhindern SSH Brute Force Login -Angriffe und sicherstellen Sie die Sicherheit Ihres Servers. Sie können auch lesen, wie Sie OpenSSH Server sichern und Harden erhalten.