Nous avons récemment été confrontés à une situation où un client avait perdu l'accès à une instance Windows Server hébergée dans le cloud. Un utilisateur de l'entreprise avait apporté une modification erronée à la configuration du pare-feu Windows. Résultat : plus aucun utilisateur ne pouvait accéder à la machine, que ce soit en RDP ou autrement.
Malheureusement, ce type d'incident est plus fréquent qu'on ne le pense, mais bonne nouvelle : il se corrige. En espérant que cet article puisse aider d'autres personnes, je vais détailler les étapes simples à suivre pour résoudre ce genre de situation.
Faute de pouvoir nous connecter à la machine par d'autres moyens, nous avons opté pour la connexion via le port série proposée dans la console web Google Cloud.
Pour restaurer l'accès à l'instance Windows, nous allons procéder en trois étapes. D'abord, nous nous connectons à la machine. Ensuite, nous accédons à une invite de commande Windows. Enfin, nous désactivons le pare-feu pour rouvrir l'accès RDP. Nous partons du principe que vous êtes déjà connecté à la console web Google Cloud.
Pour suivre les étapes décrites ici, vous aurez besoin des autorisations Google Cloud Platform (GCP) suivantes :
- compute.instances.setMetadata
- compute.projects.setCommonInstanceMetadata
Étape 1 : se rendre sur l'instance et s'y connecter via une console série
Une fois connecté à la console web Google Cloud, accédez à la page Compute Engine pour afficher la liste des instances. Recherchez et sélectionnez l'instance concernée pour ouvrir sa page de détails.

Détail de l'instance VM
Vérifiez que l'accès à la console série est activé en consultant l'attribut Activer la connexion aux ports série. Si ce n'est pas le cas, vous devrez l'activer. Pour cela, cliquez sur Modifier, activez l'attribut Activer la connexion aux ports série et enregistrez la modification.

Modifier la connectivité du port série
Une fois l'accès au port série activé, le bouton Se connecter à la console série devient lui aussi actif. Cliquez dessus pour ouvrir une fenêtre de console série. Une nouvelle fenêtre s'ouvre et affiche la console SAC (Special Administration Console) de Windows.

Détail de l'instance VM — console série activée
La SAC Windows permet d'interagir avec le système d'exploitation Windows (OS). Elle donne accès à l'OS même lorsque le réseau est hors service. Elle propose également un jeu de commandes très basique pour la gestion de l'OS.

Special Administration Console, SAC
Astuce : pour en savoir plus sur le terminal SAC, utilisez la commande
?ouhelppour afficher la liste des commandes disponibles.
Étape 2 : se connecter à une invite de commande Windows
Nous avons besoin des commandes de pare-feu, qui ne sont pas disponibles dans la SAC. Pour cela, nous allons créer un nouveau canal donnant accès à l'invite de commande Windows que nous connaissons tous.
Dans le terminal SAC, utilisez la commande cmd pour démarrer un autre canal. Le système répond par un message de confirmation. Le nouveau canal s'appelle Cmd0001 ; on y bascule avec la commande ch -sn Cmd0001.

Créer le nouveau canal et y basculer
Le système affiche les détails du nouveau canal. Appuyez sur n'importe quelle touche, hormis les combinaisons <esc><tab> indiquées, pour visualiser le canal.
Saisissez ch -sn suivi du nom du canal, par exemple ch -sn Cmd0001. Cette commande bascule la console série vers le canal spécifié.
L'invite de commande Windows offre un accès complet à la machine. Le système demande des identifiants pour authentifier un utilisateur autorisé. Saisissez le nom d'utilisateur, le domaine et le mot de passe. Si la machine n'appartient pas à un domaine, laissez le champ domaine vide.

Authentification à l'invite de commande
Étape 3 : désactiver le pare-feu
Maintenant que nous sommes authentifiés sur la machine, nous pouvons passer à la dernière étape et désactiver les règles de pare-feu qui bloquent l'accès. Pour cela, utilisez la commande netsh advfirewall set allprofiles state off. Le système répond par un bref Ok. indiquant que les règles de pare-feu sont désactivées. Vous pouvez alors vous connecter à la machine et rétablir la configuration souhaitée. Bien entendu, n'oubliez pas de réactiver le pare-feu.

Message de confirmation de la commande netsh
Synthèse
Les étapes ci-dessus montrent comment restaurer l'accès à une instance Windows Server lorsqu'elle est bloquée par le pare-feu du système d'exploitation. Pensez à désactiver l'accès à la console série une fois l'opération terminée afin de protéger la ressource. GCP propose également un contrôle de sécurité applicable à toutes les machines : définir une stratégie d'organisation sur l'accès au port série prend le pas sur les paramètres de chaque instance. Pour cela, utilisez Désactiver l'accès au port série de la VM sur la page des stratégies d'organisation.
Par ailleurs, GCP enregistre tous les accès à la console série dans les logs cloud. Pour les consulter, accédez au menu Logs dans la console web GCP. Sur la page des logs, filtrez sur la ressource GCE VM Instance et recherchez ssh-serialport-googleapis.com. Votre compte utilisateur devra disposer des autorisations de visualisation des logs.
Quelques bonnes pratiques permettent d'éviter ce genre de situation. La mise en place d'un processus de gestion des changements fournit un historique des actions, qui permet de remonter à la cause des incidents, à la résolution associée, et d'accélérer la reprise. Veillez aussi à effectuer des sauvegardes régulières. Google Cloud Platform propose un excellent service de planification de snapshots pour les instances.
Envie d'en lire plus ? Consultez notre blog sur Medium, ou suivez Garrett sur Twitter