Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1548 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Idée de logiciel/script de gestion d'IP sur un réseau local/monitoring

 

 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Idée de logiciel/script de gestion d'IP sur un réseau local/monitoring

n°748026
freds45
Posté le 03-11-2005 à 01:09:45  profilanswer
 

L'autre jour, en rentrant, j'ai eu une idée de système à mettre en place sur un réseau local, pour gérer les adresses IP, et surveiller un peu tout ça. Je sais c'est long à lire :p Ca existe déjà un tel truc ? C'est une bonne idée ou je vais dans le mur :whistle: ? Merci pour vos avis :jap:
 
Introduction
 
Ce projet a pour but de simplifier la gestion des adresses IP sur un réseau, sur lequel les adresses IP ne sont pas forcément fixes. Le réseau est constitué d'une trentaine de postes utilisateurs connectés soit en ethernet, soit via wifi. Un autre aspect important est qu'il faut sécuriser la connexion internet : savoir quel utilisateur accède quand au web, mais que le fonctionnement soit transparent pour lui. La connexion se fait par l'intermédiaire d'une passerelle sous GNU/Linux, associé à un proxy Squid, configuré en mode transparent.
 
Le serveur de gestion aura plusieurs rôles :
 
• Proposer un front-end à dhcpd, permettant de générer un fichier de configuration, à partir d'un modèle. Ce fichier modèle sera complété avec des réservations. Les adresses mac et les ip correspondantes seront stockées dans une base de données mysql.
• Générer un script iptables, afin d'autoriser uniquement certaines combinaisons adresses ip/adresses mac sur la passerelle.
• Permettre à l'administrateur de visualiser rapidement et simplement quels postes sont connectés à tout moment, et d'avoir un minimum d'historiques sur les connexions des postes au réseau local.
 
Cet ensemble utilisera un système GNU/Linux, associé à plusieurs outils : Apache/Php pour l'interface de gestion et la génération des scripts, Perl pour la lecture de fichiers de logs, et Mysql pour le stockage des informations.
 
Détail des différents modules :
Dhcpd
 
Le module de gestion de dhcpd va avoir plusieurs rôles : le premier va être de créer un fichier de configuration valide pour dhcpd, en y ajoutant une réservation par poste client référencé sur le serveur. Ce fichier doit être re-généré et appliqué une fois la saisie d'un nouveau poste faite.
L'interface graphique passera par des pages web, et permettra de saisir de nouveaux clients, de définir les créneaux horaires, et de recréer le fichier de configuration puis relancer le service DHCP.
 
Iptables
 
La passerelle Linux doit permettre l'accès à internet uniquement aux clients référencés. Deux plages horaires sont définies : une plage journée, et une plage nuit. Tous les clients connus peuvent se connecter dans la journée, alors que seules certaines machines ont accès à internet durant la nuit (typiquement des serveurs). La passerelle Linux va télécharger sur le serveur un script iptables, qui en plus des éléments par défaut, va autoriser uniquement les combinaisons adresses mac/ip autorisées par rapport à la période donnée de la journée. Le script doit être rafraîchi sur la passerelle assez souvent, de manière à autoriser rapidement les nouveaux clients enregistrés. Le délai entre les mises à jour sera de dix minutes dans la journée, et d'une heure pendant la nuit.
 
Monitoring
 
Ce module doit permettre à l'administrateur du réseau de voir à un moment donné quels sont les postes clients connectés, et à quel utilisateur le poste correspond. Le poste doit être détecté comme connecté même si un firewall est installé sur la machine, et empêche la réponse à une commande ping. A cela doivent d'ajouter certaines options d'historique de la machine : premières et dernières date et heure de connexion, ainsi qu'un historique des baux DHCP pour la machine.
 
Aspect technique
Dhcpd
 
Un modèle de base de fichier de configuration du daemon dhcpd est enregistré, soit dans un fichier, soit dans la base de données. En plus des paramètres de base (range d'adresses ip), le modèle doit comporter plusieurs informations nécessaires à la connexion des clients : l'adresse IP de la passerelle Linux comme route par défaut, et les adresses du ou des serveurs DNS. Cette valeur pourra soit pointer sur une adresse interne, soit un serveur externe, typiquement celui du FAI. La page suivante présente un modèle de fichier de configuration : http://www.tldp.org/HOWTO/DHCP/x369.html#AEN403
 
A la suite de ce modèle seront ajoutés les différentes réservations pour les clients enregistrés. Ces réservations se présentent de la façon suivante :
 
 
host NomDuClient {
   hardware ethernet 08:00:2b:4c:59:23;
   fixed-address 192.168.1.222;
}
 
 Autant de blocs que de clients seront ajoutés au fichier modèle.
 
Lorsqu'un nouveau fichier sera généré (suite à une modification ou un ajout de client), le fichier destination sur le serveur ( /etc/dhcpd.conf ) sera écrasé par une nouvelle version. Pour pallier à toute erreur, le fichier précédent devra être sauvegardé avant d'être écrasé.
Iptables
 
Un modèle de tables Iptables va être enregistré sur la passerelle Linux. Celui-ci doit simplement contenir de quoi avoir une connexion à internet, et n'autoriser comme seule machine sur le réseau local le serveur de supervision du réseau. Toutes les dix minutes pendant la journée (et toutes les heures pendant la nuit), la passerelle va aller appeler un script php (via http et wget) sur le serveur de supervision. Ce script va contenir les lignes iptables à entrer sur la passerelle pour autoriser l'accès uniquement aux machines qui ont le droit de se connecter au moment présent de la journée.
 
Le script php sur le serveur de supervision utilisera la base de données des adresses MAC et IP des clients pour générer les lignes. Le délai de dix minutes permettra aux nouveaux postes enregistrés de se connecter rapidement à Internet.
 
Si jamais le serveur de supervision est inaccessible et que la passerelle ne peut pas télécharger le script Iptables, la version actuelle du script devra être conservée.
Monitoring
 
Partie visible de l'application, il s'agira d'une page web, représentant un tableau avec plusieurs informations :
 
• L'adresse IP
• L'adresse MAC qui correspond à la réservation pour cette IP
• Le nom du propriétaire de la machine associée
• Le statut DHCP : poste connecté ou non, signalé par la couleur de la case, le dernier bail DHCP accordé, ainsi que deux liens ouvrant des popups permettant d'afficher la liste de tous les baux DHCP, l'heure correspondante, et un outil pour tester la connexion vers la machine.
 
Le script php ne doit pas se servir des données présentes dans la base de données pour les différentes adresses : il doit parcourir tout le sous réseau (soit 253 adresses pour un sous réseau en 192.168.0.x / 24), et pour chacune voir s'il existe une entrée dans la base de données. Si les données existent, la ligne correspondante est affichée, avec la case Statut DHCP ayant un fond coloré selon la connexion ou non de la machine. Dans le cas contraire, la ligne est signalée avec un fond gris, et aucune information.
 
Pour tester la connexion de la machine, la commande ping n'est pas fiable, étant donné qu'il peut y avoir un firewall bloquant la réponse installé sur la machine. Dans ce cas là, il est souhaitable d'utiliser la commande arping ( http://www.habets.pp.se/synscan/pr [...] rog=arping ) qui permet de passer outre cette contrainte. Lors de la génération de la page, il faut voir s'il est possible de lancer simultanément la commande arping vers toutes les adresses MAC, pour ne pas attendre le timeout de la commande et se trouver bloquer par le temps maximal d'exécution du script PHP sur le serveur.
Surveillance du fichier de log du dhcp
 
Afin de constituer l'historique des baux DHCP, le fichier de log du DHCP doit être lu. Le temps de passage entre deux vérifications doit être inférieur à la durée de chaque bail, de manière à pouvoir voir tous les baux. Si un nouveau bail non enregistré est détecté, une entrée est ajoutée à la base de données. Le script de vérification sera écrit en langage Perl, et appelé grâce à cron.


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
mood
Publicité
Posté le 03-11-2005 à 01:09:45  profilanswer
 

n°748027
dofor
:F
Posté le 03-11-2005 à 01:57:48  profilanswer
 

drapal!
 
Je pourrai probablement pas t'aider vu que mes connaissances avoisinent le néant, mais ça m'intéresse :D

n°748028
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 03-11-2005 à 02:03:45  profilanswer
 

http://www.net.cmu.edu/netreg/


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°748029
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 03-11-2005 à 02:05:05  profilanswer
 

Y'a ptet des idées à "piocher" dans ce topic (en dehors du "fight" avec le iench ... ) => http://forum.hardware.fr/hardwaref [...] 5781-1.htm


Message édité par Zzozo le 03-11-2005 à 02:11:28

---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°748032
freds45
Posté le 03-11-2005 à 02:25:34  profilanswer
 


 
Sympa, ça semble gérer en partie ce à quoi j'avais pensé :) ... le seul truc, c'est que ça m'indique pas si un client particulier est connecté ou non au réseau... Et comme il y a (sur celui qui va me servir de test :D) 90% de portables, ... :/


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°748033
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 03-11-2005 à 02:29:13  profilanswer
 

Tu as regardé du côté de Netmon à l'url que je t'ai indiqué ?


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°748035
freds45
Posté le 03-11-2005 à 02:34:02  profilanswer
 

Oui j'ai vu, ça semble correspondre à ce que je cherche. Dommage qu'on puisse pas tester :/


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°748036
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 03-11-2005 à 02:35:32  profilanswer
 

freds45 a écrit :

Oui j'ai vu, ça semble correspondre à ce que je cherche. Dommage qu'on puisse pas tester :/


Tu peux downloader et installer


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°748037
freds45
Posté le 03-11-2005 à 02:36:58  profilanswer
 

Oui :D je pensais à une demo online, comme on trouve souvent pour ce genre d'outils :) Install et tests demain ou vendredi !


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°748038
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 03-11-2005 à 02:41:30  profilanswer
 

Y'a une démo là http://www-cgi.net.cmu.edu/netreg/demo/netreg.pl  mais je pense pas que toutes les fonctionnalités soient activées


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
mood
Publicité
Posté le 03-11-2005 à 02:41:30  profilanswer
 

n°748039
freds45
Posté le 03-11-2005 à 02:50:25  profilanswer
 

Oui, je l'avais vue... ya des petites choses qui me plaisent bien :) notamment la config du dhcp


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°748403
freds45
Posté le 03-11-2005 à 23:52:28  profilanswer
 

d'autres avis :p ?


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°767780
gonzoyumo
Posté le 04-01-2006 à 02:33:45  profilanswer
 

Salut, topic très interressant !
Je suis en DUT Informatique 2ème année et je dois développer une interface web d'administration de services reseaux pour mon Projet Tutoré.
Je planche actuellement sur la gestion des machines du parc informatique de l'IUT.
Mon projet semble recouper celui de freds45, peut être moins poussé même.
J'aurais donc voulu savoir s' il avait avancé ? et s'il faut que je me mette au perl si j'espère arriver à générer mon dhcpd.conf correctement un jour :D
 
Pour le moment j'était partie sur une analyse syntaxique avec des expressions régulières en php ... c'est vous dire ....
 
Merci, ++

n°767876
Profil sup​primé
Posté le 04-01-2006 à 17:05:09  answer
 

Deja fait ce genre de trucs pour des dns entre autres. Y'a moyen de tout faire en php. cron(tab) est un outil qui s'associe tres tres bien et permet de faire tres simplement des choses ahurissantes (configuration dynamique d'iptables et acl en temps reel pour des vpn).
 
A la place d'utiliser perl, tu peux aussi abuser des exec() et jouer avec le shell, pour plein de trucs.
 
Pour bien commencer, fais absolument un schema et "dessines" bien tes tables mysql.  
 
Linux, ca se savoure :o

n°767949
freds45
Posté le 04-01-2006 à 19:34:07  profilanswer
 

En fait, j'ai pas tellement avancé... :/
Pas trop le temps en ce moment (PFE à l'école), plein de boulot à côté, et plus de machine linux pour tester :/


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°767969
gonzoyumo
Posté le 04-01-2006 à 20:41:38  profilanswer
 

erf, c'est balo :p,  
Merci pour les propal Canth. En fait mon problème se situe surtout au niveau de la lecture/ecriture du fichier dhcp en respectant la syntaxe. Pourquoi l'ont-ils pas fait en xml  :??:  Ce serait plus simple à parser non.
Bon ba je vais me creuser les méninges.
 
merci ++

n°768451
freds45
Posté le 06-01-2006 à 13:32:10  profilanswer
 

Ce que j'avais pensé pour ce point la : pour la config generale, tu la mets en dur qquepart, dans un fichier plat ou dans une base de donnees. Ensuite, au moment de generer le fichier de conf final, tu utilises ce modele, dans lequel tu viens "greffer" les réservations, en utilisant le modele dans le 1er topic.


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°770568
Profil sup​primé
Posté le 11-01-2006 à 21:33:37  answer
 

freds45 a écrit :

Ce que j'avais pensé pour ce point la : pour la config generale, tu la mets en dur qquepart, dans un fichier plat ou dans une base de donnees. Ensuite, au moment de generer le fichier de conf final, tu utilises ce modele, dans lequel tu viens "greffer" les réservations, en utilisant le modele dans le 1er topic.


 
 :jap:

n°770621
gonzoyumo
Posté le 12-01-2006 à 00:09:58  profilanswer
 

erf, j'avais trouvé une astuce pour m'éviter des problèmes : Entrer toutes les machines, groupes et sous réseaux dans une BDD avec leur options et gérer mon interface web avec cette bdd. Ensuite à chaque modification on génère le fichier dhcpd.conf en entier (ce qui est relativement simpl en php/mysql)
Le souci c'est que du coup on ne le lit jamais et que donc on ne peut plus le modifier à la main sous peine de voir nos modif dégager à la prochaine utilisation de l'interface web ... et mon prof a pas voulu :( donc si qqn peut m'aider à parser ce bon dieu de fichier jlui en serait très reconnaissant. J'ai trouvé aucun prog le permettant et il faudrait alors que je fasse mon propre analyseur syntaxique/lexical ...  
 
merci ++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Idée de logiciel/script de gestion d'IP sur un réseau local/monitoring

 

Sujets relatifs
[Asterisk Voicemail] Gestion de l'espace disque[FC4] script pour cyrus-imap
Logiciel affichant les ressources utilisées sur le bureau sous LinuxConnecté au réseau wifi mais pas à Internet
[KDE] Gestion de la TransparenceProblème scanner sur réseau Mandriva + OSX (résolu)
reseau local machines linux/windowPaquets utilitaires reseau manquant
[Ubuntu] Gestion HyperThreading 
Plus de sujets relatifs à : Idée de logiciel/script de gestion d'IP sur un réseau local/monitoring


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR