Die besten Möglichkeiten zur Sicherung Ihres SSH-Servers

Oct 15, 2025
Privatsphäre und Sicherheit
Eny Setiyowati/Shutterstock.com

Sichern Sie die SSH-Verbindung Ihres Linux-Systems, um Ihr System und Ihre Daten zu schützen. Systemadministratoren und Heimanwender müssen Computer mit Internetanschluss gleichermaßen härten und sichern, aber SSH kann kompliziert sein. Hier sind zehn einfache Quick-Wins zum Schutz Ihres SSH-Servers.

SSH-Sicherheitsgrundlagen

SSH steht für Sichere Shell . Der Name "SSH" wird synonym verwendet, um entweder das SSH-Protokoll selbst oder die Softwaretools zu bezeichnen, mit denen Systemadministratoren und Benutzer mithilfe dieses Protokolls sichere Verbindungen zu Remotecomputern herstellen können.

Das SSH-Protokoll ist ein verschlüsseltes Protokoll, das eine sichere Verbindung über ein unsicheres Netzwerk wie das Internet herstellt. SSH unter Linux basiert auf einer portablen Version von OpenSSH Projekt. Es ist implementiert in a klassisches Client-Server-Modell mit einem SSH-Server, der Verbindungen von SSH-Clients akzeptiert. Der Client wird verwendet, um eine Verbindung zum Server und zu herzustellen Anzeige die Sitzung an den Remote-Benutzer. Der Server akzeptiert die Verbindung und wird ausgeführt die Sitzung.

In der Standardkonfiguration wartet ein SSH-Server auf eingehende Verbindungen im Transmission Control Protocol ( TCP ) Port 22. Da dies ein standardisierter, bekannter Hafen ist es ein Ziel für Bedrohungsakteure und böswillige Bots .

Bedrohungsakteure starten Bots, die eine Reihe von IP-Adressen nach offenen Ports durchsuchen. Die Ports werden dann überprüft, um festzustellen, ob es Schwachstellen gibt, die ausgenutzt werden können. Der Gedanke: "Ich bin in Sicherheit, es gibt größere und bessere Ziele als ich, auf die die Bösen zielen können", ist eine falsche Argumentation. Die Bots wählen keine Ziele basierend auf einem Verdienst aus. Sie suchen methodisch nach Systemen, gegen die sie verstoßen können.

Sie nominieren sich als Opfer, wenn Sie Ihr System nicht gesichert haben.

Sicherheitsreibung

Sicherheitsreibung ist die Irritation - in welchem ​​Ausmaß auch immer -, die Benutzer und andere bei der Implementierung von Sicherheitsmaßnahmen erfahren. Wir haben lange Erinnerungen und können uns daran erinnern, wie wir neuen Benutzern ein Computersystem vorgestellt und sie mit entsetzter Stimme gefragt haben, ob sie es sind Ja wirklich musste ein Passwort eingeben jedes Mal Sie haben sich am Mainframe angemeldet. Das war für sie Sicherheitslücke.

(Übrigens wird die Erfindung des Passworts gutgeschrieben Fernando J. Corbató , eine weitere Figur im Pantheon der Informatiker, deren kombinierte Arbeit zu den Umständen beitrug, die zur Geburt von führten Unix .)

Die Einführung von Sicherheitsmaßnahmen ist normalerweise mit Reibungen für jemanden verbunden. Unternehmer müssen dafür bezahlen. Die Computerbenutzer müssen möglicherweise ihre vertrauten Vorgehensweisen ändern oder sich andere Authentifizierungsdetails merken oder zusätzliche Schritte hinzufügen, um eine erfolgreiche Verbindung herzustellen. Die Systemadministratoren müssen zusätzliche Arbeiten ausführen, um die neuen Sicherheitsmaßnahmen zu implementieren und aufrechtzuerhalten.

Das Härten und Sperren eines Linux- oder Unix-ähnlichen Betriebssystems kann sehr schnell sehr kompliziert werden. Was wir hier vorstellen, sind eine Reihe von einfach zu implementierenden Schritten, die die Sicherheit Ihres Computers verbessern, ohne dass Anwendungen von Drittanbietern erforderlich sind und ohne Ihre Firewall zu durchsuchen.

Diese Schritte sind nicht das letzte Wort in der SSH-Sicherheit, aber sie bringen Sie weit von den Standardeinstellungen weg und ohne allzu große Reibung.

Verwenden Sie das SSH-Protokoll Version 2

Im Jahr 2006 wurde das SSH-Protokoll von Version 1 auf aktualisiert version 2 . Es war ein bedeutendes Upgrade. Es gab so viele Änderungen und Verbesserungen, insbesondere in Bezug auf Verschlüsselung und Sicherheit, dass Version 2 nicht abwärtskompatibel mit Version 1 ist. Um Verbindungen von Clients der Version 1 zu verhindern, können Sie festlegen, dass Ihr Computer nur Verbindungen von Clients der Version 2 akzeptiert.

Bearbeiten Sie dazu die / etc / ssh / sshd_config Datei. Wir werden dies in diesem Artikel viel tun. Wann immer Sie diese Datei bearbeiten müssen, ist dies der folgende Befehl:

sudo gedit / etc / ssh / sshd_config

Fügen Sie die Zeile hinzu:

Protokoll 2

Und speichern Sie die Datei. Wir werden den SSH-Daemon-Prozess neu starten. Auch in diesem Artikel werden wir dies häufig tun. Dies ist der jeweils zu verwendende Befehl:

sudo systemctl sshd neu starten

Überprüfen wir, ob unsere neue Einstellung in Kraft ist. Wir werden zu einem anderen Computer wechseln und versuchen, SSH auf unseren Testcomputer zu übertragen. Und wir werden das verwenden -1 (Protokoll 1) Option, um die zu erzwingen ssh Befehl zur Verwendung von Protokoll Version 1.

ssh -1 [email protected]

Großartig, unsere Verbindungsanfrage wird abgelehnt. Stellen wir sicher, dass wir weiterhin eine Verbindung mit Protokoll 2 herstellen können -2 (Protokoll 2) Option, um die Tatsache zu beweisen.

ssh -2 [email protected]

Die Tatsache, dass der SSH-Server unser Passwort anfordert, ist ein positiver Hinweis darauf, dass die Verbindung hergestellt wurde und Sie mit dem Server interagieren. Da moderne SSH-Clients standardmäßig Protokoll 2 verwenden, müssen wir Protokoll 2 nicht angeben, solange unser Client auf dem neuesten Stand ist.

ssh [email protected]

Und unsere Verbindung wird akzeptiert. Es werden also nur die schwächeren und weniger sicheren Protokoll-1-Verbindungen abgelehnt.

Vermeiden Sie Port 22

Port 22 ist der Standardport für SSH-Verbindungen. Wenn Sie einen anderen Port verwenden, wird Ihrem System durch Sicherheit ein wenig Sicherheit verliehen. Sicherheit durch Dunkelheit wird niemals als echte Sicherheitsmaßnahme angesehen, und ich habe in anderen Artikeln dagegen gewettert. Tatsächlich prüfen einige der intelligenteren Angriffs-Bots alle offenen Ports und bestimmen, welchen Dienst sie ausführen, anstatt sich auf eine einfache Nachschlageliste der Ports zu verlassen und davon auszugehen, dass sie die üblichen Dienste bereitstellen. Die Verwendung eines nicht standardmäßigen Ports kann jedoch dazu beitragen, das Rauschen und den schlechten Verkehr auf Port 22 zu verringern.

Bearbeiten Sie Ihre SSH-Konfigurationsdatei, um einen nicht standardmäßigen Port zu konfigurieren:

sudo gedit / etc / ssh / sshd_config

Entfernen Sie die Hash-Nummer vom Anfang der Zeile "Port" und ersetzen Sie die "22" durch die Portnummer Ihrer Wahl. Speichern Sie Ihre Konfigurationsdatei und starten Sie den SSH-Daemon neu:

sudo systemctl sshd neu starten

Mal sehen, welchen Effekt das hatte. Drüben auf unserem anderen Computer verwenden wir die ssh Befehl, um eine Verbindung zu unserem Server herzustellen. Das ssh Der Befehl verwendet standardmäßig Port 22:

ssh [email protected]

Unsere Verbindung wird abgelehnt. Versuchen wir es erneut und geben Sie Port 470 mit der Option -p (Port) an:

ssh -p 479 [email protected]

Unsere Verbindung wird akzeptiert.

Filtern Sie Verbindungen mithilfe von TCP-Wrappern

TCP Wrappers ist leicht zu verstehen Zugriffskontrollliste . Sie können Verbindungen basierend auf den Merkmalen der Verbindungsanforderung wie IP-Adresse oder Hostname ausschließen und zulassen. TCP-Wrapper sollten in Verbindung mit und nicht anstelle einer ordnungsgemäß konfigurierten Firewall verwendet werden. In unserem speziellen Szenario können wir die Dinge mithilfe von TCP-Wrappern erheblich verbessern.

TCP-Wrapper wurden bereits auf dem Ubuntu 18.04 LTS-Computer installiert, mit dem dieser Artikel recherchiert wurde. Es musste auf Manjaro 18.10 und Fedora 30 installiert werden.

Verwenden Sie diesen Befehl, um auf Fedora zu installieren:

sudo yum installiere tcp_wrappers

Verwenden Sie zur Installation auf Manjaro den folgenden Befehl:

Sudo Pacman -Syu TCP-Wrapper

Es sind zwei Dateien beteiligt. Einer enthält die zulässige Liste und der andere die abgelehnte Liste. Bearbeiten Sie die Verweigerungsliste mit:

sudo gedit /etc/hosts.deny

Dies öffnet die gedit Editor mit der darin geladenen Verweigerungsdatei.

Sie müssen die Zeile hinzufügen:

ALLES ALLES

Und speichern Sie die Datei. Dadurch wird jeder nicht autorisierte Zugriff blockiert. Wir müssen jetzt die Verbindungen autorisieren, die Sie akzeptieren möchten. Dazu müssen Sie die Zulassungsdatei bearbeiten:

sudo gedit /etc/hosts.allow

Dies öffnet die gedit Editor mit der darin geladenen Zulassungsdatei.

Wir haben den Namen des SSH-Dämons hinzugefügt. SSHD Und die IP-Adresse des Computers, auf dem eine Verbindung hergestellt werden soll. Speichern Sie die Datei und prüfen Sie, ob die Einschränkungen und Berechtigungen gelten.

Zunächst versuchen wir, eine Verbindung von einem Computer herzustellen, der sich nicht im Computer befindet hosts.allow Datei:

Die Verbindung wird abgelehnt. Wir werden jetzt versuchen, eine Verbindung vom Computer unter der IP-Adresse 192.168.4.23 herzustellen:

Unsere Verbindung wird akzeptiert.

Unser Beispiel hier ist etwas brutal - nur ein einziger Computer kann eine Verbindung herstellen. TCP-Wrapper sind sehr vielseitig und flexibler. Es unterstützt Hostnamen, Platzhalter und Subnetzmasken um Verbindungen aus Bereichen von IP-Adressen zu akzeptieren. Sie werden dazu ermutigt Schauen Sie sich die Manpage an .

Verbindungsanfragen ohne Kennwörter ablehnen

Obwohl dies eine schlechte Praxis ist, kann ein Linux-Systemadministrator ein Benutzerkonto ohne Kennwort erstellen. Das bedeutet, dass Remoteverbindungsanforderungen von diesem Konto kein Kennwort haben, gegen das geprüft werden kann. Diese Verbindungen werden akzeptiert, aber nicht authentifiziert.

Die Standardeinstellungen für SSH akzeptieren Verbindungsanfragen ohne Kennwörter. Wir können das sehr einfach ändern und sicherstellen, dass alle Verbindungen authentifiziert sind.

Wir müssen Ihre SSH-Konfigurationsdatei bearbeiten:

sudo gedit / etc / ssh / sshd_config

Scrollen Sie durch die Datei, bis Sie die Zeile mit der Aufschrift "#PermitEmptyPasswords no" sehen. Entfernen Sie den Hash # vom Anfang der Zeile und speichern Sie die Datei. Starten Sie den SSH-Daemon neu:

sudo systemctl sshd neu starten

Verwenden Sie SSH-Schlüssel anstelle von Passwörtern

SSH-Schlüssel bieten eine sichere Möglichkeit, sich bei einem SSH-Server anzumelden. Passwörter können erraten, geknackt oder brutal gezwungen . SSH-Schlüssel sind für solche Angriffe nicht offen.

Wenn Sie SSH-Schlüssel generieren, erstellen Sie ein Schlüsselpaar. Einer ist der öffentliche Schlüssel und der andere ist der private Schlüssel. Der öffentliche Schlüssel ist auf den Servern installiert, zu denen Sie eine Verbindung herstellen möchten. Der private Schlüssel wird, wie der Name schon sagt, auf Ihrem eigenen Computer sicher aufbewahrt.

Mit SSH-Schlüsseln können Sie Verbindungen ohne Kennwort herstellen, die - intuitiv gesehen - sicherer sind als Verbindungen mit Kennwortauthentifizierung.

Wenn Sie eine Verbindungsanforderung stellen, erstellt der Remotecomputer anhand seiner Kopie Ihres öffentlichen Schlüssels eine verschlüsselte Nachricht, die an Ihren Computer zurückgesendet wird. Da es mit Ihrem öffentlichen Schlüssel verschlüsselt wurde, kann Ihr Computer es mit Ihrem privaten Schlüssel entschlüsseln.

Ihr Computer extrahiert dann einige Informationen aus der Nachricht, insbesondere die Sitzungs-ID, verschlüsselt diese und sendet sie an den Server zurück. Wenn der Server es mit seiner Kopie Ihres öffentlichen Schlüssels entschlüsseln kann und die Informationen in der Nachricht mit denen übereinstimmen, die der Server an Sie gesendet hat, wird bestätigt, dass Ihre Verbindung von Ihnen stammt.

Hier wird um 192.168.4.11 von einem Benutzer mit SSH-Schlüsseln eine Verbindung zum Server hergestellt. Beachten Sie, dass sie nicht zur Eingabe eines Kennworts aufgefordert werden.

ssh [email protected]

SSH-Schlüssel verdienen einen Artikel für sich. Handlich, wir haben eine für Sie. Hier ist Erstellen und Installieren von SSH-Schlüsseln .

VERBUNDEN: Erstellen und Installieren von SSH-Schlüsseln über die Linux-Shell

Deaktivieren Sie die Kennwortauthentifizierung insgesamt

Die logische Erweiterung der Verwendung von SSH-Schlüsseln besteht natürlich darin, dass Sie die Kennwortauthentifizierung vollständig deaktivieren können, wenn alle Remotebenutzer gezwungen sind, diese zu übernehmen.

Wir müssen Ihre SSH-Konfigurationsdatei bearbeiten:

sudo gedit / etc / ssh / sshd_config

Scrollen Sie durch die Datei, bis Sie die Zeile sehen, die mit "#PasswordAuthentication yes" beginnt. Entfernen Sie den Hash # Ändern Sie am Anfang der Zeile das "Ja" in "Nein" und speichern Sie die Datei. Starten Sie den SSH-Daemon neu:

sudo systemctl sshd neu starten

Deaktivieren Sie die X11-Weiterleitung

Mit der X11-Weiterleitung können Remotebenutzer grafische Anwendungen von Ihrem Server über eine SSH-Sitzung ausführen. In den Händen eines Bedrohungsakteurs oder eines böswilligen Benutzers kann eine GUI-Oberfläche ihre bösartigen Zwecke erleichtern.

Ein Standard-Mantra in der Cybersicherheit lautet: Wenn Sie keinen guten Grund haben, es einzuschalten, schalten Sie es aus. Dazu bearbeiten wir Ihre SSH-Konfigurationsdatei:

sudo gedit / etc / ssh / sshd_config

Scrollen Sie durch die Datei, bis Sie die Zeile sehen, die mit "# X11Forwarding no" beginnt. Entfernen Sie den Hash # vom Anfang der Zeile und speichern Sie die Datei. Starten Sie den SSH-Daemon neu:

sudo systemctl sshd neu starten

Legen Sie einen Wert für das Leerlaufzeitlimit fest

Wenn eine SSH-Verbindung zu Ihrem Computer besteht und über einen bestimmten Zeitraum keine Aktivität ausgeführt wurde, kann dies ein Sicherheitsrisiko darstellen. Es besteht die Möglichkeit, dass der Benutzer seinen Schreibtisch verlassen hat und an anderer Stelle beschäftigt ist. Jeder andere, der an seinem Schreibtisch vorbeikommt, kann sich hinsetzen und seinen Computer und über SSH Ihren Computer benutzen.

Es ist viel sicherer, ein Zeitlimit festzulegen. Die SSH-Verbindung wird unterbrochen, wenn der inaktive Zeitraum dem Zeitlimit entspricht. Wir werden Ihre SSH-Konfigurationsdatei erneut bearbeiten:

sudo gedit / etc / ssh / sshd_config

Scrollen Sie durch die Datei, bis Sie die Zeile sehen, die mit "#ClientAliveInterval 0" beginnt. Entfernen Sie den Hash # Ändern Sie vom Anfang der Zeile an die Ziffer 0 auf den gewünschten Wert. Wir haben 300 Sekunden verwendet, was 5 Minuten entspricht. Speichern Sie die Datei und starten Sie den SSH-Daemon neu:

sudo systemctl sshd neu starten

Legen Sie ein Limit für Kennwortversuche fest

Das Definieren eines Limits für die Anzahl der Authentifizierungsversuche kann dazu beitragen, das Erraten von Passwörtern und Brute-Force-Angriffe zu verhindern. Nach der festgelegten Anzahl von Authentifizierungsanforderungen wird der Benutzer vom SSH-Server getrennt. Standardmäßig gibt es keine Begrenzung. Das ist aber schnell behoben.

Auch hier müssen wir Ihre SSH-Konfigurationsdatei bearbeiten:

sudo gedit / etc / ssh / sshd_config

Scrollen Sie durch die Datei, bis Sie die Zeile sehen, die mit "#MaxAuthTries 0" beginnt. Entfernen Sie den Hash # Ändern Sie vom Anfang der Zeile an die Ziffer 0 auf den gewünschten Wert. Wir haben hier 3 verwendet. Speichern Sie die Datei, wenn Sie Ihre Änderungen vorgenommen haben, und starten Sie den SSH-Dämon neu:

sudo systemctl sshd neu starten

Wir können dies testen, indem wir versuchen, eine Verbindung herzustellen und absichtlich ein falsches Passwort eingeben.

Beachten Sie, dass die MaxAuthTries-Nummer eins mehr zu sein schien als die Anzahl der Versuche, die dem Benutzer gestattet waren. Nach zwei Fehlversuchen wird unser Testbenutzer getrennt. Dies war mit MaxAuthTries auf drei gesetzt.

Deaktivieren Sie Root-Anmeldungen

Es ist eine schlechte Praxis, sich als Root auf Ihrem Linux-Computer anzumelden. Sie sollten sich als normaler Benutzer anmelden und verwenden sudo Aktionen ausführen, für die Root-Rechte erforderlich sind. Darüber hinaus sollten Sie nicht zulassen, dass sich root bei Ihrem SSH-Server anmeldet. Nur normale Benutzer sollten eine Verbindung herstellen dürfen. Wenn sie eine Verwaltungsaufgabe ausführen müssen, sollten sie verwenden sudo zu. Wenn Sie gezwungen sind, einem Root-Benutzer die Anmeldung zu erlauben, können Sie ihn zumindest zwingen, SSH-Schlüssel zu verwenden.

Zum letzten Mal müssen wir Ihre SSH-Konfigurationsdatei bearbeiten:

sudo gedit / etc / ssh / sshd_config

Scrollen Sie durch die Datei, bis Sie die Zeile sehen, die mit "#PermitRootLogin Prohibit-Passwort" beginnt. Entfernen Sie den Hash # vom Anfang der Linie.

  • Wenn Sie verhindern möchten, dass sich root überhaupt anmeldet, ersetzen Sie "Passwort verbieten" durch "Nein".
  • Wenn Sie root erlauben möchten, sich anzumelden, ihn jedoch zur Verwendung von SSH-Schlüsseln zwingen, lassen Sie "Passwort verbieten" an Ort und Stelle.

Speichern Sie Ihre Änderungen und starten Sie den SSH-Daemon neu:

sudo systemctl sshd neu starten

Der ultimative Schritt

Wenn auf Ihrem Computer überhaupt kein SSH ausgeführt werden muss, stellen Sie sicher, dass es deaktiviert ist.

sudo systemctl stop sshd
sudo systemctl deaktiviere sshd

Wenn Sie das Fenster nicht öffnen, kann niemand hineinklettern.

.eintragsinhalt .Eintrittsfußzeile

The Best Ways To Secure Your SSH Server

How To Secure Linux SSH Server

How To Secure And Protect SSH Server

How To Secure A Server

Fail2ban Tutorial | How To Secure Your Server

How To Secure A Linux Server With UFW, SSH Keygen, Fail2ban & Two Factor Authentication

🔒 Securing SSH Server: Configuration

Beginners Guide To SSH


Privatsphäre und Sicherheit - Die beliebtesten Artikel

Was ist Doxxing und warum ist es schlecht?

Privatsphäre und Sicherheit Feb 13, 2025

UNCACHED INHALT Teguh Jati Prasetyo / Shutterstock.com. Doxxing ist das Sammeln und Veröffentlichen von privaten Informationen einer Person on..


Können Sie Wi-Fi-Kameras vor Windows platzieren?

Privatsphäre und Sicherheit Oct 8, 2025

Eine einfache, aber gute Verwendung für eine Wi-Fi-Kamera besteht darin, sie vor ein Fenster zu stellen, um die Außenseite Ihres Hauses im Auge zu behalten. Dabei sind jedoch eini..


So entsperren Sie Ihr Chromebook mit einer PIN

Privatsphäre und Sicherheit Aug 26, 2025

UNCACHED INHALT Wenn Sie nicht verwenden Smart Lock zum automatischen Entsperren Ihres Chromebooks Wenn sich Ihr Telefon in der Nähe befindet, kann es ziemlich är..


So erkennen Sie, welche Anwendung die Webcam Ihres Windows-PCs verwendet

Privatsphäre und Sicherheit Jan 20, 2025

UNCACHED INHALT Webcams enthalten häufig ein Licht, das anzeigt, ob die Webcam verwendet wird oder nicht. Windows macht es nicht einfach zu überprüfen, welche Anwendung die Web..


Was ist RFID und ist es wirklich ein Sicherheitsrisiko?

Privatsphäre und Sicherheit Sep 22, 2025

UNCACHED INHALT RFID ist eine Technologie, die uns jeden Tag umgibt. Es ist in unseren Kreditkarten, Pässen und einigen der Produkte, die wir kaufen, enthalten. Sogar viele unser..


So lassen Sie BitLocker 256-Bit-AES-Verschlüsselung anstelle von 128-Bit-AES verwenden

Privatsphäre und Sicherheit Jul 28, 2025

Windows BitLocker-Verschlüsselung Der Standardwert ist 128-Bit-AES Verschlüsselung Sie können jedoch auch die 256-Bit-AES-Verschlüsselung verwenden. D..


Online-Sicherheit: Hacker, Phisher und Cyberkriminelle verstehen

Privatsphäre und Sicherheit Sep 28, 2025

UNCACHED INHALT Waren Sie jemals Opfer eines Identitätsdiebstahls? Schon mal gehackt worden? Hier ist die erste einer Reihe kritischer Informationen, die Ihnen dabei helfen, sich..


Deaktivieren und Entfernen der vorgeschlagenen Websites aus dem Internet Explorer 8

Privatsphäre und Sicherheit Jan 26, 2025

UNCACHED INHALT Wenn Sie Internet Explorer 8 entweder nach Wahl oder aufgrund von Arbeitsanforderungen verwenden, ist es möglicherweise müde, die nervige Funktion "Vorgeschlagene Websites..


Kategorien