SSH ist ein weit verbreitetes Protokoll für den sicheren Zugriff auf Linux-Server. Die meisten Benutzer verwenden SSH-Verbindungen mit Standardeinstellungen, um sich mit einem Remote-Server zu verbinden. Allerdings bergen die ungesicherten Standardkonfigurationen auch diverse Sicherheitsrisiken.

Das Root-Konto eines Servers mit offenem SSH-Zugang kann gefährdet sein. Und besonders wenn Sie eine öffentliche IP-Adresse verwenden, ist es viel einfacher, das Root-Passwort zu hacken. Daher ist es notwendig, Kenntnisse über SSH-Sicherheit zu haben.

So können Sie Ihre SSH-Serververbindungen unter Linux sichern.

1. Root-Benutzeranmeldungen deaktivieren

Deaktivieren Sie dazu zunächst den SSH-Zugriff des Root-Benutzers und Erstellen Sie einen neuen Benutzer mit Root-Rechten. Das Deaktivieren des Serverzugriffs für den Root-Benutzer ist eine Verteidigungsstrategie, die verhindert, dass Angreifer ihr Ziel erreichen, in das System einzudringen. Sie können beispielsweise einen Benutzer namens erstellen Beispielroot folgendermaßen:

useradd -m Beispielstamm
passwd exampleroot
usermod -aG sudo exampleroot

Hier ist eine kurze Erklärung der oben genannten Befehle:

  • Benutzer hinzufügen erstellt einen neuen Benutzer und die -m Parameter erstellt einen Ordner unter der Heimat Verzeichnis für den von Ihnen erstellten Benutzer.
  • Das Passwort Der Befehl dient dazu, dem neuen Benutzer ein Passwort zuzuweisen. Denken Sie daran, dass Passwörter, die Sie den Benutzern zuweisen, komplex und schwer zu erraten sein sollten.
  • usermod -aG sudo fügt den neu erstellten Benutzer der Admin-Gruppe hinzu.

Nach dem Erstellen des Benutzers müssen einige Änderungen an der vorgenommen werden sshd_config Datei. Sie finden diese Datei unter /etc/ssh/sshd_config. Öffnen Sie die Datei mit einem beliebigen Texteditor und nehmen Sie die folgenden Änderungen vor:

# Authentifizierung: 
#LoginGraceTime 2m
PermitRootLogin-Nr
AllowUsers exampleroot

RootLogin zulassen line verhindert, dass der Root-Benutzer über SSH Fernzugriff erhält. Einschließlich Beispielroot in dem Benutzer zulassen list gewährt dem Benutzer die erforderlichen Berechtigungen.

Starten Sie schließlich den SSH-Dienst mit dem folgenden Befehl neu:

sudo systemctl ssh neu starten

Wenn dies fehlschlägt und Sie eine Fehlermeldung erhalten, versuchen Sie den folgenden Befehl. Dies kann je nach verwendeter Linux-Distribution unterschiedlich sein.

sudo systemctl sshd neu starten

2. Ändern des Standardports

Der standardmäßige SSH-Verbindungsport ist 22. Natürlich wissen das alle Angreifer und daher ist es notwendig, die Standard-Portnummer zu ändern, um die SSH-Sicherheit zu gewährleisten. Obwohl ein Angreifer das Neue leicht finden kann Portnummer mit einem Nmap-Scan, hier geht es darum, dem Angreifer die Arbeit zu erschweren.

Um die Portnummer zu ändern, öffnen Sie /etc/ssh/sshd_config und nehmen Sie die folgenden Änderungen an der Datei vor:

Enthalten /etc/ssh/sshd_config.d/*.conf
Port 5922

Starten Sie nach diesem Schritt den SSH-Dienst erneut mit sudo systemctl ssh neu starten. Jetzt können Sie über den gerade definierten Port auf Ihren Server zugreifen. Wenn Sie eine Firewall verwenden, müssen Sie auch dort die notwendigen Regeländerungen vornehmen. Beim Ausführen der netstat -tlpn Befehl können Sie sehen, dass sich Ihre Portnummer für SSH geändert hat.

3. Blockieren Sie den Zugriff für Benutzer mit leeren Passwörtern

Möglicherweise gibt es Benutzer ohne Passwörter auf Ihrem System, die Sie möglicherweise versehentlich erstellt haben. Um zu verhindern, dass solche Benutzer auf die Server zugreifen, können Sie die Leere Passwörter zulassen Zeilenwert in der sshd_config Datei zu nein.

PermitEmptyPasswords Nr

4. Anmelde-/Zugriffsversuche begrenzen

Standardmäßig können Sie auf den Server zugreifen, indem Sie so viele Kennwortversuche unternehmen, wie Sie möchten. Angreifer können diese Schwachstelle jedoch für Brute-Force-Angriffe auf den Server ausnutzen. Sie können automatisch kündigen die SSH-Verbindung nach einer bestimmten Anzahl von Versuchen, indem Sie die Anzahl der zulässigen Passwortversuche festlegen.

Ändern Sie dazu die MaxAuthTries Wert in der sshd_config Datei.

MaxAuthTries 3

5. Mit SSH-Version 2

Die zweite Version von SSH wurde wegen der vielen Schwachstellen in der ersten Version veröffentlicht. Standardmäßig können Sie dem Server die Verwendung der zweiten Version ermöglichen, indem Sie die Protokoll Parameter zu Ihrem sshd_config Datei. Auf diese Weise verwenden alle Ihre zukünftigen Verbindungen die zweite Version von SSH.

Enthalten /etc/ssh/sshd_config.d/*.conf 
Protokoll 2

6. Deaktivieren der TCP-Port-Weiterleitung und der X11-Weiterleitung

Angreifer können versuchen, sich durch Portweiterleitung über SSH-Verbindungen Zugriff auf Ihre anderen Systeme zu verschaffen. Um dies zu verhindern, können Sie die ausschalten AllowTcpForwarding und X11Weiterleitung Merkmale in der sshd_config Datei.

X11Weiterleitungs-Nr 
AllowTcpForwarding-Nr

7. Verbinden mit einem SSH-Schlüssel

Eine der sichersten Möglichkeiten, sich mit Ihrem Server zu verbinden, ist die Verwendung eines SSH-Schlüssels. Wenn Sie einen SSH-Schlüssel verwenden, können Sie ohne Passwort auf den Server zugreifen. Darüber hinaus können Sie den Passwortzugriff auf den Server vollständig deaktivieren, indem Sie die passwortbezogenen Parameter in der ändern sshd_config Datei.

Wenn Sie einen SSH-Schlüssel erstellen, gibt es zwei Schlüssel: Öffentlichkeit und Privatgelände. Der öffentliche Schlüssel wird auf den Server hochgeladen, mit dem Sie sich verbinden möchten, und der private Schlüssel wird auf dem Computer gespeichert, mit dem Sie die Verbindung herstellen.

Erstellen Sie einen SSH-Schlüssel mit der ssh-keygen Befehl auf Ihrem Computer. Verlassen Sie die nicht Passphrase Feld leer und merken Sie sich das Passwort, das Sie hier eingegeben haben. Wenn Sie es leer lassen, können Sie nur mit der SSH-Schlüsseldatei darauf zugreifen. Wenn Sie jedoch ein Passwort festlegen, können Sie verhindern, dass ein Angreifer mit der Schlüsseldatei darauf zugreift. Beispielsweise können Sie mit dem folgenden Befehl einen SSH-Schlüssel erstellen:

ssh-keygen

8. IP-Einschränkungen für SSH-Verbindungen

Meistens blockiert die Firewall den Zugriff mit Frameworks eigener Standards und zielt darauf ab, den Server zu schützen. Dies reicht jedoch nicht immer aus und Sie müssen dieses Sicherheitspotential erhöhen.

Öffnen Sie dazu die /etc/hosts.allow Datei. Mit den Ergänzungen, die Sie an dieser Datei vornehmen, können Sie die SSH-Berechtigung einschränken, eine bestimmte IP-Sperre zulassen oder eine einzelne IP eingeben und alle verbleibenden IP-Adressen mit dem Deny-Befehl blockieren.

Unten sehen Sie einige Beispieleinstellungen. Starten Sie danach den SSH-Dienst wie gewohnt neu, um die Änderungen zu speichern.

Die Bedeutung der Sicherheit von Linux-Servern

Daten- und Datensicherheitsprobleme sind sehr detailliert und sollten von allen Serveradministratoren berücksichtigt werden. Die Serversicherheit ist ein sehr sensibles Thema, da das Hauptaugenmerk von Angriffen auf Webserver liegt und diese fast alle Informationen über ein System enthalten. Da die meisten Server auf der Linux-Infrastruktur laufen, ist es sehr wichtig, mit dem Linux-System und der Serververwaltung vertraut zu sein.

SSH-Sicherheit ist nur eine der Möglichkeiten, Server zu schützen. Es ist möglich, den erlittenen Schaden zu minimieren, indem man einen Angriff stoppt, blockt oder verlangsamt. Abgesehen von der Bereitstellung von SSH-Sicherheit gibt es viele verschiedene Methoden, die Sie implementieren können, um Ihre Linux-Server zu sichern.