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

Best Practices für die OpenSSH-Sicherheit

SSH (Secure Shell) ist ein kryptografisches Netzwerkprotokoll zum sicheren Initiieren textbasierter Shell-Sitzungen auf entfernten Rechnern.

OpenSSH ist der Standard-SSH-Client und -Server, der von den meisten Linux-Distributionen verwendet wird. Es ist ein Konnektivitätstool, auf das sich die meisten Administratoren verlassen, um auf ihren Linux- und *BSD-Servern zu arbeiten. OpenSSH verschlüsselt den gesamten Datenverkehr (einschließlich Passwörter), um Abhören, Verbindungshijacking und andere Angriffe effektiv zu verhindern. Mit anderen Worten also "OpenSSH sorgt dafür, dass die Verbindung zu Ihrem Server sicher ist". Siehe Wikipedia-Artikel für einen detaillierten Exkurs zu SSH.

Dieses Tutorial behandelt die Best Practices zur sicheren Konfiguration Ihres SSH-Servers.

OpenSSH-Sicherheit

Dies sind die sechs wichtigsten Aufgaben zur Sicherung Ihres SSH-Server-Setups:

  1. Verwenden Sie ein sicheres Passwort.
  2. Ändern Sie den SSH-Standardport.
  3. Verwenden Sie immer Protokollversion 2.
  4. Deaktivieren Sie die Root-Anmeldung.
  5. Benutzerzugriff einschränken.
  6. Schlüsselbasierte Authentifizierung verwenden.

Verwenden Sie ein starkes Passwort

Ein Passwort ist ein Wort oder eine Zeichenfolge, die zur Benutzerauthentifizierung verwendet wird, um die Identität nachzuweisen oder die Zugriffsgenehmigung zu erhalten, um Zugriff auf eine Ressource zu erhalten. Halten Sie es vor denen geheim, denen der Zugriff auf den Server nicht gestattet ist. Verwenden Sie ein komplexes und langes Passwort, es sollte für Sie leicht zu merken und einzigartig sein, aber für andere nicht leicht zu erraten . Verwenden Sie keine leicht zu erratenden `admin123` oder `admin` etc. und verwenden Sie keine Geburtstage, den Namen Ihrer Frau etc. Ein gutes Passwort sollte auch Sonderzeichen wie '.!;/' enthalten (nicht nur die Zeichen a-c und 0-9). Verwenden Sie im Passwort Groß- und Kleinbuchstaben.

Ändern Sie den SSH-Standardport

Der Standard-Post des SSH-Dienstes ist 22, Sie sollten das ändern, um es weniger offensichtlich zu machen, dass Ihr Server einen SSH-Dienst ausführt. Die SSH-Konfigurationsdatei befindet sich im Verzeichnis /etc/sshd/, Sie müssen die Konfigurationsdatei /etc/ssh/sshd_config bearbeiten.

nano /etc/ssh/sshd_config

Suchen Sie nach der Zeile „Port“:

Port 22

und ändern Sie sie in Ihre bevorzugte Portnummer, Beispiel:1337

Port 1337

Bitte wählen Sie einen Port, der auf Ihrem Server noch nicht verwendet wird. Mit dem folgenden Befehl erhalten Sie eine Liste der Ports, die derzeit verwendet werden:

netstat -ntap

Dieser Befehl führt zu einer ziemlich langen Liste, die alle offenen Ports und Verbindungen anzeigt. Wenn Sie nur prüfen möchten, ob Ihr gewünschter Port verfügbar ist, verwenden Sie stattdessen diesen Befehl:

netstat -ntap | grep 4422

In diesem Beispiel überprüfe ich, ob Port 4422 frei ist. Wenn der Befehl kein Ergebnis zurückgibt, ist der Port verfügbar und kann für SSH verwendet werden.

Immer Protokoll 2 verwenden

SSH hat zwei Protokollversionen, das alte Protokoll 1, das unsicher ist, und das neue Protokoll 2. Verwenden Sie also immer Protokoll 2 für Ihren SSH-Server, es ist sicherer als Protokoll 1. Weitere Informationen hier.

Root-Anmeldung deaktivieren

Sie sollten die direkte Anmeldung für den Root-Benutzer deaktivieren, da es viele Brute-Force-Angriffe auf den Namen des Root-Superusers gibt. WICHTIG:Testen Sie die SSH-Anmeldung mit Ihrem alternativen Nicht-Root-Benutzer, den Sie für SSH-Anmeldungen verwenden möchten, bevor Sie das Root-Konto deaktivieren.

PermitRootLogin no

Nachdem Sie "PermitRootLogin" auf "no" gesetzt haben, können Sie sich nicht mehr mit dem Root-Konto anmelden, obwohl Sie das richtige Passwort für den Root-Benutzer verwenden.

Benutzer einschränken

Sie sollten einen neuen Benutzer für die Anmeldung bei Ihrem Server hinzufügen. Angenommen, Sie haben die Benutzer ruiko und mikoto erstellt, um sich bei Ihrem Server anzumelden, dann können Sie die neue Zeile hinzufügen:

AllowUsers ruiko mikoto

in /etc/ssh/sshd_config, um den SSH-Zugriff auf diese Benutzer zu beschränken.

Schlüsselbasierte Authentifizierung verwenden

Ich habe Ihnen empfohlen, diese Option zu verwenden, da sie sehr einfach einzurichten und sicherer ist als die passwortbasierte Authentifizierung. Zuerst müssen Sie ein öffentlich-privates Schlüsselpaar auf Ihrem lokalen (Desktop-)Computer erstellen, ich verwende Linux, um es zu erstellen.

Sie können das öffentliche/private Schlüsselpaar mit diesem Befehl erstellen:

ssh-keygen -t rsa -b 4096

Es werden zwei Dateien erstellt, die sich im Verzeichnis ~/.ssh/ befinden, id_rsa als privater Schlüssel und id_rsa.pub als öffentlicher Schlüssel. Wenn Sie nach einem Passwort gefragt werden, können Sie es leer lassen oder Ihr Passwort eingeben. Es wird empfohlen, zum Schutz Ihres Schlüssels ein Passwort zu verwenden.

Laden Sie nun den öffentlichen Schlüssel id_rsa.pub mit dem Befehl ssh-copy-id auf Ihren Server hoch.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Es wird Ihren öffentlichen Schlüssel automatisch in die Datei ~/.ssh/authorized_keys/ auf Ihrem Server schreiben.

Gehen Sie jetzt zurück zu Ihrem Server und bearbeiten Sie Ihre SSH-Dateikonfiguration erneut.

nano /etc/ssh/sshd_config

Entkommentieren Sie diese Zeile:

AuthorizedKeysFile     %h/.ssh/authorized_keys

und starten Sie schließlich Ihren SSH-Server neu:

systemctl restart sshd

Versuchen Sie jetzt, sich mit Ihrem Server zu verbinden:

ssh -p '4422' '[email protected]'

Schlussfolgerung

OpenSSH ist der Standard für sicheren Fernzugriff auf *Unix-ähnliche Server und ersetzt das unverschlüsselte Telnet-Protokoll. SSH (und sein Dateiübertragungs-Unterprotokoll SCP) stellt sicher, dass die Verbindung von Ihrem lokalen Computer zum Server verschlüsselt und sicher ist. Die Basisinstallation von OpenSSH ist bereits ziemlich sicher, aber wir können sie verbessern, indem wir der obigen Anleitung folgen.


Ubuntu
  1. So installieren Sie den SSH-Server auf Ubuntu / Debian mit OpenSSH

  2. Best Practices für die Sicherheit von Linux-Servern

  3. Best Practices für die Sicherheit von Windows-Servern

  4. Best Practices für WordPress-Sicherheit unter Linux

  5. SSH-Relay-Server mit OpenSSH

Linux-Server-Härtung – Best Practices

So installieren Sie OpenSSH unter Ubuntu 20.04

SSH-Server

So installieren Sie den OpenSSH-Server auf Ubuntu 20.04 LTS

Ubuntu Server Setup – Best Practices für die Sicherheit

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