Arrêter Windows et son routeur Linux
Arrêter Windows et le routeur Linux d'un seul clic
Le but de cet article est de montrer comment automatiser l'arrêt d'un système sous Windows au même temps que la passerelle Linux du réseau local.
Prérequis
- La passerelle Linux
- serveur SSH
- une machine sous Windows (supérieur à 2000)
- le client SSH Putty
- Réseaux
Internet
<---->Passerelle Linux
<---->Windows
Côté Linux
Il faut d'abord créer un utilisateur qui dès la connexion lance une commande d'arrêt du système.
Créons alors un nouvel utilisateur myshutdown qui appartient à un groupe d'utilisateurs standards. Par défaut cet utilisateur ne peut pas lancer de commandes d'arrêt du système telles que halt, shutdown ou poweroff. Cette iterdiction peut être contournée en utilisant la commande sudo
et son fichier de configuration /etc/sudoers
.
Pour que l'utilisateur myshutdown puisse lancer la commande halt
il suffit d'ajouter la ligne suivante dans le fichier /etc/sudoers
A la création de l'utilisateur myshutdown un shell par défaut lui est attribué. Pour la démonstration, nous choisissons "bash", qui est le shell le plus couramment utilisé sous Linux. Pour l'attribuer à l'utilisateur 'myshutdown, si ce n'est pas le shell attribué à la création, il suffit de tapper la ligne suivante en tant que root:
%chsh -s /bin/bash myshutdown
Changing shell for myshutdown.
Shell changed.
La dernière étape coté Linux consiste à créer le script exécuté pas le shell dès la connexion de l'utilisateur. Pour bash, c'est le fichier .bashrc qui est exécuté dès le login. Si il n'existe pas dans le répertoire d'accueil de l'utilisateur myshutdown, il faut en créer un et y ajouter les lignes suivantes:
clear
echo "Arrêter le routeur [o/n] ?"
read reponse
case $reponse in
o*|O* ) sudo /sbin/halt;sleep 3;exit;;
n*|N* ) clear;echo "Attention le routeur doit toujours être arreté depuis Windows. Tapper entée pour fermer cette fenêtre";read;exit;;
esac
Ces quelques lignes méritent quelques explications : On donne le choix d'arrêter le routeur ou de ne pas le faire. Si on doit l'arrêter, on lance la commande "halt", on attend 3 secondes et on se délogue proprement. Sinon, on affiche un message pédagogique et on se déconnecte.
La dernière chose avant de passer à Windows : tester une connexion sur le compte "myshutdown" :
su - myshutdown
Après avoir confirmé que l'on veut bien arrêter le routeur, celui-ci devrait s'arrêter proprement. Si ce n'est pas le cas, et en fonction des messages affichés pas le shell, un examin des étapes précédentes s'impose.
Côté Windows
D'abord télécharger et installer le client SSH Putty.
Ensuite créer un script d'arrêt de windows pour se connecter sur le routeur sous l'identité "myshutdown".
Commencer par se connecter sous une identité qui a les droits d'administrateur. Créons ensuite un fichier texte stop_routeur.bat qui contiendra la ligne suivante :
Même si il et possible de placer ce script n'importe où su le disque, il est préférable de le copier dans le répertoire prévu à cet effet C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown
.
Lancer ensuite "gpedit.msc" depuis le menu Démarrer, Exécuter….
Dans la fenêtre de gauche, sélectionnez Paramètres Windows puis Scripts (démarrage/arrêt). Dans la fenêtre de droite, double cliquez sur Arrêter le système et ajoutez votre script. Nul besoin d’ajouter des paramètres de scripts.
Lors du prochain arrêt ou reboot de Windows, votre script sera exécuté et une fenêtre "Putty" vous demandera si vous voulez aussi arrêter votre routeur Linux ...
Variantes et précautions d'emplois
Un des inconvénients de cette proposition est bien entendu le mot de passe de l'utilisateur "myshutdown" du routeur qui apparait en clair dans le fichier "stop_routeur.bat". Le minimum de sécurité consiste à interdire les utilisateurs standards d'en lire le contenu.
Copyright
Copyright © novembre 2005, A. Benzougar