Utiliser SSH pour utiliser en toute sécurité la connexion Bureau à distance à Windows
Environnement d’exploitation
- Connexion à distance à Windows
-
- Fenêtres 11
- Connexion à distance à partir de Windows
-
- Fenêtres 10
- OpenSSH
-
- OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Conditions préalables
- Connexion à distance à Windows
-
- Windows 10 ou version ultérieure (édition Pro ou autre édition requise). Cependant, cela ne s’applique pas si OpenSSH peut être préparé séparément.
- Windows Server 2019 ou version ultérieure. Cependant, cela ne s’applique pas si OpenSSH peut être préparé séparément.
- Connexion à distance à partir de Windows
-
- Windows (la plupart des versions sont possibles)
- Windows Server (la plupart des versions sont possibles)
Au début
Après avoir créé un environnement Windows sur Internet dans le cloud ou un VPS, vous utilisez souvent une connexion Bureau à distance pour faire fonctionner la destination Windows distante.
Lors d’une connexion Bureau à distance, le contenu de la communication est chiffré, et si le nom d’utilisateur et le mot de passe ne sont pas divulgués, les autres ne se connecteront pas sans autorisation. On craint toujours que les gens essaient de se connecter de n’importe où.
Certains grands clouds ont des pare-feu séparés des machines virtuelles, et il existe une fonction pour restreindre la source de connexion. Ces fonctionnalités peuvent ne pas être disponibles dans tous les services. En particulier dans les environnements construits avec un petit budget, il existe de nombreux cas où de telles fonctions ne sont pas disponibles.
Par conséquent, cette fois-ci, j’aimerais limiter au maximum la source de connexion en ajoutant la fonction SSH . Étant donné que la clé privée et la clé publique sont utilisées, tant que la clé privée n’est pas divulguée, la possibilité de se connecter à distance à partir d’un autre environnement peut être minimisée autant que possible.
Dans ce cas, nous utiliserons OpenSSH pour construire l’environnement SSH.
Créer un environnement Windows de destination distante
Créez un environnement Windows qui vous permet de vous connecter à distance via Internet. Peu importe où il est construit tant qu’il passe sur Internet, mais pour cette vérification, il sera construit en tant que machine virtuelle sur Microsoft Azure. Les étapes de création sur Azure ne sont pas pertinentes pour cette astuce, je vais donc les omettre. Étant donné que le port 22 sera utilisé cette fois-ci, si vous utilisez Azure, assurez-vous que la communication du port 22 passe par les paramètres de la machine virtuelle sur Azure.
Si vous générez dans un environnement autre qu’Azure, assurez-vous que vous êtes en mesure d’établir une connexion Bureau à distance à Windows pour votre environnement.
De plus, la version Windows cible Windows 10 ou version ultérieure, ou Windows Server 2019 ou version ultérieure, ce qui facilite la création d’un environnement OpenSSH. Il peut être implémenté dans un environnement antérieur, mais cela prend un peu plus de temps et d’efforts car vous devez télécharger et configurer OpenSSH séparément.
Dans ce cas, la procédure est la même que pour SFTP, veuillez donc vous référer aux conseils suivants.
Configuration d’OpenSSH
À partir de là, nous travaillerons dans l’environnement Windows distant. Tout d’abord, connectez-vous à la destination distante à l’aide d’une connexion Bureau à distance. Si votre cloud ou VPS fournit une console, vous pouvez l’utiliser. Étant donné que nous fonctionnons dans un environnement Windows 11 cette fois-ci, les étapes peuvent être légèrement différentes dans d’autres versions.
Ouvrez le menu Démarrer et sélectionnez Paramètres.
Sélectionnez une application.
Sélectionnez Fonctionnalités facultatives.
Sélectionnez Afficher les fonctionnalités.
Il y a « OpenSSH Server » un peu plus bas dans la liste, alors cochez-le et cliquez sur « Suivant ».
Cliquez sur Installer.
Lorsque l’installation est terminée et que « OpenSSH Server » est ajouté à la liste ci-dessous, vous avez terminé.
Configuration du service pour OpenSSH
Cliquez avec le bouton droit de la souris sur le menu Démarrer et sélectionnez Gestion de l’ordinateur.
Sélectionnez Services dans la liste de gauche.
Recherchez « OpenSSH SSH Server » dans la liste du milieu, cliquez avec le bouton droit de la souris et sélectionnez « Propriétés ».
Lors de la connexion à distance, nous voulons que le serveur OpenSSH soit en cours d’exécution, alors définissez le « Type de démarrage » sur « Automatique ».
Comme il n’est pas en cours d’exécution pour le moment, je vais le commencer ici, y compris le régler.
Une fois lancé, cliquez sur le bouton OK pour le fermer. Il doit être en cours d’exécution dans la liste.
Configuration d’OpenSSH
Dans l’état initial, l’authentification par clé privée est désactivée, alors définissez-la. Ouvrez le dossier suivant dans l’Explorateur.
- C :\ProgramData\ssh
Cependant, le dossier ci-dessus peut être un dossier caché, veuillez donc le rendre visible en définissant les options de l’explorateur.
Il y a un fichier appelé dans le dossier, alors ouvrez-le avec un éditeur de texte tel que le sshd_config
Bloc-notes.
Étant donné que nous apporterons des modifications cette fois-ci, veuillez copier et dupliquer en tant que sshd_config_old
sauvegarde avant le changement.
PubkeyAuthentication yes
Chercher:
Cet élément indique s’il faut activer l’authentification par clé secrète.
Par défaut, il est désactivé et il dit , mais il est commenté, yes
alors décommentez-le.
Avant le changement
#PubkeyAuthentication yes
Après le changement
PubkeyAuthentication yes
PasswordAuthentication yes
Chercher:
Cet élément indique s’il faut activer l’authentification par mot de passe.
Il est activé par défaut, et même si vous activez l’authentification par clé privée, il n’a aucun sens du point de vue de la sécurité s’il reste activé, alors décommentez-le et no
définissez .
Avant le changement
#PasswordAuthentication yes
Après le changement
PasswordAuthentication no
Commentez la ligne suivante vers la fin : Il s’agit du paramètre clé pour le groupe d’administrateurs, et nous allons le désactiver car nous prendrons en charge les connexions par utilisateur dans ce cas.
Avant le changement
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Après le changement
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Après avoir enregistré le fichier après OpenSSH SSH Server
la modification, redémarrez le service pour refléter les paramètres.
Si vous souhaitez modifier le port
Si vous souhaitez modifier le port SSH, modifiez les éléments suivants.
Avant le changement
#Port 22
Après le changement
#Port <任意の番号>
En modifiant le numéro de port, le port par défaut ne sera pas attaqué, ce qui renforcera la sécurité. D’autre part, cela augmente la complexité de l’opération, vous devez donc être prudent.
Si vous modifiez le numéro de port, vous devez spécifier un port autre que 22 lors de la connexion.
Création de clés privées et publiques
Il s’agit d’une tâche côté client. Cependant, l’endroit où vous travaillez n’a pas vraiment d’importance. Cependant, veillez à ne pas divulguer la clé privée que vous avez créée.
Si vous avez Windows 10 ou version ultérieure, Windows Server 2019 ou version ultérieure, le client OpenSSH est installé par défaut, vous pouvez donc facilement le créer avec une commande. Dans d’autres environnements, vous devrez installer un client OpenSSH distinct ou utiliser un outil distinct.
Les conseils suivants s’appliquent à SFTP, mais veuillez vous y référer pour configurer un client OpenSSH.
Dans l’environnement client, lancez une invite de commandes, PowerShell, un terminal ou tout autre outil capable d’exécuter des commandes.
Puisque vous allez créer un fichier, déplacez-vous cd
vers n’importe quel répertoire avec une commande.
Exécutez la commande suivante :
ssh-keygen -t rsa -f id_rsa
Vous pouvez définir une phrase de passe (mot de passe) pour la clé, veuillez donc la saisir si nécessaire. Si vous définissez une phrase secrète, la sécurité sera renforcée, mais cela augmentera le temps et les efforts nécessaires à la saisie de la phrase secrète dans le processus ultérieur.
Une clé publique (id_rsa.pub) et une clé privée (id_rsa) ont été créées.
La clé publique (id_rsa.pub) sera placée ultérieurement sur la destination distante. La clé privée peut se trouver n’importe où sur le client distant, mais elle doit se trouver dans un dossier accessible uniquement par le compte utilisé à des fins de sécurité. En gros, je pense qu’il n’y a pas de problème si vous le placez dans le dossier suivant côté client. Si vous utilisez le client OpenSSH, il naviguera jusqu’à ce dossier par défaut.
C:\Users\<ユーザー名>\.ssh
Si vous ne parvenez pas à créer le dossier ci-dessus dans l’Explorateur, vous pouvez le créer à l’aide de la commande suivante.
cd C:\Users\<ユーザー名>
mkdir .ssh
Placement des clés publiques
Il s’agit d’une opération à distance.
Placez la clé publique créée (id_rsa.pub) sur la destination distante.
Déplacez ce fichier dans le dossier suivant : <ユーザー名>
est le nom du compte d’utilisateur auquel vous vous connecterez lorsque vous vous connecterez à distance.
C:\Users\<ユーザー名>\.ssh
Si vous n’avez pas de dossier et que vous ne pouvez pas en créer dans l’Explorateur, vous pouvez créer un dossier à l’aide de la commande suivante.
cd C:\Users\<ユーザー名>
mkdir .ssh
Remplacez le fichier authorized_keys
de clé publique déployé par . Voilà.
En fonction de votre environnement, il se peut que vous disposiez déjà authorized_keys
du fichier. Cela peut être le cas si vous avez configuré une connexion SSH à d’autres fins.
Dans ce cas authorized_keys
, vous avez enregistré le fichier en ouvrant le fichier et le fichier avec le Bloc-notes, etc., et id_rsa.pub
en listant le contenu du id_rsa.pub sur la ligne suivante du authorized_keys.
Vous pouvez enregistrer plusieurs clés publiques dans authorized_keys.
Connectez-vous avec SSH
Lors de la connexion avec la commande OpenSSH
Il existe plusieurs façons de se connecter avec SSH, mais commençons par une connexion basée sur des commandes. En fait, la connexion avec le moins d’étapes se fait par commande. Comme condition préalable, vous devez avoir installé le client OpenSSH.
Lancez l’outil de commande de votre choix (Invite de commandes, PowerShell, Terminal).
Entrez la commande suivante :
Format de la commande
ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>
Vous trouverez ci-dessous une explication des paramètres. Réglez-le en fonction de votre environnement.
du paramètre variableDescription du nom | ||
---|---|---|
ssh (en anglais seulement) | Une déclaration d’utilisation de SSH avec OpenSSH. | |
-Je | Déclaration d’utilisation d’un fichier de clé privée. | |
< chemin d’accès au fichier de clé privée> | ● | Décrivez l’emplacement du fichier de clé privée que vous avez créé. C:\Users\<ユーザー名>\.ssh Le chemin d’accès est facultatif. Dans le cas contraire, un chemin absolu ou relatif est requis. |
-L | Cette déclaration spécifie le port à utiliser localement et à distance lors de la connexion à une destination distante. | |
< port franc local> | ● | La connexion Bureau à distance utilise généralement le port 3389, mais vous pouvez vous connecter à l’aide de n’importe quel port. Peu importe le numéro, tant que c’est gratuit. |
127.0.0.1 | Il s’agit de l’adresse IP de l’hôte qui reconnaît l’endroit d’où la destination distante est connectée. Fondamentalement, 127.0.0.1 est très bien. | |
3389 | Numéro de port à utiliser à la destination distante. La destination distante est généralement connectée par le port 3389 avec une connexion de bureau à distance, de sorte qu’elle peut être laissée telle quelle. | |
< nom du compte utilisateur auquel vous souhaitez vous connecter> | ● | Spécifiez le compte auquel vous souhaitez vous connecter à la destination distante. |
<adresse IP ou le nom d’hôte du serveur auquel se connecter> | ● | Spécifie le serveur de destination distant. |
Exemple d’entrée
ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194
La première fois, vous serez invité à entrer une touche, alors yes
tapez et appuyez sur Entrée.
Si vous avez défini une phrase secrète pour votre clé privée, vous devez la saisir.
Les éléments suivants seront dans un état connecté. Vous pouvez voir que c’est l’utilisateur côté serveur qui est affiché, et non le client. Lorsque cette fenêtre est affichée, elle est connectée, veuillez donc ne pas la fermer. Si vous le fermez, la connexion sera interrompue.
Lors de la connexion avec PuTTY
Ici, nous allons essayer de nous connecter à SSH avec un outil appelé PuTTY.
Conversion de la clé privée
Tout d’abord, si vous utilisez PuTTY, vous devrez convertir la clé privée. Je pense qu’il y a « puttygen .exe » dans l’outil ci-joint, alors veuillez le démarrer.
Sélectionnez « Conversions -> Clé d’importation » dans le menu.
Sélectionnez la clé privée que vous avez créée, dans ce cas, « id_rsa ».
Si vous avez défini une phrase de passe, saisissez-la.
Sélectionnez « Fichier -> Enregistrer la clé privée » dans le menu.
「. .ppk ».
Une fois créé, vous avez terminé.
Configuration de PuTTY
Lancez putty.exe.
Saisissez l’adresse IP de l’environnement auquel vous souhaitez vous connecter. Si vous avez un domaine, vous pouvez vous connecter avec un nom de domaine.
Sélectionnez Connexion -> Données dans le menu de gauche. Dans le champ Nom d’utilisateur de connexion automatique, saisissez le nom de compte de l’environnement auquel vous souhaitez vous connecter.
Dans le menu de gauche, sélectionnez Connexion -> SSH -> Tunnels. Entrez chacun d’entre eux dans le champ de saisie ci-dessous et cliquez sur le bouton « Ajouter ».
Nom du paramètre Remarques sur la valeur | ||
---|---|---|
Port source | 13389 | N’importe quel port franc fera l’affaire. Je l’utiliserai plus tard |
Destination | 127.0.0.1:3389 |
Une fois ajouté, il devrait ressembler à ceci :
Ensuite, sélectionnez « Connexion -> SSH -> Auth -> Cledentioals » dans le menu de gauche et cliquez sur le bouton Parcourir pour « Fichier de clé privée pour l’authentification ».
Sélectionnez la clé privée que vous avez enregistrée.
Sélectionnez « Session » dans le menu de gauche, entrez le nom de votre choix pour Enregistrer les sessions, puis cliquez sur le bouton Enregistrer. À partir de la prochaine fois, vous pouvez charger ce paramètre.
Après avoir confirmé l’enregistrement, cliquez sur le bouton « Ouvrir ».
L’écran suivant s’affiche lors de la première connexion. Cliquez sur le bouton Accepter.
Vous verrez un écran qui ressemble à une invite de commande. Si vous disposez d’une phrase secrète pour la clé privée, saisissez-la.
Si le contenu de l’écran change comme indiqué ci-dessous, il sera connecté. Vous pouvez voir que c’est l’utilisateur côté serveur qui est affiché, et non le client. Lorsque cette fenêtre est affichée, elle est connectée, veuillez donc ne pas la fermer. Si vous le fermez, la connexion sera interrompue.
Établir une connexion de bureau à distance avec SSH
Maintenant, établissons une connexion de bureau à distance tout en étant connecté avec SSH.
Lors de la connexion, la partie ordinateur n’est pas l’adresse distante réelle, mais « localhost :< > le nom de port spécifié dans la connexion SSH ». Dans l’exemple, 13389 a été spécifié, nous allons donc nous connecter ici à « localhost :13389 ».
Si l’écran d’authentification s’affiche, vous pouvez juger que la connexion est terminée. Entrez votre nom d’utilisateur et votre mot de passe pour vous connecter.
Si vous pouvez vous connecter comme ça, vous avez réussi.
Désactiver les connexions de bureau à distance régulières dans les paramètres du pare-feu
Au moment de l’élément précédent, vous pouvez maintenant vous connecter avec un bureau distant à l’aide de SSH. Toutefois, dans cet état, « Connexion Bureau à distance par SSH » n’a été ajouté qu’à « Connexion Bureau à distance normale ». En termes de sécurité, cela n’ajoute rien. La prochaine chose à faire est donc d’empêcher une « connexion normale au bureau à distance ».
Si vous effectuez ce paramètre, vous ne pourrez pas vous connecter, à l’exception de la « connexion bureau à distance par SSH », donc si vous jouez avec les paramètres, vous n’aurez peut-être pas les moyens de vous connecter à distance. Par conséquent, assurez-vous de vérifier à l’avance que la « connexion de bureau à distance par SSH » est possible, et d’être en mesure de faire fonctionner l’environnement distant par d’autres moyens même si le client auquel vous essayez de vous connecter disparaît.
Ici, configurez les paramètres du pare-feu dans « Connexion Bureau à distance via SSH ». En effet, si vous effectuez l’opération avec une « connexion de bureau à distance normale », elle sera déconnectée au moment où vous définissez le pare-feu.
Affichez le pare-feu Windows Defender avec sécurité avancée. Selon la version de Windows, l’emplacement de l’écran varie, veuillez donc l’afficher en fonction de cette version.
Sélectionnez Règles de trafic entrant dans le menu de gauche.
Dans la liste du milieu, recherchez « Bureau à distance - Mode utilisateur (TCP In) » et ouvrez ses propriétés.
Sélectionnez l’onglet Étendue, remplacez l’adresse IP locale par Ces adresses IP, puis cliquez sur le bouton Ajouter.
Entrez 127.0.0.1 et cliquez sur le bouton OK. Cela empêchera les connexions Bureau à distance à partir d’un autre site que 127.0.0.1. 127.0.0.1 est l’adresse IP qui pointe vers votre machine. Si vous entrez une valeur incorrecte, vous ne pourrez peut-être pas vous connecter de n’importe où, alors soyez prudent.
Cliquez sur le bouton OK pour confirmer.
Pour l’instant, il s’agit d’une contre-mesure, mais définissons également « Bureau à distance - Mode utilisateur (réception UDP) ».
Vérifiez que vous ne pouvez pas vous connecter à distance avec autre chose que SSH
Maintenant, essayez d’établir une connexion de bureau à distance à partir d’un autre PC qui n’utilise pas SSH.
Si vous parvenez à vous connecter, l’écran d’authentification s’affiche. Ce n’est pas grave si vous pouvez confirmer que la connexion ne peut pas être établie comme indiqué ci-dessous.
Résumé
Avec la dernière version de Windows, il est désormais facile d’introduire un serveur SSH. En ajoutant des paramètres, vous pouvez désormais augmenter facilement la sécurité de votre connexion de bureau à distance. Cependant, étant donné qu’il n’est responsable que des mesures de sécurité dans Windows lui-même, Si vous voulez le rendre plus sûr, je pense qu’il est préférable de mettre en place un serveur SSH ou un pare-feu séparé avant de se connecter à Windows.
De plus, vous pouvez définir la sécurité de manière stricte à l’aide de SSH, mais lorsque c’est trop difficile, personne ne peut se connecter en raison d’une erreur opérationnelle. Attention à ne pas vous retrouver avec ça.