Surveillance avec Active Desktop

Il peut parfois être utile de surveiller un serveur à distance. Mais à distance, un pare-feu peut bloquer les flux telnet et autres possibilités de surveillance ou tout simplement l'on n'a pas envie de passer son temps à exécuter des requêtes afin de prévennir une attaque. Heureusement, l'on peut intégrer des informations essentielles dans un bureau Windows Grâce à l'Active Desktop.

Pré-requis

l'Active Desktop

Le bureau actif (Active Desktop) est apparu voici quelques années avec une fonctionnalité de Internet Explorer qui permet d'afficher une page web directement sur le bureau. C'est une des raisons qui fait que Internet Explorer est intimement lié à Windows.

Et c'est Active Desktop va nous permettre d'afficher des données sur notre bureau afin de pouvoir surveiller un (ou plusieurs) serveur.

Côté serveur

Du côté du serveur, il faut mettre en place un shell qui génère une page HTML ou XML avec les informations qui nous intéressent.

Prenons par exemple, les informations de base comme uptime, et l'occupation des disques, puis éventuellement des informations plus avancées comme sa(r), lastcomm ou who.

Le shell pour l'utilisation des disques aura l'apparence suivante :

#!/bin/sh
# rapport destiné à l'active desktop (Windows)

echo "‹?xml version = \"1.0\" encoding = \"ISO-8859-1\"?›" 
echo "‹?xml-stylesheet type=\"text/xsl\" href=\"ActiveDesktop.xsl\"?›"  

echo "‹Disques›" 
df | awk 'NR›1 { print "‹Disk›‹FileSystem›"$1"‹/FileSystem›‹NbBlocks›"$2"‹/NbBlocks›‹Used›"$3"‹/Used›
‹Available›"$4"‹/Available›‹Capacity›"$5"‹/Capacity›‹MountedOn›"$6"‹/MountedOn›‹/Disk›"}'
echo "‹/Disques›" 

Le shell pour les utilisateurs connectés aura l'apparence suivante :

#!/bin/sh
# rapport destiné à l'active desktop (Windows)

echo "‹?xml version = \"1.0\" encoding = \"ISO-8859-1\"?›" 
echo "‹?xml-stylesheet type=\"text/xsl\" href=\"ActiveDesktop.xsl\"?›"  

echo "‹Who›"
who | awk '{ print "‹Line›‹User›" $1 "‹/User›‹Console›" $2 "‹/Console›
‹ConnectionDate›" $3 " "$4 " " $5 "‹/ConnectionDate›‹Machine›" $6 "‹/Machine›‹/Line›" }'
echo "‹/Who›"

Nous voyons dans cet exemple que nous générons au format xml les données uptime, df (occupation des disques), lastcomm (dernières commandes exécutées) et who (qui est connecté).

Créons aussi, pour ce xml, un xsl afin de bien présenter les choses dans un répertoire sous la racine du serveur web. C'est à ce xsl que le xml généré fera référence.

Exécutons le shell en redirigeant la sortie vers un fichier xml (disques.xml, par exemple) dans le même répertoire que le xsl.

Le shell est prêt. Il ne reste plus qu'à l'exécuter automatiquement, par exemple, toutes les 5 minutes. Pour cela, il faut ajouter une ligne dans /etc/crontab :

*/5	*	*	*	*	root /{répertoire des scripts}/who.sh > 
/{répertoire du serveur web}/who.xml
25	*	*	*	*	root /{répertoire des scripts}/disques.sh > 
/{répertoire du serveur web}/disques.xml

Côté client

Côté client, il ne reste plus qu'à ajouter une page web sur le bureau grâce à l'Active Desktop. D'un clic droit sur le bureau, ouvrons les propriétés :

Propriétés bureau Windows

Propriétés du bureau Windows

Puis cliquons sur l'onglet bureau et sur le bouton Personnalisation du bureau... :

Personnalisation du bureau

Personnalisation du bureau...

Puis, cliquons sur l'onglet Web et le bouton Nouveau.

Nouvel élément du bureau

Nouvel élément du bureau

Il ne reste qu'à indiquer l'adresse de la page xml sur le serveur UNIX et valider. En revenant sur les éléments du bureau, on peut paramétrer la synchronisation automatique de la page.

Remarque

La synchronisation de la page n'est possible qu'une seule fois par jour et par programmation. A moins de créer une programmation par rafraîchissement, le plus simple est d'utiliser une balise meta :

<meta http-equiv="Refresh" content="1800;URL=disques.xml"/>

qui recharge, par exemple, la page toutes les 1800 secondes automatiquement.

Une fois l'ajout de la page validée, celle-ci apparaît sur le bureau, mais en petit. En passant dessus avec la souris, un cadre se dessine et laisse apparaître des options affichage. On peut déplacer le cadre, le redimensionner à la taille de notre objet, le mettre en plein écran ou en laissant une bande pour les icônes.

Remarque

Il y a la possibilité de réaliser une seule page web réunissant toutes les informations. Mais la présentation de chaque élément devra être décrite dans le document (xsl). Active Desktop peut gérer l'affichage d'un grand nombre de pages web. Il est donc plus aisé de réaliser des pages xml avec un seul type d'informations à chaque fois puis de créer autant d'objets qu'il le faut sur le bureau, chacun avec son temps de rafraîchissement.

Bureau avec l'active desktop

Bureau avec l'active desktop et 4 objets ajoutés et verrouillés

Et pour éviter l'apparition d'un cadre gris lors du survol, verrouillons la page : Dans éléments du bureau/ onglet Web, cocher la case "Verrouiller les éléments du bureau".


Valid HTML 4.0 Transitional