Partage de technologie

Cloud Computing [Phase 1 (29)] Accès et contrôle à distance

2024-07-12

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

1. Gestion à distance SSH

1.1. protocole ssh (secureshell)

  • est un protocole de canal sécurisé
  • Les données de communication sont cryptées pour les fonctions de gestion à distance
  • Le protocole SSH crypte la transmission des données entre les interlocuteurs, y compris le mot de passe utilisateur saisi lors de la connexion de l'utilisateur.
  • Un protocole de sécurité basé sur la couche application et la couche transport.
  • Client SSH<--------------------------------->Serveur SSH
    La transmission des données est cryptée pour éviter les fuites d'informations
    Le transfert de données est compressé, ce qui augmente les vitesses de transfert

1.2, openssh

Nom du service : sshd
Programme principal du serveur : /usr/sbin/sshd
Fichier de configuration du serveur : /etc/ssh/sshd config

Client SSH : Putty, Xshell, CRT, MobaXterm, FinalShell
Serveur SSH : OpenSSH

Serveur SSH : Par défaut, le port TCP 22 est utilisé, et la version du protocole de sécurité est sshv2. En plus du 2, il y en a aussi 1 (avec des failles).

Le serveur ssh comprend principalement deux fonctions de service : la liaison distante ssh et le service sftp.

Fonction : Le service SSHD utilise le protocole SSH pour effectuer un contrôle à distance ou transférer des fichiers entre ordinateurs.
Par rapport à l'utilisation de Telnet pour transférer des fichiers auparavant, cette méthode est beaucoup plus sûre car Telnet utilise la transmission en texte clair et SSH utilise la transmission cryptée.

OpenSSH est un projet logiciel open source qui implémente le protocole SSH et convient à divers systèmes d'exploitation UNIX et Linux. Le système Centos 7 a des packages logiciels liés à openssh installés par défaut et le service sshd est ajouté pour démarrer automatiquement au démarrage.

[Cependant, la version 7 présente des problèmes et des vulnérabilités et doit être mise à niveau. La dernière version est actuellement la 9.8.]

Voir la version :ssh-V


Exécutez la commande "systemctl start sshd" pour démarrer le service sshd

ssh_config et sshd_config sont tous deux des fichiers de configuration pour le serveur ssh. La différence entre les deux est que le premier est un fichier de configuration pour le client et le second est un fichier de configuration pour le serveur.

SSH est essentiellement utilisé pour gérer à distance les systèmes Linux. La raison est très simple : les méthodes de transmission telles que Telnet et FTP transmettent les informations d'authentification des utilisateurs en texte clair, ce qui est intrinsèquement dangereux et présente un risque d'écoute clandestine du réseau. SSH (Secure Shell) est actuellement plus fiable.
Est un protocole conçu pour assurer la sécurité des sessions de connexion à distance et d'autres services réseau. L'utilisation du protocole SSH peut empêcher efficacement les fuites d'informations lors de la gestion à distance. Toutes les données transmises peuvent être cryptées via SSH, et l'usurpation d'identité DNS et IP peut également être évitée.
 

1.3. Méthode de connexion à distance SSH

1.3.1. Première méthode de connexion
ssh [nom d'utilisateur de l'hôte distant] @[nom d'hôte ou adresse IP du serveur distant] -p port

Si vous souhaitez utiliser le nom d'utilisateurlisiL'identité liée à l'adresse IP est192.168.1.100serveur et le service SSH du serveur s'exécute sur le port22, vous devez utiliser la commande suivante :

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

ci-joint

mappage d'hôte

1.3.2. Deuxième méthode de connexion
ssh -l [nom d'utilisateur de l'hôte distant] [nom d'hôte ou adresse IP du serveur distant] -p port
-l : option -l, spécifie le nom de connexion.
-p : option -p, spécifie le port de connexion (lorsque le port du serveur n'est pas celui par défaut, vous devez utiliser -p pour spécifier le port de connexion)

(pas beaucoup utilisé)

Requête sur la clé publique

Requête sur le client

Le serveur interroge sa propre clé publique

Remarque : Le système n'enregistre pas les informations de l'hôte distant lors de la première connexion au serveur. Afin de confirmer l'identité de l'hôte, il sera demandé à l'utilisateur s'il doit poursuivre la connexion. Entrez oui, puis connectez-vous. Dans. À ce stade, le système écrira les informations du serveur distant dans $HOME dans le fichier /.ssh/known_hosts du répertoire personnel de l'utilisateur. La prochaine fois que vous vous connecterez, car les informations sur l'hôte sont enregistrées, vous ne serez plus invité. .

OpenSSH vérifiera la clé publique la prochaine fois que vous accéderez au même ordinateur. Si les clés publiques sont différentes, OpenSSH émettra un avertissement pour vous protéger des attaques telles que le détournement DNS.
Solution
1. Lorsque vous vous connectez à l'hôte distant via ssh, ajoutez l'option « -o StrictHostKeyChecking=no », comme suit :

ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx

2. Un moyen de supprimer complètement cette invite consiste à modifier la configuration dans le fichier /etc/ssh/ssh_config (ou $HOME/.ssh/config) et à ajouter les deux lignes de configuration suivantes :
StrictHostKeyChecking non
Fichier d'hôtes connus de l'utilisateur /dev/null

Mais il vaut mieux ne pas ajouter

2. Configuration et gestion des services

Serveur de configuration générale

vim /etc/ssh/sshd_config

Le port doit être changé pour éviter que d'autres ne le cassent violemment.

ListenAddress définit l'adresse IP liée au serveur SSHD, 0.0.0.0 signifie écouter toutes les adresses
Suggestion de sécurité : si l'hôte n'a pas besoin d'un accès SSH depuis le réseau public, vous pouvez remplacer l'adresse d'écoute par l'adresse du réseau interne. Cette valeur peut être écrite sous la forme de l'adresse IP locale ou de toutes les adresses, c'est-à-dire que 0.0.0.0 représente toutes. IP.

Lorsque quelqu'un se connecte au système via SSH, SSH enregistrera les informations. Le type d'informations à enregistrer est AUTHPRIV. Le journal du service sshd est stocké dans : /var/log/secure.

De manière générale, afin de déterminer si la source du client est normale et légitime, DNS sera utilisé pour vérifier le nom d'hôte du client. Cependant, généralement lors de l'interconnexion au sein de l'intranet, cette base est définie sur non, donc la vitesse de connexion sera définie. Être plus rapide.
Remarque : désactivez la résolution inversée DNS pour améliorer la vitesse de réponse du serveur.

Ainsi que certaines configurations de sécurité et réglages de sécurité

PermisRootLogin Que ce soit pour autoriser la connexion root, la valeur par défaut est autorisée, mais il est recommandé de la définir sur non.Un véritable serveur d'environnement de production ne permet pas au compte root de se connecter directement., seuls les utilisateurs ordinaires sont autorisés à se connecter. Vous devez utiliser l'utilisateur root, puis passer à l'utilisateur root.

Mot de passeAuthentification Oui
La vérification du mot de passe est bien sûr requise, vous pouvez donc écrire oui ici, ou vous pouvez la définir sur non. Sur les serveurs de production réels, selon les différentes exigences de niveau de sécurité, certains paramètres ne nécessitent pas de connexion par mot de passe et vous pouvez vous connecter via l'authentification. clé.

Permettre des mots de passe vides Non
S'il faut autoriser les utilisateurs avec des mots de passe vides à se connecter. La valeur par défaut est non. La connexion avec des mots de passe vides n'est pas autorisée.

PrintLastLog oui
Afficher les informations de la dernière connexion ! La valeur par défaut est oui

MaxAuthTries 6
Spécifie le nombre maximum d'authentifications autorisées par connexion. La valeur par défaut est 6.
Si le nombre d'authentifications échouées dépasse la moitié de cette valeur, la connexion sera déconnectée de force et des messages de journal d'échec supplémentaires seront générés.
Par défaut 3 fois

Activer le module pam

Commentaire

Liste noire et blanche

Autoriser les utilisateurs
Lorsque vous souhaitez autoriser ou interdire uniquement la connexion de certains utilisateurs, vous pouvez utiliser la configuration AllowUsers ou DenyUsers. L'utilisation des deux est similaire (attention à ne pas les utiliser en même temps).
ConfigurerAutoriser les utilisateurs
Par exemple, si seuls les utilisateurs Zhangsan et Wangwu sont autorisés à se connecter à d'autres utilisateurs (lisi)

Ajouter à
Autoriser les utilisateurs [email protected] wangwu

3. Connectez-vous à l'aide de la clé

Divisé en 3 étapes :

Le client génère la clé (clé publique et clé privée) dans le client Xshell ;

Placez la clé publique dans le fichier ~/.ssh/authorized_key du serveur Linux ;

Configurez le client ssh (client Xshell) pour vous connecter à l'aide d'une clé

3.1. Connexion par clé dans xshell

1. Générez d’abord la clé publique dans l’outil xshell

Ajustez la longueur de 2048, passez simplement à l'étape suivante, vous pouvez définir le nom et le mot de passe

Une fois la génération terminée, il y aura une clé publique, enregistrez-la

fichiers se terminant par pub

Ensuite, ouvrez notre machine Linux

Basculez vers le répertoire ~/.shh (vous devez vous connecter pour la première fois sans mot de passe, sinon il se peut qu'il n'y ait pas de fichier .shh)

Télécharger la clé publique

Bien sûr, vous devez également le remplacer par le nom standardauthorized_keys

Générer une sauvegarde de clé privée

Connexion sans mot de passe

connexion réussie

3.1.1. Le processus de connexion à l'aide d'une clé

3.2. Générer une clé de connexion sous Linux

Préparez un tremplin

L'option "-t" de la commande ssh-keygen est utilisée pour spécifier le type d'algorithme pour générer les clés publiques et privées.

ssh-copy-id [email protected]

utiliserssh-copy-idoutil: Cela gérera automatiquement le processus de copie de la clé publique. Cette commande gérera automatiquement la copie de votre.id_rsa.pubLe contenu de la clé publique est ajouté au serveur distant~/.ssh/authorized_keysdans le fichier.

 Entrer le mot de passe: Comme c'est la première fois que vous vous connectez à un serveur distant de cette manière, il vous sera peut-être demandé de saisir le mot de passe de l'utilisateur root distant.

Connectez-vous via Springboard 79 19

ssh [email protected]

Modifier les autorisations

vim /etc/ssh/sshd_config

Sur les lignes 17, 43, 65

Redémarrer le service sshd

essayer à nouveau

Spécifier le port, succès

4. Mettez à niveau le serveur Linux vers la dernière version d'opensh9.8

Le contenu est migré vers les ressources de fichiers

L'algorithme de signature DSA est désactivé par défaut

Préparation des fichiers

site officiel d'openshOpenSSH : Notes de publication

Étant donné que openssh9.8p1 ​​​​exige que la version openssl soit supérieure ou égale à 1.1.1, openssl doit être mis à niveau et installé.

Site officielVersion OpenSSL 1.1.1v · openssl/openssl · GitHub