Einrichten eines Remote-SSH-Verzeichnisses in Nautilus. So verwenden Sie das SSH-Protokoll in Ubuntu: Installation und Konfiguration.

Manchmal müssen Sie gleichzeitig von einem PC zum anderen wechseln, damit Sie nicht nur die Daten anzeigen, sondern auch einige Aktionen ausführen können. Das SSH-Protokoll ist ideal für solche Aufgaben, insbesondere in Ubuntu. Dadurch können Sie den Server und den Client sicher kombinieren. Gleichzeitig werden Installation und Konfiguration nicht lange dauern, wenn Sie den Anweisungen folgen.

So installieren Sie den Server in Ubuntu

Tatsache ist, dass standardmäßig in betriebssystem  Ubuntu-Client ist bereits installiert. Daher ist die Hauptsache die Installation des Server-OpenSSH-Programms auf dem Computer und die anschließende Konfiguration. Um einen Server zu installieren, öffnen Sie ein Terminal und geben Sie die folgende Zeile ein: sudo apt-get install openssh-server. Danach fragt Ubuntu Sie nach einem Passwort - bestätigen Sie es. Wenn die Installation abgeschlossen ist, erscheint eine Meldung mit einem Bericht über die erfolgreiche Installation. Als Ergebnis wird der Server OpenSSH installiert. Dieses Programm befindet sich standardmäßig in Ubuntu-Distributionen, da der OpenSSH-Server bei Benutzern dieses Betriebssystems sehr beliebt ist.

Server-SSH in Ubuntu einrichten

Das Wichtigste ist nun, dass Sie den OpenSSH-Server ordnungsgemäß konfigurieren müssen, bevor Sie ihn aktivieren und dem Client die Verwendung eines sicheren Protokolls auf dem Host ermöglichen. Falsche Einstellung  Dies kann zu einer niedrigeren Sicherheitsstufe führen und Ihr Server wird möglicherweise gehackt.

Das SSH-Protokoll ist erforderlich, um Daten über sichere, verschlüsselte Kanäle zu verbinden und zu übertragen. Es ist daher besser, etwas Zeit zu verwenden und die Einstellungen herauszufinden.

Die Funktionsweise des Servers ist in der Konfigurationsdatei config angegeben. Insbesondere werden die Anforderungen dargelegt, die der Client erfüllen muss, um den SSH-Schutz zu durchlaufen. Um zu beginnen, müssen Sie den Benutzer festlegen, über den Sie das System verwalten. Der Standardbenutzer ist root. Diese Einstellung als solche zu belassen, ist jedoch nicht sicher - der Root-Benutzer hat zu viele Rechte und Sie können das System versehentlich beschädigen, da es besser ist, die Verbindung zum Server zu verhindern.

Sie müssen ein anderes Benutzerkonto auf dem Server neu installieren, damit Sie einen anderen Computer sicher über SSH verwenden können. Dazu müssen Sie anstelle von root einen weiteren Benutzer hinzufügen befehlszeile: adduser Benutzername. Dies reicht jedoch nicht aus - manchmal benötigen Sie manchmal den root-Benutzer. Machen Sie den hinzugefügten Benutzer dann zur Hälfte als Super-Admin, damit er vorübergehend empfangen kann root-Rechte. Melden Sie sich dazu als root an und listen Sie die folgende Zeile auf: gpasswd -a Benutzername sudo. Dadurch wird der sudo-Benutzergruppe mit der höchsten Zugriffsebene ein neuer Benutzer hinzugefügt.

Wenn Sie einen öffentlichen Server mit SSH erstellen möchten und sich kein Client am Computer anmeldet, ist es besser, den Root-Benutzer vollständig zu entfernen. Wenn Sie sich auf Ihre Fähigkeiten verlassen und nicht planen, einen Host zu veröffentlichen, können Sie den Client zum Superadministrator machen und ihn mit einem Kennwort schützen. Aber manchmal erscheint nach dieser Fehlermeldung: Zugriff verweigert. Der Zugriff auf die Inschrift wird verweigert, nachdem versucht wurde, sich durch Eingabe eines Kennworts beim Superuser-Konto anzumelden. Dies könnte auf einen Widerspruch in der Konfigurationsdatei config hindeuten.

Um den Zugriff zu verhindern, sollten Sie sorgfältig prüfen, ob in den Einstellungen alles in Ordnung ist. Der häufigste Grund, warum der Zugriff verweigert wird, ist die Aktivierung der Kennwortautorisierungsoption für normale Benutzer und für root. Wenn Sie den Zugriff verweigern möchten, ändern Sie PermitRootLogin anstelle von yes in without-password. Und dann schreibe PermitRootLogin ja. Starten Sie anschließend den Server neu (Dienst ssh restart), und der Zugriff auf die Nachricht wird verweigert.

Der nächste wichtige Schritt ist die Aktivierung der starken Benutzerauthentifizierung. Die Autorisierung durch Eingabe eines Passworts ist bereits eine veraltete und ineffiziente Methode zum Schutz Ihrer Konten. Nun gibt es viele Programme, mit deren Hilfe Sie Passwörter knacken können, indem Sie sie abholen. Weil Sie die Authentifizierung besser mit einem öffentlichen Schlüssel verwenden. Das heißt, es ist besser für Sie, die Authentifizierung mit dem öffentlichen Schlüssel zu verwenden und in der Konfigurationsdatei ein Ja neben dieses Element zu setzen.

Um den Server durch Bestätigen des öffentlichen Schlüssels zu betreten, müssen Sie ihn zuerst generieren. In Ubuntu ist es sehr praktisch, Schlüssel zu generieren, da Sie keine herunterladen müssen zusätzliche Programme  - es reicht aus, im Terminal ssh-keygen zu punkten. Danach erscheint eine Meldung mit Informationen zum Speicherort des generierten Schlüssels. Es befindet sich im .ssh-Ordner. Danach fordert das System Sie zur Eingabe des Kennworts auf. Es wird jedoch dringend empfohlen, es leer zu lassen. Andernfalls geben Sie es jedes Mal ein, wenn Sie einen Vorgang ausführen.

Im nächsten Schritt fügen Sie den generierten öffentlichen Schlüssel der vertrauenswürdigen Liste auf dem Server hinzu. Zuerst müssen Sie den öffentlichen Schlüssel kopieren. Es befindet sich in der PUB-Datei im Ordner .ssh. Kopieren Sie es und gehen Sie zum Server. Der Server sollte auch einen .ssh-Ordner haben. Wenn es nicht vorhanden ist, müssen Sie es selbst erstellen. Anschließend erstellen Sie mit dem Standard-Texteditor die Datei authorized_keys. Hier müssen Sie den öffentlichen Schlüssel eingeben. Danach können Sie den Server ohne Bestätigung betreten. Die Authentifizierung erfolgt in einem automatischen Hintergrundmodus, der sehr bequem und gleichzeitig sicher ist.

In der Regel endet hier das SSH-Protokoll! Es sei denn, Sie können Port 22 in einen anderen ändern.

Für den SSH-Server sowie für den SSH-Client verwenden wir das bekannte OpenSSH-Paket.

Installation

Installieren Sie OpenSSH mit dem Befehl:

sudo apt install ssh

Server-Setup

Bei der Installation wird der SSH-Server automatisch zum automatischen Laden hinzugefügt. Sie können das Starten, Stoppen oder Neustarten mit den Befehlen steuern:

sudo-Dienst ssh stop | start | restart

Die Hauptkonfigurationsdatei des SSH-Servers ist die Datei / etc / ssh / sshd_config, die nur für den Superuser lesbar oder bearbeitbar ist. Nach jeder Änderung dieser Datei müssen Sie den SSH-Server neu starten, um diese Änderungen anzuwenden.

Ein Beispiel für die Konfiguration von SSH-Servern in Ubuntu 16.04:

# Welche Ports, IP-Adressen und Protokolle hören wir auf Port 22 # "any" - any # # "inet" (nur IPv4) # # "inet6" (nur IPv6) # AddressFamily inet # Welche Schnittstellen / Netzwerke sind zulässig? # nicht angeben, dann alle Adressen abhören. #ListenAddress :: #ListenAddress 0.0.0.0 # Protokoll, für das SSH ausgeführt wird (empfohlene Sekunde) Protokoll 2 # Gibt die Datei an, die den privaten Hostschlüssel für das HostKey-Protokoll Version 2 / etc / ssh / ssh_host_rsa_key #HostKey / etc / ssh_host_dsa_key enthält #HostKey / etc / ssh / ssh_host_ecdsa_key #HostKey / etc / ssh / ssh_host_ed25519_key # Rechtefreigabe aktiviert für Sicherheit UsePrivilegeSeparation ja # Lebensdauer und Bitgröße für 4 # # Protokoll # 1 #KeyRegenerationInterval 3600 #ServerKeyBits AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # SyslogFacility AUTH # SILENT # # QUIET # # FATAL # # ERROR # # INFO # # VERBOSE # # DEBUG1 # # DEBUG2 # # DEBUG3 # LogL evel INFO # Authentifizierung: LoginGraceTime 45 # Root-Benutzerzugriff zulassen oder verweigern. # "Ja" - Superuser kann sich anmelden. # Das aktuelle globale Authentifizierungsschema wird angewendet. # “Ohne Passwort” - Superuser kann sich anmelden. # Die Passwortauthentifizierung wird deaktiviert. # „Nur Zwangsbefehle“ - der Superuser kann sich anmelden, # mit Authentifizierung basierend auf dem öffentlichen Schlüssel und # nur, wenn er den erforderlichen Befehl zur Ausführung überträgt. # Alle anderen Authentifizierungsmethoden für den Superuser werden blockiert. # “Nein” - der Superuser kann nicht mit ssh angemeldet werden. PermitRootLogin Nein StrictModes Ja # Gibt an, ob die reine RSA-Authentifizierung aktiviert ist. # Aktuell nur für Protokollversion 1. RSAAuthentication yes # Authentifizierung mit öffentlichem Schlüssel verwenden PubkeyAuthentication yes # Gibt die Datei an, die die öffentlichen Schlüssel enthält, mit denen # Benutzer authentifiziert werden. # AuthorizedKeysFile% h / .ssh / authorised_keys # Verhindert die Verwendung der Dateien .rhosts und.shosts # # im Authentifizierungsprozess basierend auf der Host-Überprüfung. IgnoreRhosts Ja # Für diese Arbeit benötigen Sie auch Hostschlüssel in / etc / ssh_known_hosts RhostsRSAAut Authentifizierung Nein # Ähnlich für Protokollversion 2 Aktiviert die Kennwortauthentifizierung (NICHT EMPFOHLEN). PermitEmptyPasswords no # Gibt an, ob die Authentifizierung vom Frage-Antwort-Typ zugelassen werden soll. ChallengeResponseAuthentication no # Gibt an, ob PasswordAuthentication no # zur Authentifizierung zugelassen ist es für die Authentifizierung #KerberosAuthentication keine # Wenn AFS aktiv ist und der Benutzer hat das TGT Kerberos 5, # erhalten Sie versuchen, ein AFS-Token für den Benutzer # erhalten Zugang zu Ihrem Home-Ordner haben. # Der Standardwert ist "Nein". #KerberosGetAFSToken no # Gibt an, was zu tun ist, wenn die Authentifizierung # über Kerberos fehlschlägt. Wenn # value = "yes" - wird das Kennwort mithilfe von # eines beliebigen zusätzlichen lokalen Autorisierungsmechanismus überprüft, z. B. - / etc / passwd. # Standardmäßig "Ja". #KerberosOrLocalPasswd yes # Gibt an, ob die Datei mit dem Cache für Benutzerticket # nach Abschluss der Sitzung automatisch gelöscht werden soll. # Standardmäßig "Ja". #KerberosTicketCleanup Ja # GSSAPI-Optionen # Gibt an, ob die Benutzerauthentifizierung auf # GSSAPI-Basis zulässig ist. Der Standardwert ist "no". #GSSAPIAuthentication no # Gibt an, ob die Benutzeautomatisch aufgerufen werden, wenn die Sitzung endet. # Standardeinstellung "yes" #GSSAPICleanupCredentials yes # Gibt an, ob die Umleitung des X11-Grafiksubsystems zulässig ist. # X11 Weiterleitung yes # Gibt die Nummer der ersten Anzeige an, die sshd in # als X11-Umleitung zur Verfügung steht. # X11DisplayOffset 10 # Gibt an, ob sshd / etc / motd-Informationen auf dem Bildschirm anzeigen soll, wenn sich ein Benutzer interaktiv anmeldet. PrintMotd no # Gibt an, ob sshd Datum und Uhrzeit der letzten Sitzung anzeigen soll, wenn sich der Benutzer interaktiv anmeldet. # Standardmäßig "Ja". PrintLastLog yes # Gibt an, ob das System TCP-Nachrichten an den Client senden muss, um die Verbindung aufrechtzuerhalten. TCPKeepAlive yes # Legt die Anzahl der Nachrichten an Clients fest, die sshd # in einer Zeile sendet, ohne eine Antwort vom # Client zu erhalten. Wenn der Schwellenwert erreicht ist und # der Client nicht geantwortet hat, wird der Client von sshd getrennt, indem er die # ssh-Sitzung unterbricht. #ClientAliveCountMax # Legt das Zeitintervall in Sekunden fest. Wenn während dieses Intervalls kein Datenaustausch mit dem Client stattfand, sendet sshd # eine Nachricht auf einem verschlüsselten Kanal und # fordert eine Antwort vom Client an. Der Standardwert ist 0, d. H. # Senden Sie solche Nachrichten nicht. Diese Direktive funktioniert nur für das Protokoll ssh2. #ClientAliveInterval # Gibt an, ob für die interaktive Sitzung # ein Login verwendet werden soll. Der Standardwert ist "Nein". #UseLogin no # Gibt die maximale Anzahl gleichzeitiger # nicht autorisierter sshd-Verbindungen an. # Außerdem können Sie ein frühes Zurücksetzen von Verbindungen festlegen, # indem Sie drei Werte als Parameter angeben, die durch # mit dem Doppelpunkt "start: rate: full" (beispielsweise: 3:30:30) getrennt sind. # sshd lehnt einen Verbindungsversuch mit einer Wahrscheinlichkeit von # "rate / 100" (d. h. in unserem Beispiel 30%) ab, wenn # bereits "start" (3) nicht autorisierte Verbindungen hat. # Die Wahrscheinlichkeit steigt linear an, und alle Verbindungsversuche werden abgelehnt, wenn die Anzahl der nicht autorisierten Verbindungen den Wert „full“ (30) erreicht. # MaxStartups 3:30:30 # Gibt an, welche Datei ein Textbanner enthält, das dem Benutzer VOR der # Authentifizierungsprozedur angezeigt wird. Die Option ist nur für das Protokoll ssh2 verfügbar. Banner /etc/issue.net # Erlaube Client, regionale Umgebungsvariablen zu übertragen AcceptEnv LANG LC_ * # Definiert und konfiguriert ein externes Subsystem (z. B. # des File Transfer Daemon - File Transfer Daemon). Subsystem sftp / usr / lib / openssh / sftp-server # Aktiviert die PAM-Schnittstelle (Pluggable Authentication Module # -Schnittstelle). Wenn diese Option auf "Ja" gesetzt ist, wird für alle Arten der # Authentifizierung neben der Behandlung des Sitzungsmoduls und des # PAM-Kontos die auf # basierende Authentifizierung verwendet request-response (ChallengeResponseAuthentication und # PasswordAuthentication) Weil Die Authentifizierungsnummer der Anforderungsantworten in PAM übernimmt normalerweise die gleiche Rolle wie die # Kennwortauthentifizierung. Sie sollten entweder # PasswordAuthentication oder # ChallengeResponseAuthentication deaktivieren. Beachten Sie, dass # bei aktivierter UsePAM-Direktive # sshd nicht für einen anderen Benutzer als root ausgeführt werden kann. # Der Standardwert ist "Nein". UsePAM ja

Sie können den obigen Text in Ihre eigene sshd_config kopieren und später verwenden.

Ein falsch konfigurierter SSH-Server stellt an sich schon eine große Sicherheitsanfälligkeit in der Systemsicherheit dar, da ein potenzieller Angreifer die Möglichkeit hat, nahezu unbegrenzten Zugriff auf das System zu erhalten. Darüber hinaus verfügt sshd über viele zusätzliche nützliche Optionen, die für mehr Benutzerfreundlichkeit und Sicherheit sorgen sollen.

Port, ListenAddress und AddressFamily

Diese drei Parameter bestimmen, welche Ports und Adressen Ihr Server auf eingehende Verbindungen wartet. Erstens ist es sinnvoll, wenn möglich, die Familie der verarbeiteten Adressen auf die tatsächlich verwendeten Adressen zu beschränken, d. H. Wenn Sie nur IPv4 verwenden, deaktivieren Sie IPv6 und umgekehrt. Dies kann beispielsweise mit dem Parameter AddressFamily durchgeführt werden (um IPv4 zu aktivieren und IPv6 zu unterbinden):

Zweitens ist es wünschenswert, den Standardport (22) zu ändern, an dem sshd hört. Dies ist auf die Tatsache zurückzuführen, dass zahlreiche Netzwerkscanner ständig versuchen, eine Verbindung zu Port 22 herzustellen und zumindest Zugriff erhalten, indem sie über ihre Benutzernamen / Kennwörter iterieren. Selbst wenn Sie die Kennwortauthentifizierung deaktiviert haben, werden die Protokolle durch diese Versuche blockiert und die Geschwindigkeit des SSH-Servers (in großer Anzahl) negativ beeinflusst. Wenn Sie den Standardport aus irgendeinem Grund nicht ändern möchten, können Sie verschiedene externe Dienstprogramme zur Bekämpfung von Brute-Forcern verwenden, z. B. fail2ban oder integrierte, z. B. MaxStartups.
  Sie können einen Port als absoluten Wert für alle Schnittstellen mit der Port-Direktive sowie einen bestimmten Wert für jede Schnittstelle mit der ListenAddress-Direktive festlegen.

Verbot des Fernzugriffs für den Superuser

Standardmäßig wird der Root-Zugriff durch ein Kennwort verweigert (Schlüssel möglich - möglich). Die Option PermitRootLogin ist auf "Ohne Kennwort" gesetzt4). Vorausgesetzt jedoch, dass der Benutzer in Ubuntu standardmäßig während der Installation des Systems hinzugefügt wird, hat er die Möglichkeit, alle Verwaltungsaufgaben über sudo zu lösen, um die Möglichkeit des root-Zugriffs auf das System über ssh zu schaffen. Es wird empfohlen, diese vollständig zu deaktivieren. Verwenden Sie diese Option oder verwenden Sie sie nur im Modus mit erzwungenen Befehlen.

Passwort-Authentifizierung

Die standardmäßig zulässige Kennwortauthentifizierung ist praktisch die einfachste Art, sich bei sshd anzumelden. Dies vereinfacht zum einen die Konfiguration und Verbindung neuer Benutzer (der Benutzer muss lediglich sein System-Login / Passwort kennen), zum anderen kann das Passwort immer abgerufen werden, und Benutzer vernachlässigen häufig die Erstellung komplexer und langer Passwörter. Spezielle Bots scannen ständig verfügbare SSH-Server aus dem Internet und versuchen, sich bei ihnen anzumelden, indem Benutzernamen / Kennwörter aus ihrer Datenbank entfernt werden. Es wird dringend empfohlen, die Kennwortauthentifizierung zu verwenden.

Wenn Sie aus irgendeinem Grund trotzdem die Kennwortauthentifizierung verwenden möchten, stellen Sie sicher, dass sich niemand mit einem leeren Kennwort anmelden kann. Setzen Sie dazu die Direktive PermitEmptyPasswords no

Protokolle SSH1 und SSH2

Wie bereits erwähnt, kann sshd mit den Protokollen SSH1 und SSH2 arbeiten. Die Verwendung von unsicherem SSH1 wird jedoch dringend empfohlen. Lass sshd nur mit funktionieren sSH-Protokoll2

Authentifizierung basierend auf SSH2-RSA-Schlüsseln

Die am meisten bevorzugte Authentifizierungsmethode ist die SSH2-basierte RSA-Schlüsselauthentifizierung. Bei dieser Methode generiert der Benutzer auf seiner Seite ein Schlüsselpaar, von dem ein Schlüssel geheim und der andere öffentlich ist. Der öffentliche Schlüssel wird auf den Server kopiert und dient zur Überprüfung der Identität des Benutzers. Weitere Informationen zum Erstellen eines Schlüsselpaares und zum Platzieren dieser Schlüssel auf dem Server finden Sie in der Beschreibung des SSH-Clients.

SSH-Client-Konfiguration

Der Schlüsseleintrag wird als der sicherste betrachtet. In den meisten Fällen ist diese Funktion auf der Serverseite aktiviert, sodass für die Verwendung keine Superuser-Rechte erforderlich sind. Generieren Sie auf dem Client-Computer den Schlüssel:

Ssh-Keygen

Wir erhalten ein Angebot, ein Kennwort einzugeben, um die Schlüsseldatei zu schützen (es ist nützlich, wenn die Datei in die falschen Hände gerät). Wir übertragen den öffentlichen Schlüssel mit dem Befehl auf den Server

Ssh-copy-id -i ~ / .ssh / id_rsa.pub benutzer_in_server @ serveradresse

Alles kannst du gehen.

Wenn ssh auf einem nicht standardmäßigen Port ausgeführt wird:

Ssh-copy-id -i ~ / .ssh / id_rsa.pub -p Ihr_Port_benutzer_Server_Server_Adresse

Es gibt zahlreiche Möglichkeiten, den Remote-Zugriff auf Ihren Computer über eine Internetverbindung zu organisieren. Einige von ihnen sind sehr komplex und werden nur von Fachleuten in einem professionellen Umfeld verwendet, während andere sehr einfach sind und sogar unerfahrene Benutzer sie beherrschen können. Wir haben bereits über mehrere Methoden geschrieben, insbesondere über das Programm TeamViewer und das VNC-Protokoll.

Die Nuancen der Arbeit mit dem SSH-Protokoll in Ubuntu.

In diesem Artikel werden wir über das sichere Verbindungsprotokoll SSH sprechen, das in der letzten Zeit fast zum Standard geworden ist linux-Benutzer. Es ist sehr zuverlässig, da es Verschlüsselung unterstützt und auch sehr einfach zu konfigurieren ist. Wir werden die Funktionen des SSH-Protokolls sowie die Server- und Client-Einstellungen kennenlernen. Sie benötigen lediglich einen Computer mit einem installierten Ubuntu-Betriebssystem und einer Internetverbindung.

Secure Shell, auch bekannt als SSH, ist ein spezielles Protokoll für Secure fernzugriff  zum Computer durch netzwerkverbindung. Das Protokoll bietet viele Funktionen, z. B. die Organisation einer sicheren Verbindung, das Starten einer Terminalbefehlszeile auf einem Computer, zu dem Sie eine Remote-Verbindung herstellen, das Starten von Anwendungen mit einer grafischen Benutzeroberfläche, die Dateiübertragung und die Bereitstellung privater Netzwerke.

Es gibt viele Dienstprogramme, die für die Verwaltung des Protokolls verantwortlich sind. Im Operationssaal ubuntu-System Das bekannteste ist Open SSH. Dies ist ein völlig kostenloses Produkt mit einer offenen Lizenz und einem vollständigen Satz der wichtigsten Funktionen. Der Client zur Verwaltung der SSH-Verbindung ist bereits in der Ubuntu-Distribution enthalten. Sie müssen lediglich die Serverkomponenten installieren und konfigurieren. Die Steuerung erfolgt durch Befehle im Terminal.


SSH in Ubuntu installieren

Da das Protokoll SSH-Client  Die Verwaltung ist ein allgemein anerkannter Standard. Sie können ihn mit einem kurzen Befehl in installieren terminal Ubuntu. Starten Sie dazu das Terminal selbst, indem Sie die Tastenkombination auf der Tastatur Strg + Alt + T drücken und dann den Befehl sudo apt-get install ssh verwenden. Nachdem Sie den Download vorbereitet haben, werden Sie gefragt, ob Sie fortfahren möchten. Schalten Sie die Tastatur auf Russisch und drücken Sie D. Am Computer mit Ubuntu-Installation  ssh wird in wenigen Sekunden abgeschlossen. Wenn Sie den automatischen Start beim Einschalten des Systems aktivieren möchten, verwenden Sie dazu den Befehl sudo systemctl enable sshd. Wenn Sie den Dienst später vom automatischen Start entfernen möchten, benötigen Sie den Befehl sudo systemctl disable sshd.


Jetzt können Sie überprüfen, wie alles funktioniert. Es genügt zu versuchen, eine Verbindung zum lokalen SSH-Server herzustellen: ssh localhost. Das Dienstprogramm fordert Sie zur Eingabe des Superuser-Kennworts auf und bietet auch an, die eingegebene Adresse zur Liste der zulässigen hinzuzufügen. Wenn alles wie erwartet funktioniert, wird eine kleine Nachricht angezeigt, die mit einer Benachrichtigung über das Datum der letzten Verbindung zur Adresse endet.

Jetzt können Sie eine Verbindung zu einem beliebigen Computer im Netzwerk herstellen, wenn Sie dessen IP-Adresse und Benutzernamen kennen. Dazu müssen Sie im Terminal den Befehl in folgendem Format eingeben:

sSH-Benutzername @ IP-Adresse

Wenn Sie sich beispielsweise mit der Adresse 132.14.25.10 an den Computer von Vasi Pupkin anschließen möchten, sieht der Befehl folgendermaßen aus:

ssh [email geschützt]

Konfigurieren Sie SSH in Ubuntu

Um korrekt und sicher mit einem SSH-Server arbeiten zu können, müssen Sie ihn auf eine bestimmte Weise konfigurieren. Dazu müssen Sie die Parameterdatei sshd_config im Verzeichnis / etc / ssh bearbeiten. Es ist bemerkenswert, dass es nicht durch einfaches Öffnen geändert werden kann dateimanager  in einem reinen Texteditor. Das System informiert Sie über unzureichende Rechte und Sie können Änderungen einfach nicht speichern. Daher benötigen Sie wieder ein Terminal und Kenntnisse über mehrere Befehle, die wir nun besprechen werden. Schauen wir uns die notwendigen Schritte an, um einen SSH-Server im Ubuntu-Betriebssystem einzurichten.



Was kann in den SSH-Einstellungen geändert werden



Minimale erforderliche Befehle



Fazit

Wie Sie sehen, ist es nicht schwer, das ssh-Protokoll auf einem Computer mit dem Betriebssystem Ubuntu einzurichten. Sie müssen nur einmal alles sorgfältig anpassen, indem Sie unser Programm verwenden ausführliche Anweisungenund Remote-Verbindungsfunktionen verwenden. Wenn Sie Fragen haben, fragen Sie sie in den Kommentaren.

SSH bedeutet "Secure Shell" und ist ein Netzwerkprotokoll, mit dem Sie Befehle sicher an einen Remote-Computer senden können. Standardmäßig im Betriebssystem Ubuntu-Server  12.04 ssh-server ist nicht installiert, obwohl ssh auf dem Server-System am häufigsten für die Remote-Verwaltung benötigt wird. In diesem Handbuch wird beschrieben, wie Sie einen SSH-Server unter Ubuntu Server 12.04 LTS installieren.

Die Installation wird über die Standard-Ubuntu-Repositorys durchgeführt. Sie benötigen eine konfigurierte Verbindung zum Internet.

Ubuntu Server 12.04 wird verwendet Öffnet den Serverwelche installiert werden. Führen Sie den folgenden Befehl aus:

sudo apt-get installiert openssh-server

Die Installation dauert nicht viel Zeit, möglicherweise einige Minuten, abhängig von der Verbindungsgeschwindigkeit zum Internet. Nachdem die Installation abgeschlossen ist, können Sie den sshd-Dienst sofort starten und den ssh-Server verwenden, da Alle OpenSSH-Einstellungen, die während der Installation installiert werden, haben ein hohes Maß an Sicherheit. Um den OpenSSH-Server zu starten, führen Sie Folgendes aus:

Möglicherweise möchten Sie jedoch Einschränkungen hinzufügen und die Sicherheit erhöhen. Dazu müssen Sie geringfügige Änderungen an den Einstellungen vornehmen. Wie bei fast allen Servern software, SSH-Einstellungen sind die Entsprechungen der Namen der Parameter und ihrer Werte in der Konfigurationsdatei (in diesem Fall / etc / ssh / sshd_config).

Erhöhen Sie die Sicherheit des SSH-Servers

Bevor Sie Änderungen an der Konfigurationsdatei / etc / ssh / sshd_config vornehmen, müssen Sie in diesem Fall eine Kopie davon erstellen. Beispielsweise können Sie die Datei in Ihren Basisordner kopieren:

sudo cp / etc / ssh / sshd_config ~

Nun können Sie mit dem Einrichten des SSH-Servers fortfahren. Öffnen Sie die Datei / etc / ssh / sshd_config in einem Texteditor, z. B. vi:

sudo vi / etc / ssh / sshd_config

Ändern Sie den SSH-Serverport

Der Standard-TCP / IP-Port, den der SSH-Server verwendet, ist 22. Da viele automatische Hackerprogramme das Netzwerk scannen, die offenen 22 Ports erkennen, versuchen sie, sich mithilfe des SSH-Protokolls zu verbinden und ein Kennwort zu erhalten. Falls der Benutzername und das Passwort einfach sind (was natürlich nicht akzeptabel ist), besteht das Risiko, dass sie abgeholt werden und der Angreifer in Ihr System eindringt. Wenn Sie den Port in den meisten Fällen auf einen anderen Port ändern, wird Ihr SSH-Server vor automatischen Hackersystemen verborgen. Um den Port zu ändern, suchen Sie in der Konfigurationsdatei die Zeile "Port 22" und ändern Sie den Portwert. Beispiel:

Beachten Sie, dass das Ändern des SSH-Ports möglicherweise nicht immer eine sehr gute Lösung ist, zum Beispiel, weil Sie sich zumindest die Portnummer merken müssen, wenn Sie versuchen, eine Verbindung zum Server herzustellen. Um sich vor Brute-Force-Passwörtern weiter zu schützen, verwenden Sie SSH-Schlüssel und keine Passwörter.

SSH-Root-Login verhindern

Durch das Verhindern des Root-Anmeldevorgangs über ssh wird auch die Sicherheit etwas verbessert. Wenn ein Angreifer ein Kennwort als Root-Benutzer auswählen kann, erhält der Angreifer sofort die vollständige Kontrolle über das System. Um diese Einstellung durchzuführen, suchen Sie den Parameter "PermitRootLogin" und ändern Sie den Wert von "Ja" bis "Nein":

Erlauben Sie die ssh-Anmeldung nur bestimmten Benutzern

Eine andere Möglichkeit zur Erhöhung der Sicherheit besteht darin, die Anzahl der Benutzer zu begrenzen, die sich über ssh anmelden dürfen. Dies kann mit der Direktive "AllowUsers" erfolgen. Wenn es in der Konfigurationsdatei vorhanden ist, dürfen sich nur die darin beschriebenen Benutzer anmelden. Sie möchten beispielsweise nur dem Benutzer "howtoit" erlauben, sich über ssh anzumelden, indem Sie am Ende der Datei / etc / ssh / sshd_config eine Zeile hinzufügen:

Wenn Sie mehrere Benutzer zur Liste hinzufügen möchten, fügen Sie diese durch ein Leerzeichen getrennt hinzu. Beispiel:

AllowUsers wie man einen Benutzer benutzt

Nachdem Sie die Konfiguration abgeschlossen haben, speichern und schließen Sie die Konfigurationsdatei und starten Sie den SSH-Server erneut:

Jetzt können Sie von einem anderen Rechner aus mit dem ssh-Client eine Verbindung zu Ihrem Ubuntu Server 12.04-System herstellen.

Wir haben herausgefunden was Ssh  Und was sind die Vorteile, wir haben auch das einfachste Beispiel umgesetzt Ssh-server und Client.

Heute werde ich über mehr sprechen detaillierte Einstellung Ssh-server.

Wie der berühmte Satz "in Linux  alles ist eine datei ", also konfigurieren Ssh-server ist notwendig und ausreichend, um einen zu bearbeiten konfigurationsdatei. Sein voller Weg ist / etc / ssh / sshd_config. Zum Bearbeiten öffnen Sie diese Datei mit Superuser-Rechten mit einem beliebigen Texteditor.

Vor dem Bearbeiten machen wir nur für den Fall backup  Datei:

Sudo cp /etc/ssh/sshd_config(,.bak)

Nun sehen wir uns den Inhalt an:

Sudanano / etc / ssh / sshd_config

Nach jeder Änderung dieser Datei ist ein Neustart erforderlich ssh-server, um unsere Änderungen anzuwenden.

Wie wir sehen können, gibt es hier einige Parameter, mit denen wir uns schrittweise beschäftigen werden.

Port

Hier wird festgelegt, welchen Port unser Server abhören soll. Standardmäßig hört es zu 22   der Hafen TCP / IP. Eine interessante Tatsache ist, dass Sie mehrere Ports angeben können. Zum Beispiel:

ListenAddress

Beschränkung der Autorisierung durch Schnittstelle (ListenAddress)

Die allgemeine Ansicht der Einstellungen kann wie folgt geschrieben werden:

ListenAddress-Host | IPv4_addr | IPv6_addr ListenAddress: Port

Gibt die Netzwerkadresse an, an der der Server überwacht wird.
  Wenn der Server über mehrere Netzwerkschnittstellen verfügt, die für die Verwendung verschiedener konfiguriert sind IPadressen können Sie den Zugriff auf diesen Parameter einschränken.
  Beispielsweise auf dem Server Folgendes 4   Netzwerkschnittstelle:

Eth0 - 192.168.0.1 eth1 - 192.168.0.2 eth2 - 192.168.0.3 eth3 - 192.168.0.4

Default   ssh-der Server wartet auf eine Verbindung   IPadressen. Wenn Sie möchten, dass sich Benutzer nur an Schnittstellen anmelden 2   und 3 , das solltest du tun:

ListenAddress 192.168.0.2 ListenAddress 192.168.0.3

Hier können Sie auch den Port angeben. Zum Beispiel:

ListenAddress 192.168.0.2:222

Wenn der Port nicht angegeben ist, ssh  werde auf diese Adresse hören und
  an dem in der Option angegebenen Port Port  Wenn Sie verwenden werden ListenAddress  ohne den Port anzugeben, dann die Option Port  muss der Option vorangehen ListenAddress.  Wenn überhaupt nicht angegeben ListenAddress,  dann überwacht der Server standardmäßig alle lokalen Adressen.

Adressfamilie

Gibt an, welche Familie IP  Adressen müssen vom Dienst verwendet werden   ssh. Mögliche Optionen:
"Any"  - beliebig
"Inet"  (nur IPv4)
"Inet6"  (nur IPv6)
  Default - "Any".

Es ist sinnvoll, wenn möglich, die Familie der verarbeiteten Adressen auf die tatsächlich verwendeten Adressen zu beschränken, d. H. Wenn Sie nur verwenden IPv4  - deaktivieren Ipv6, umgekehrt.

Zum Beispiel zu erlauben IPv4  und verbieten IPv6:

AdresseFamily inet

Protokoll

ssh  kann mit Protokollen arbeiten Ssh1  und Ssh2.  Darüber hinaus ist die Verwendung von unsicher Ssh1  sehr zu empfehlen. Machen ssh  Nur mit Protokoll arbeiten Ssh2  kann so sein:

Protokoll 2

PermitRootLogin

Die Möglichkeit der Autorisierung unter dem Superuser

Standardmäßig gehen Sie zu remote-Server  von Benutzer wurzel  niemand verbietet. Aber es ist nicht ganz sicher. Anstelle dessen ist es korrekter, sich als Benutzerkonto anzumelden. konto  und erhöhen Sie Ihre Privilegien mit dem Befehl „Su -“,  entweder verwenden   "Sudo".

Wenn in Ihrer Organisation mehrere Systemadministratoren vorhanden sind, die sich alle unter dem Superuser mit dem Server verbinden, ist es nicht immer möglich, herauszufinden, welcher Administrator sich auf dem Server befindet. Daher nach dem Deaktivieren der Berechtigungsfunktion direkt unter dem Benutzer wurzel systemadministratoren  Zuerst melden sie sich mit ihrem Konto an und erhalten erst danach die Superuser-Privilegien. Dies erleichtert die Überprüfung des Servers und der Aktionen, die Systemadministratoren ausführen.
  Um die obige Funktion zu deaktivieren, deaktivieren Sie den Parameter PermitRootLogindurch die Einstellung des Wertes "Nein".

PermitRootLogin Nr

PermitEmptyPasswords

Leere Passwörter blockieren

PermitEmptyPasswords Nr

AllowUsers, AllowGroups

Standardmäßig kann sich jeder Benutzer des Servers anmelden. Es ist besser, die Anzahl der Benutzer zu beschränken, die Zugriff haben dürfen ssh
  Dies kann nützlich sein, wenn Sie eine Anzahl von Benutzern des Systems erstellen, jedoch den Zugriff durch zulassen ssh  will nur einiges.

Dazu in der Konfigurationsdatei sshd_config  sollte bestimmte Benutzer hinzufügen, die auf dem Server vorhanden sind. Im folgenden Beispiel sind dies Benutzer. john Peter  und michael  die sich am Server anmelden dürfen. Benutzernamen werden durch Leerzeichen getrennt.

AllowUsers John Peter Michael

Wenn Sie alle Benutzer hinzufügen, die in einer definierten Gruppe vorhanden sind, sollten Sie dies wie im nachstehenden Beispiel angegeben angeben. Benutzergruppen, die sich am Server anmelden dürfen, werden ebenfalls durch ein Leerzeichen getrennt.

AllowGroups-Entwickleradministratoren

DenyUsers, DenyGroups

Im Gegensatz zu den Parametern, die Zugriff auf bestimmte Benutzer oder Gruppen ermöglichen, können Sie auch Benutzer oder Gruppen angeben, denen der Zugriff auf den Server verweigert wird.
  Fügen Sie dazu die Konfigurationsdatei hinzu sshd_config  Parameter DenyUsers, in dem durch den Platz diejenigen Benutzer angezeigt werden, denen der Zugriff auf den Server verweigert wird. In dem Beispiel unten ist dies ein System apache  sowie sehr real boris.

DenyUsers Apache Boris

Es gibt auch einen Parameter, mit dem Sie den Zugriff nicht einzelnen Benutzern, sondern ganzen Gruppen mit Benutzern verweigern können. Dies ist ein Parameter. DenyGroups  und die Gruppen sind auch durch ein Leerzeichen getrennt.

DenyGroups Marketing-Hacker

Beachten Sie, dass Sie eine Kombination aus Parametern zum Verbieten und Aktivieren verwenden können: DenyUsers, AllowUsers, DenyGroupsund AllowGroups.

LoginGraceTime

Wenn Sie versuchen, sich bei anzumelden ssh  zu dem Server, den Sie haben 2   Minuten, um Benutzername und Passwort einzugeben. Wenn Sie dies nicht tun, wird die Verbindung zum Server getrennt. 2   Das Warten auf Autorisierungsdaten dauert einige Minuten. Sollte auf begrenzt sein 1   Minuten oder sogar bis 30   Sekunden

Ändern Sie dazu den Parameter LoginGraceTime  durch Bearbeiten der Datei sshd_config  und dort die benötigte Zeit angeben. Im Beispiel unten ist es 1   eine Minute

LoginGraceTime 1m

ClientAliveInterval

Trennung ohne Aktivität in der Shell

Nachdem Sie sich erfolgreich beim Server angemeldet haben, möchten Sie möglicherweise sicherstellen, dass Sie die Verbindung nach einiger Zeit automatisch trennen können. In dieser Zeit haben Sie keine Aktionen in der Konsole ausgeführt. Dies wird normalerweise als Inaktivitätszeit bezeichnet.

Verwenden Bash  Sie können dies erreichen, indem Sie die Umgebungsvariable ändern TMOUT.

In Öffnetsh  Dies wird durch eine Kombination von Parametern erreicht ClientAliveCountMax  und ClientAliveInterval  in der Konfigurationsdatei sshd_config.

  • ClientAliveCountMax  - gibt den maximalen Betrag an checkalive  gesendete Nachrichten ssh-server, für den er keine Antwort erhält ssh-kunde Der Standardwert ist 3.
  • ClientAliveInterval  - zeigt das Timeout (Timeout) in Sekunden an. Nach der angegebenen Zeit ssh-server wird senden checkalive  Nachricht an den Kunden und erwartet eine Antwort von ihm (Antwort). Der Standardwert ist 0,   der Server sendet also keine Nachrichten zur Verifizierung.

Zu deinem   ssh-der Client wurde nach dem Verbindungsaufbau automatisch getrennt 10   Minuten ( 600   Sekunden), sollten Sie Änderungen an der Konfigurationsdatei vornehmen sshd_config  wie folgt:

ClientAliveInterval 600 ClientAliveCountMax 0

Das ist alles für jetzt. Grundsätzlich denke ich, dass dies für ein gutes Setup und bessere Sicherheit ausreicht. sshIm nächsten Teil werden wir uns einige weitere Parameter ansehen.   ssh-server und vielleicht können wir schlüsselbasierte Authentifizierung diskutieren.

Viel Glück an alle und bis bald auf unserem Blog!

Fortsetzung des Themas:
Betriebssysteme

Um ihre auf einem Laptop gespeicherten Daten zu schützen, legen Benutzer Kennwörter fest. Aber manchmal gibt es eine so unangenehme Situation wie die Unfähigkeit, sich an den Code zu erinnern, ...