Technologieaustausch

Cloud Computing [Phase 1 (29)] Fernzugriff und -steuerung

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. SSH-Fernverwaltung

1.1. SSH-Protokoll (Secureshell).

  • ist ein sicheres Kanalprotokoll
  • Kommunikationsdaten werden für Fernverwaltungsfunktionen verschlüsselt
  • Das SSH-Protokoll verschlüsselt die Datenübertragung zwischen den kommunizierenden Parteien, einschließlich des beim Anmelden des Benutzers eingegebenen Benutzerkennworts.
  • Ein Sicherheitsprotokoll, das auf der Anwendungsschicht und der Transportschicht basiert.
  • SSH-Client<--------------------------------->SSH-Server
    Die Datenübertragung erfolgt verschlüsselt, um Informationslecks zu verhindern
    Die Datenübertragung wird komprimiert, was die Übertragungsgeschwindigkeit erhöht

1.2, openssh

Dienstname: sshd
Server-Hauptprogramm: /usr/sbin/sshd
Serverkonfigurationsdatei: /etc/ssh/sshd config

SSH-Client: Putty, Xshell, CRT, MobaXterm, FinalShell
SSH-Server: OpenSSH

SSH-Server: Standardmäßig wird TCP-Port 22 verwendet und die Sicherheitsprotokollversion ist sshv2. Zusätzlich zu 2 gibt es auch 1 (mit Lücken).

Der SSH-Server umfasst hauptsächlich zwei Dienstfunktionen: SSH-Remote-Link und SFTP-Dienst.

Funktion: Der SSHD-Dienst verwendet das SSH-Protokoll, um eine Fernsteuerung durchzuführen oder Dateien zwischen Computern zu übertragen.
Im Vergleich zur vorherigen Verwendung von Telnet zum Übertragen von Dateien ist es viel sicherer, da Telnet eine Klartextübertragung und SSH eine verschlüsselte Übertragung verwendet.

OpenSSH ist ein Open-Source-Softwareprojekt, das das SSH-Protokoll implementiert und für verschiedene UNIX- und Linux-Betriebssysteme geeignet ist. Auf dem Centos 7-System sind standardmäßig OpenSSH-bezogene Softwarepakete installiert, und der SSHD-Dienst wird hinzugefügt, um beim Booten automatisch zu starten.

[Version 7 weist jedoch Probleme und Schwachstellen auf und muss aktualisiert werden. Die neueste Version ist derzeit 9.8]

Version ansehen:ssh -V


Führen Sie den Befehl „systemctl start sshd“ aus, um den SSHD-Dienst zu starten

Sowohl ssh_config als auch sshd_config sind Konfigurationsdateien für den SSH-Server. Der Unterschied zwischen den beiden besteht darin, dass erstere eine Konfigurationsdatei für den Client und letztere eine Konfigurationsdatei für den Server ist.

SSH wird grundsätzlich zur Fernverwaltung von Linux-Systemen verwendet. Der Grund ist ganz einfach: Übertragungsmethoden wie Telnet und FTP übertragen Benutzerauthentifizierungsinformationen im Klartext, was von Natur aus unsicher ist und die Gefahr des Abhörens des Netzwerks birgt. SSH (Secure Shell) ist derzeit zuverlässiger.
Ist ein Protokoll, das Sicherheit für Remote-Anmeldesitzungen und andere Netzwerkdienste bietet. Durch die Verwendung des SSH-Protokolls kann ein Informationsverlust während der Fernverwaltung wirksam verhindert werden. Alle übertragenen Daten können über SSH verschlüsselt werden, und auch DNS-Spoofing und IP-Spoofing können verhindert werden.
 

1.3. SSH-Remote-Anmeldemethode

1.3.1. Anmeldemethode eins
ssh [Benutzername des Remote-Hosts] @[Hostname oder IP-Adresse des Remote-Servers] -p Port

Wenn Sie den Benutzernamen verwenden möchtenlisiDie mit der IP-Adresse verbundene Identität ist192.168.1.100Server, und der SSH-Dienst des Servers wird auf dem Port ausgeführt22, sollten Sie den folgenden Befehl verwenden:

当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。

beigefügt

Host-Mapping

1.3.2. Anmeldemethode zwei
ssh -l [Benutzername des Remote-Hosts] [Hostname oder IP-Adresse des Remote-Servers] -p Port
-l: Option -l, gibt den Anmeldenamen an.
-p: Die Option -p gibt den Anmeldeport an (wenn der Serverport nicht der Standardport ist, müssen Sie -p verwenden, um den Anmeldeport anzugeben.)

(nicht viel genutzt)

Abfrage zum öffentlichen Schlüssel

Anfrage auf Client

Der Server fragt seinen eigenen öffentlichen Schlüssel ab

Hinweis: Das System speichert die Informationen des Remote-Hosts nicht, wenn er sich zum ersten Mal am Server anmeldet. Um die Identität des Hosts zu bestätigen, wird der Benutzer gefragt, ob er die Verbindung fortsetzen möchte in. Zu diesem Zeitpunkt schreibt das System die Remote-Serverinformationen in $HOME im Home-Verzeichnis des Benutzers. Wenn Sie sich das nächste Mal anmelden, werden Sie nicht erneut dazu aufgefordert, da die Hostinformationen gespeichert sind .

OpenSSH überprüft den öffentlichen Schlüssel, wenn Sie das nächste Mal auf denselben Computer zugreifen. Wenn die öffentlichen Schlüssel unterschiedlich sind, gibt OpenSSH eine Warnung aus, um Sie vor Angriffen wie DNS-Hijack zu schützen.
Lösung
1. Wenn Sie sich per SSH beim Remote-Host anmelden, fügen Sie die Option „-o StrictHostKeyChecking=no“ wie folgt hinzu:

ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx

2. Eine Möglichkeit, diese Eingabeaufforderung vollständig zu entfernen, besteht darin, die Konfiguration in der Datei /etc/ssh/ssh_config (oder $HOME/.ssh/config) zu ändern und die folgenden zwei Konfigurationszeilen hinzuzufügen:
StrictHostKeyChecking nein
UserKnownHostsFile /dev/null

Aber es ist am besten, nichts hinzuzufügen

2. Dienstkonfiguration und -verwaltung

Allgemeiner Konfigurationsserver

vim /etc/ssh/sshd_config

Der Port muss geändert werden, um zu verhindern, dass andere ihn gewaltsam knacken.

ListenAddress legt die an den SSHD-Server gebundene IP-Adresse fest. 0.0.0.0 bedeutet, dass alle Adressen überwacht werden
Sicherheitsvorschlag: Wenn der Host keinen SSH-Zugriff vom öffentlichen Netzwerk benötigt, können Sie die Abhöradresse in die interne Netzwerkadresse ändern. Dieser Wert kann als lokale IP-Adresse oder als alle Adressen geschrieben werden, d. h. 0.0.0.0 steht für alle IPs.

Wenn sich jemand über SSH am System anmeldet, zeichnet SSH Informationen auf. Der Typ der aufzuzeichnenden Informationen ist AUTHPRIV. Das sshd-Dienstprotokoll wird unter /var/log/secure gespeichert.

Um festzustellen, ob die Quelle des Clients normal und legitim ist, wird im Allgemeinen DNS verwendet, um den Hostnamen des Clients zu überprüfen. Bei Verbindungen innerhalb des Intranets ist diese Basis jedoch normalerweise auf „Nein“ eingestellt, sodass die Verbindungsgeschwindigkeit nicht stimmt sei schneller.
Hinweis: Deaktivieren Sie die umgekehrte DNS-Auflösung, um die Antwortgeschwindigkeit des Servers zu verbessern

Sowie einige Sicherheitskonfigurationen und Sicherheitsoptimierungen

PermitRootLogin Ob die Root-Anmeldung zugelassen werden soll, ist standardmäßig zulässig, es wird jedoch empfohlen, sie auf „Nein“ zu setzen.Ein echter Produktionsumgebungsserver erlaubt keine direkte Anmeldung mit dem Root-Konto., dürfen sich nur normale Benutzer anmelden. Sie müssen den Root-Benutzer verwenden und dann zum Root-Benutzer wechseln.

PasswortAuthentifizierung Ja
Natürlich ist eine Passwortüberprüfung erforderlich, daher können Sie hier „Ja“ schreiben oder auf „Nein“ setzen. Auf echten Produktionsservern ist für einige Einstellungen je nach Sicherheitsniveau keine Passwortanmeldung erforderlich, und Sie können sich über die Authentifizierung anmelden Schlüssel.

PermitEmptyPasswords NEIN
Gibt an, ob sich Benutzer mit leeren Passwörtern anmelden dürfen. Die Standardeinstellung ist „Nein“. Die Anmeldung mit leeren Passwörtern ist nicht zulässig.

PrintLastLog ja
Zeigt die zuletzt angemeldeten Informationen an! Die Standardeinstellung ist „Ja“.

MaxAuthTries 6
Gibt die maximale Anzahl zulässiger Authentifizierungen pro Verbindung an. Der Standardwert ist 6.
Wenn die Anzahl der fehlgeschlagenen Authentifizierungen die Hälfte dieses Wertes überschreitet, wird die Verbindung zwangsweise getrennt und es werden zusätzliche Fehlerprotokollmeldungen generiert.
Standardmäßig 3 Mal

Pam-Modul aktivieren

Kommentar

Schwarz-Weiß-Liste

Benutzer zulassen
Wenn Sie nur bestimmten Benutzern die Anmeldung erlauben oder verbieten möchten, können Sie die Konfiguration „AllowUsers“ oder „DenyUsers“ verwenden. Die Verwendung beider ist ähnlich (achten Sie darauf, sie nicht gleichzeitig zu verwenden).
Konfigurieren SieAllowUsers
Wenn beispielsweise nur die Benutzer zhangsan und wangwu sich bei anderen (lisi) Benutzern anmelden dürfen

Hinzufügen zu
AllowUsers [email protected] wangwu

3. Melden Sie sich mit dem Schlüssel an

In 3 Schritte unterteilt:

Der Client generiert den Schlüssel (öffentlicher Schlüssel und privater Schlüssel) im Xshell-Client;

Platzieren Sie den öffentlichen Schlüssel in der Datei ~/.ssh/authorized_key des Linux-Servers.

Konfigurieren Sie den SSH-Client (Xshell-Client) für die Anmeldung mit einem Schlüssel

3.1. Schlüsselanmeldung in xshell

1. Generieren Sie zunächst den öffentlichen Schlüssel im xshell-Tool

Passen Sie die Länge von 2048 an, führen Sie einfach den nächsten Schritt aus, Sie können den Namen und das Passwort festlegen

Nach Abschluss der Generierung gibt es einen öffentlichen Schlüssel. Speichern Sie ihn

Dateien mit der Endung pub

Dann öffnen Sie unsere Linux-Maschine

Wechseln Sie in das Verzeichnis ~/.shh (Sie müssen zum ersten Mal ssh ohne Passwort ausführen, da sonst möglicherweise keine .shh-Datei vorhanden ist)

Öffentlichen Schlüssel hochladen

Natürlich müssen Sie es auch in den Standardnamen „authorized_keys“ ändern

Erstellen Sie ein Backup des privaten Schlüssels

Passwortfreies Login

Anmeldung erfolgreich

3.1.1. Der Anmeldevorgang mit einem Schlüssel

3.2. Schlüssel-Login unter Linux generieren

Bereiten Sie ein Sprungbrett vor

Die Option „-t“ des Befehls ssh-keygen wird verwendet, um den Algorithmustyp zum Generieren öffentlicher und privater Schlüssel anzugeben.

ssh-Kopie-ID [email protected]

verwendenssh-copy-idWerkzeug: Dadurch wird der Kopiervorgang des öffentlichen Schlüssels automatisch durchgeführt. Dieser Befehl übernimmt automatisch das Kopieren Ihresid_rsa.pubDer Inhalt des öffentlichen Schlüssels wird an den Remote-Server angehängt~/.ssh/authorized_keysin der Datei.

 Passwort eingeben: Da Sie zum ersten Mal auf diese Weise eine Verbindung zu einem Remote-Server herstellen, werden Sie möglicherweise aufgefordert, das Passwort des Remote-Root-Benutzers einzugeben.

Anmeldung über Springboard 79 19

ssh [email protected]

Berechtigungen ändern

vim /etc/ssh/sshd_config

In den Zeilen 17, 43, 65

Starten Sie den SSHD-Dienst neu

versuchen Sie es erneut

Port angeben, Erfolg

4. Aktualisieren Sie den Linux-Server auf die neueste Version von openssh9.8

Inhalte werden in Dateiressourcen migriert

Der DSA-Signaturalgorithmus ist standardmäßig deaktiviert

Dateien vorbereiten

Offizielle OpenSH-WebsiteOpenSSH: Versionshinweise

Da für OpenSSH9.8P1 ​​eine OpenSSL-Version größer oder gleich 1.1.1 erforderlich ist, muss OpenSSL aktualisiert und installiert werden.

Offizielle WebsiteRelease OpenSSL 1.1.1v · openssl/openssl · GitHub