Arrêter Windows et son routeur Linux

De Lea Linux
Révision datée du 24 novembre 2005 à 16:44 par Fred (discussion | contributions) (ancre + balise http au lieu du format wikimedia)
Aller à la navigation Aller à la recherche

Arrêter Windows et le routeur Linux d'un seul clic

Beaucoup de particuliers disposent pour partager leur connexion internet d'un routeur sous Linux. Pour des raisons d'économie d'énergie et de sécurité, ils ne laissent pas les machines de leur réseau domestique allumées 24h/24. 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 domestique.


Prérequis

   Internet<---->Passerelle Linux<---->Client 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. La commande "sudo" permet d'exécuter une commande avec les droits de root.

Pour que l'utilisateur myshutdown puisse lancer la commande halt

%sudo halt

il suffit d'ajouter la ligne suivante dans le fichier /etc/sudoers

myshutdown ALL=NOPASSWD:/sbin/halt

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 :

"C:\Program Files\putty\putty.exe" -ssh myshutdown@ip_du_routeur -pw "mot_de_pass_de_myshutdown"

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.

Sous Windows, on peut ajouter un script de démarrage, en modifiant la "Stratégie de groupe". Il suffit de lancer la commande "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

L'arrêt automatique du routeur Linux au même temps que le client Windows, peut ne pas avoir d'intérêt si l'on dispose de plusieurs clients dans le réseau. Le fichier "stop_routeur.bat" peut alors être exploité par exemple en créant un raccourcis vers ce batch. Un simple click sur ce raccourcis suffit alors pour arrêter ou redémarrer votre passerelle.

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 aux utilisateurs standards d'en lire le contenu.

Une autre façon plus sophistiquée de contourner ce problème est de mettre en place sur le routeur une authentification par paires de clefs. Dans ce cas, on peut alors faire une connexion depuis Windows sans mot de passe.


Copyright

Copyright © novembre 2005, A. Benzougar