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

3 Möglichkeiten, wie ich SSH für den Datenschutz konfiguriere

SSH (Secure Shell) ist ein Protokoll, mit dem Sie eine verifizierte und private Verbindung erstellen können, indem Sie den Kanal mit kryptografischen Schlüsseln sichern, um eine Remote-Shell auf einem anderen Computer zu starten. Mit dieser Verbindung können Sie Remote-Befehle ausführen, sichere Dateiübertragungen initiieren, Sockets, Anzeigen und Dienste weiterleiten und vieles mehr.

Vor dem Erscheinen von SSH wurde die meiste Remote-Administration über Telnet durchgeführt, und um fair zu sein, sobald Sie eine Remote-Sitzung einrichten konnten, konnten Sie praktisch alles tun, was Sie brauchen. Das Problem bei diesem Protokoll war, dass der Datenverkehr unverschlüsselt als reiner Klartext übertragen wurde. Es hat nicht viel Mühe gekostet, einen Traffic-Sniffer zu verwenden, um alle Pakete innerhalb einer Sitzung zu sehen, einschließlich derer, die einen Nutzernamen und ein Passwort enthalten.

Mit SSH werden dank der Verwendung asymmetrischer Schlüssel die Sitzungen zwischen den an der Kommunikation beteiligten Geräten verschlüsselt. Und heutzutage ist dies relevanter denn je, da alle Cloud-Server von überall auf der Welt verwaltet werden.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

3 Tipps zur SSH-Konfiguration

Die gebräuchlichste Implementierung des SSH-Protokolls ist OpenSSH, das vom OpenBSD-Projekt entwickelt wurde und für die meisten Linux- und Unix-ähnlichen Betriebssysteme verfügbar ist. Sobald Sie dieses Paket installiert haben, haben Sie eine Datei namens sshd_config die den größten Teil des Verhaltens des Dienstes steuert. Die Standardeinstellungen sind im Allgemeinen sehr konservativ, aber ich neige dazu, einige Anpassungen vorzunehmen, um meine SSH-Erfahrung zu optimieren und meine Server vor unbefugtem Zugriff zu schützen.

1. Ändern Sie den Standardport 

Daran erinnern sich nicht alle Administratoren. Jeder mit einem Port-Scanner kann einen SSH-Port entdecken, selbst nachdem Sie ihn verschoben haben, sodass Sie sich selbst kaum aus der Gefahrenzone entfernen, aber Sie vermeiden praktischerweise Hunderte von nicht ausgeklügelten Skripts, die gegen Ihren Server gestartet werden. Es ist ein Gefallen, den Sie selbst tun können, um eine gute Menge an Rauschen aus Ihren Protokollen herauszuschneiden.

Für diesen Artikel hatte ich einen SSH-Server-Standardport TCP 22 über einen Cloud-Anbieter, und die durchschnittlichen Angriffe pro Minute waren 24. Nachdem ich den Port auf eine viel höhere Nummer, TCP 45678, geändert hatte, war der Durchschnitt der Leute, die eine Verbindung herstellten und einen beliebigen Benutzernamen erraten, oder Passwort war zwei pro Tag.

Um den Standardport für SSH zu ändern, öffnen Sie /etc/ssh/sshd_config in Ihrem bevorzugten Texteditor und ändern Sie den Wert von Port   von 22 bis zu einer Zahl größer als 1024. Die Zeile kann kommentiert werden, da 22 der Standardwert ist (also nicht explizit in der Konfiguration deklariert werden muss), also kommentieren Sie die Zeile vor dem Speichern aus.

#Port 22122
#AddressFamily any 
#ListenAddress 0.0.0.0 
#ListenAddress ::

Nachdem Sie den Port geändert und die Datei gespeichert haben, starten Sie den SSH-Server neu:

$ sudo systemctl restart sshd

2. Keine Passwörter mehr

Es gibt eine allgemeine Bewegung, Passwörter nicht mehr als Authentifizierungsmittel zu verwenden, wobei Methoden wie die Zwei-Faktor-Authentifizierung immer beliebter werden. OpenSSH kann sich mit asymmetrischen Schlüsseln authentifizieren, sodass Sie sich keine komplexen Passwörter merken müssen, geschweige denn, sie alle paar Monate zu wechseln, oder befürchten müssen, dass jemand beim Aufbau Ihrer Remote-Sitzung „schultergesurft“ ist. Durch die Verwendung von SSH-Schlüsseln können Sie sich schnell und sicher bei Ihren Remote-Geräten anmelden. Dies bedeutet oft weniger Zeit für die Verarbeitung falscher Benutzernamen und Passwörter für den Server selbst. Der Login ist angenehm einfach. Wenn es keinen Schlüssel gibt, gibt es keinen Eintrag – nicht einmal eine Eingabeaufforderung.

Um diese Funktion zu verwenden, müssen Sie sowohl den Client (den Computer physisch vor Ihnen) als auch den Server (den entfernten Computer) konfigurieren.

Auf dem Client-Rechner müssen Sie ein SSH-Schlüsselpaar generieren. Dieser besteht aus einem öffentlichen und einem privaten Schlüssel. Wie der Name schon sagt, müssen Sie einen Schlüssel an Server verteilen, bei denen Sie sich anmelden möchten, und der andere ist privat und darf mit niemandem geteilt werden. Erstellen Sie einen neuen Schlüssel mit dem ssh-keygen Befehl und verwenden Sie das -t Option, um eine gute, neuere Kryptografiebibliothek wie ed25519 anzugeben :

$ ssh-keygen -t ed25519    
 Generating public/private ed25519 key pair. 
 Enter file in which to save the key (~/.ssh/id_ed25519):

Während der Schlüsselerstellung werden Sie aufgefordert, die Datei zu benennen. Sie können Return drücken Standard zu akzeptieren. Sollten Sie in Zukunft weitere Schlüssel erstellen, können Sie jedem einen benutzerdefinierten Namen geben, aber wenn Sie mehrere Schlüssel haben, müssen Sie angeben, welchen Schlüssel Sie für jede Interaktion verwenden möchten. Akzeptieren Sie also vorerst einfach die Standardeinstellung.

Sie können Ihrem Schlüssel auch eine Passphrase geben. Dies stellt sicher, dass selbst wenn es jemandem gelingt, Ihren privaten Schlüssel zu erhalten (was selbst niemals passieren sollte), er ihn nicht ohne Ihre Passphrase verwenden kann. Es ist ein nützlicher Schutz für einige Schlüssel, während es für andere (insbesondere diejenigen, die in Skripten verwendet werden) nicht geeignet ist. Drücken Sie Zurück um Ihren Schlüssel ohne Passphrase zu belassen oder eine Passphrase zu erstellen, wenn Sie möchten.

Um Ihren Schlüssel auf einen Server zu kopieren, verwenden Sie die ssh-copy-id Befehl. Zum Beispiel, wenn ich einen Server namens example.com besitze , dann kann ich meinen öffentlichen Schlüssel mit diesem Befehl dorthin kopieren:

$ ssh-copy-id [email protected]

Dadurch wird die Datei authorized_keys erstellt oder geändert in der .ssh des Servers Verzeichnis mit Ihrem öffentlichen Schlüssel.

Einmal die ssh-copy-id Befehl bestätigt hat, was er getan hat, versuchen Sie, sich von Ihrem Computer aus anzumelden, um sicherzustellen, dass Sie sich ohne Passwort anmelden können (oder mit der Passphrase Ihres Schlüssels, wenn Sie eines verwenden möchten).

Sobald Sie auf Ihrem Server sind, ohne das Passwort Ihres Serverkontos zu verwenden, bearbeiten Sie die sshd_config des Servers und setzen Sie PasswordAuthentication auf no .

PasswordAuthentication no

Starten Sie ssh neu Dienst, um die neue Konfiguration zu laden:

$ sudo systemctl restart sshd

3. Entscheiden Sie, wer sich anmelden darf

Die meisten Distributionen erlauben dem Root-Benutzer nicht, sich über SSH anzumelden, wodurch sichergestellt wird, dass nur nicht privilegierte Konten aktiv sind, indem der sudo verwendet wird Befehl, um Berechtigungen nach Bedarf zu eskalieren. Dies verhindert ein bemerkenswertes und schmerzhaft offensichtliches Ziel (Root) vor einfachen, aber allzu häufigen Skriptangriffen.

Ebenso ist eine einfache und leistungsstarke Funktion von OpenSSH die Möglichkeit zu entscheiden, welche Benutzer sich bei einem Computer anmelden können. Um festzulegen, welchen Benutzern SSH-Zugriff gewährt wird, öffnen Sie die sshd_config Datei in Ihrem bevorzugten Texteditor und fügen Sie eine Zeile wie diese hinzu:

AllowUsers jgarrido jane tux

Starten Sie den SSH-Dienst neu, um die neuen Konfigurationsoptionen zu laden.

Dies erlaubt nur den drei Benutzern (jgarrido, jane und tux), sich einzuloggen oder irgendwelche Operationen auf dem entfernten Rechner auszuführen.

Abschließende Gedanken

Sie können OpenSSH verwenden, um einen starken und robusten SSH-Server zu implementieren. Dies waren nur drei nützliche Optionen, um Ihre Installation abzusichern. Dennoch gibt es unzählige Funktionen und Optionen, die Sie innerhalb der sshd_config ein- oder ausschalten können Datei, und es gibt viele großartige Anwendungen wie Fail2ban , mit denen Sie Ihren SSH-Dienst weiter schützen können.


Linux
  1. Konfigurieren Sie SSH-Schlüssel auf einem Debian 9-System – wie geht das?

  2. So richten Sie SSH-Schlüssel für die „kennwortlose“ SSH-Anmeldung unter Linux ein

  3. So richten Sie SSH-Schlüssel für die SSH-Anmeldung mit „öffentlichen/privaten Schlüsseln“ unter Linux ein

  4. Teamviewer-ähnliches Tool für ssh?

  5. Wie erstellt man einen SSH-Schlüssel für einen anderen Benutzer?

Konfigurieren Sie den RNDC-Schlüssel für den Bindungs-DNS-Server unter CentOS 7

Die 11 besten Möglichkeiten, Ihren SSH-Server zu sichern

Wie richte ich die ssh-schlüsselbasierte Authentifizierung für Github mithilfe der Datei ~/.ssh/config ein?

SSH-Zugang für cPanel

Generieren Sie SSH-Schlüssel für die passwortlose Anmeldung in Ubuntu

So fügen Sie einen SSH-Schlüssel für den cPanel-SSH-Zugriff hinzu