LanIP v1.2

Vendredi, 15 Juin 2007 15:30
Imprimer
Note des utilisateurs: / 2
MauvaisTrès bien 
LanIP permet de stocker dans une base de données MySQL les adresses IP fixes attribuées aux machines de ton réseau. Ce n'est pas :

Mais c'est :

Capture d'écran

Note : Les noms ont été cachés pour protéger les innocents.

Gimme gimme gimme

Prérequis serveur

Compatibilité

Windows 2003 et Windows 2000.

Donne-moi ça tout de suite

LanIP est distribué sous licence Gnu General Public License, version 2.

IPAddress12.zip (124 Ko environ) contient tous les fichiers nécessaires à l'application.

Il n'y a pas de programme d'installation, merci de lire attentivement les instructions d'installation ou de mise à jour.

Mise à jour

De la version 1.x vers 1.2

Installation

Pour plus de facilité, nous appellerons ton serveur ouèbe SERVEUR_CENTRAL plutôt que Catherine, parce que Catherine ça fait pas sérieux.

Installations prérequises

Or donc, sur SERVEUR_CENTRAL, il faut avant toute chose :

Installation de LanIP

Décompacte le zip amoureusement concocté par mes soins sur SERVEUR_CENTRAL, dans C:\Program Files\. Cela va créer le répertoire "IPAddress1" (et pas "LanIP" ou "LanIP1", c'est juste pour t'embrouiller).

Change si nécessaire à la première ligne de chaque script *.pl le chemin de l'interpréteur Perl. Si tu as fait une installation standard de Active Perl, tu peux laisser #!c:\perl\bin\perl.

Assure-toi ensuite qu'Apache veuille bien exécuter des scripts Perl se trouvant dans le répertoire de LanIP. Pour ça, ajoute dans le fichier de configuration d'Apache httpd.conf les lignes suivantes :

 

Alias /lanip/ "C:/Program Files/IPAddress1/html/" 
<Directory "C:/Program Files/IPAddress1/html/">
AddHandler cgi-script .pl
Options Indexes FollowSymLinks -MultiViews +ExecCGI
AllowOverride all
Order allow,deny
Allow from all
</Directory>

Il faut relancer Apache après ces modifications.

Configuration

Ouvre ton navigateur à l'URL http://localhost/lanip/. Le cadre de gauche est vide, le cadre de droite te propose de saisir une adresse. Clique sur le lien vers la page d'administration, en haut du cadre de gauche.

Renseigne les différents paramétres dans la première rubrique. Les valeurs par défaut devraient faire l'affaire, à l'exception du mot de passe MySQL qu'il serait bon de changer, et du masque de sous-réseau en usage chez toi. Enregistre.

Note : l'utilisateur sous lequel tourne le serveur Apache doit avoir les droits en écriture sur le répertoire C:\Program Files\IPAddress1\html, où s'enregistre la configuration.

Crée la base de données : renseigne dans la deuxième rubrique le mot de passe de root pour MySQL et clique sur "Créer". Une fois la création terminée, retourne à l'accueil.

Cette fois, le cadre de gauche devrait te montrer une arborescence vide. Ze djobe ize done.

Utilisation

Clique sur l'icône à la racine de l'arbre (c.-à-d. "Réseaux") pour revenir à l'accueil à tout moment. Au fur et à mesure que tu ajouteras des adresses, tu verras se remplir l'arbre à gauche, avec un noeud pour chacun des trois premiers octets de l'adresse IP. Clique sur un octet pour voir toutes les machines partageant ce début d'adresse IP.

Ajout

Tu dois au moins renseigner les champs en gras, à savoir : adresse IP (c'est la clef de la base de données), masque de sous-réseau (indispensable pour le Wake-On-Lan), et nom de la machine.

Recherche

Tu peux rechercher sur une partie du nom, de l'utilisateur ou de la description, grâce au méta-caractère SQL "%", qui équivaut à l'habituelle "*". Par exemple, %INF% dans le champ Nom renverra toutes les machines comportant "INF" dans leur nom.

Tu peux aussi rechercher sur n'importe quel octet de l'adresse IP ; il te suffit de laisser à blanc les autres octets. Par exemple : rien - rien - 9 - rien renverra toutes les adresses IP dont le troisième octet vaut 9, quel que soit le réseau.

Pour lancer la recherche, clique sur le bouton correspondant au champ que tu as renseigné. La touche "Entrée" est désactivée (pénible, hein ?).

Modification

Pour changer l'adresse IP d'une machine existante, il faut procéder en deux étapes :

  1. Suppression de l'adresse existante
  2. Ajout avec la nouvelle adresse

Pour les autres champs, recherche la machine et clique sur l'icône . Modifie les champs nécessaires et clique sur "Ajouter". Il te sera alors demandé de confirmer la mise à jour.

Suppression

Recherche la machine et clique sur . Il te sera alors demandé de confirmer la suppression.

Outils

Pour que les outils fonctionnent sur un réseau segmenté, il faut bien évidemment que le serveur hébergeant LanIP aie connaissance de tous les réseaux de ton LAN, que ce soit par des routes explicites ou une passerelle par défaut qui les connaisse.

Tu peux vérifier la présence d'une adresse IP sur le réseau grâce au bouton .

Tu peux rechercher l'adresse IP affectée à une machine grâce au bouton , qui effectue une requête DNS. Ce sont les serveurs DNS dont est client le serveur hébergeant LanIP qui seront interrogés.

Les incohérences entre la base de données et le résultat de la commande sont surlignées.

Tu peux réveiller à distance une machine éteinte, grâce au bouton . Cette magie est rendue possible par les cartes réseau supportant cette fonctionnalité, dite "Wake-On-Lan", et l'activation d'icelle dans le BIOS de la machine.

Import / Export

Les options d'import et d'export de données sont accessibles par la page d'administration.

L'export est possible sous forme d'un fichier CSV, dit "natif", qui comprend les champs suivants :

@IP;Nom;@Mac;Utilisateur;Description
Le fichier commence par une ligne de titre, puis une ligne par enregistrement.

L'import est possible dans différents formats :

La ligne de titre est systématiquement vérifiée ; c'est la signature du fichier permettant de s'assurer qu'il est au bon format. Tu peux choisir lors de l'import d'écraser ou non les adresses déjà existantes dans la base.

Protection des pages

Tu peux restreindre l'accès à la page d'administration, par exemple, ou à n'importe quelle page que tu juges sensible, en utilisant la fonctionnalité d'Apache ".htaccess". Pour cela, crée un fichier .htaccess dans le sous-répertoire 'html" de l'installation de LanIP. Comme l'explorateur de Windows ne permet pas de créer des fichiers avec seulement une extension, tu devras le faire en ligne de commande :

c:
cd "\program files\IPAddress1"
echo.>.htaccess

Edite ensuite ce fichier, pour qu'il contienne :

<FilesMatch admin.pl>
AuthName "LanIP"
AuthType Basic
AuthUserFile "c:/program files/IPAddress1/.htpasswd"
require valid-user
</FilesMatch>

Il ne reste plus qu'à créer le fichier contenant le login/mot de passe autorisé à accéder aux pages protégées :

cd ..
c:\program files\Apache Software Foundation\Apache2.2\bin\htpasswd -c .htpasswd <login>
<mot de passe>

Tu peux aussi utiliser l'authentification Windows, si tu es sur un serveur Windows, grâce au module Apache mod_auth_sspi. En ce qui me concerne, je l'ai activé de la manière suivante :

Après avoir téléchargé le module SSPI, copie mod_auth_sspi.so dans le répertoire modules d'Apache.

Dans le fichier httpd.conf d'Apache, ajoute la directive :

<IfModule !mod_auth_sspi.c>
LoadModule sspi_auth_module modules/mod_auth_sspi.so
</IfModule>

Et enfin, crée un fichier .htaccess dans le répertoire html de l'installation de LanIP, contenant :

<IfModule mod_auth_sspi.c>
<FilesMatch admin.pl>
AuthName "Login Windows"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic On
SSPIBasicPreferred On
SSPIDomain TON_DOMAINE_WINDOWS
SSPIOmitDomain On
require user TON_DOMAINE_WINDOWS\TOI_MEME
</FilesMatch>
<FilesMatch .*>
AuthName "Login Windows"
AuthType SSPI
SSPIAuth On
SSPIOfferBasic On
SSPIBasicPreferred On
SSPIDomain DCOMPTES
SSPIOmitDomain On
require group TON_DOMAINE_WINDOWS\TON_GROUPE
</FilesMatch>
</IfModule>

Si les utilisateurs sont authentifiés auprès du serveur Web, leur login sera enregistré lors de toute modification de la base de données. Comme ça tu les fliques bien, les mecs. Fini de faire les zouaves. Le paramétre est récupéré via la variable d'environnement REMOTE_USER.

Ecriture de plugins

Un plugin est composé d'au moins 2 fichiers, stockés dans le répertoire "plugins" :

Le premier décrit en XML le plugin, au format suivant :
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="/joomla/plugins.xsl"?>
<ipaddress>
<plugin>
<name>Nom du plugin</name>
<version>1.0</version>
<date>01/01/2008</date>
<author>Auteur</author>
<notes>Description de la fonction offerte par le plugin.</notes>
<url>URL du plugin, par exemple plugin.html</url>
</plugin>
</ipaddress>

Le second fichier est le code du plugin proprement dit, écrit dans n'importe quel langage compris par ton serveur ouèbe. Ceci dit, ça sera plus facile de l'écrire en Perl.

IPAddress parcourt le répertoire "plugins" à la recherche de tous les fichiers XML, et les liste sur sa page d'accueil.

Prenons par exemple le plugin fourni en standard, à savoir "Last Change". L'URL du plugin est une page HTML de saisie de paramétres (lastchange.html). Cette page appelle un script Perl pour réaliser la recherche (lastchange.pl), en lui passant les paramétres saisis.

L'écriture du script est facilitée par la fonction Perl IPAddress::displayResult($query, $page, $action, %params). Celle-ci affiche — avec pagination — les résultats correspondants aux paramétres qui lui sont passés, à savoir:

Query

Pour créer la requête SQL qui va bien, voir le shéma de la base de données.

Page

Le principe est que le script de recherche des résultats (lastchange.pl, par exemple) est réentrant. C'est-à-dire qu'il s'appelle lui-même à chaque changement de page, avec un paramétre qui change... hé oui, tu l'as deviné, c'est le numéro de page. Ce paramétre est passé en POST, sous forme de champ "hidden". S'il n'est pas passé, c'est qu'on est à la première invocation du script, il faut l'initialiser à zéro.

Action

De même que le numéro de page, l'action (l'URL) à invoquer au changement de page est passée au script sous forme de champ "hidden". C'est le script du plugin lui-même, qu'on récupère via l'objet CGI par my $action = $cgi_query->url(-relative=>1);.

Params

Le hash %params contient les variables passées initialement au script par la page HTML, avec leur valeur. Elles sont réinjectées dans le script "Action", sous forme de champs "hidden".

Reste à faire

Merci de me soumettre le résultat de vos efforts, afin que la communauté des utilisateurs en profite.

Remerciements

Mis à jour le Vendredi, 06 Mars 2009 18:39