Rapport stage Dess Isa



Yüklə 0,52 Mb.
səhifə5/13
tarix02.11.2017
ölçüsü0,52 Mb.
#27769
1   2   3   4   5   6   7   8   9   ...   13

2.4Le routeur ( router )


Son rôle est de filtrer un document structuré en lui appliquant des critères sur ses différents champs. Le flux qu’il reçoit en entrée est donc traité et redirigé vers les clients bénéficiant de son service par abonnement. La fenêtre du routeur (voir Figure 3) affiche l’arborescence des filtres appartenant aux clients qui s’y sont abonnés. Quand on sélectionne une des feuilles de l’arbre, il indique l’identificateur du client ainsi que le champ et la valeur du filtrage. Le bouton change tree configuration permet de rafraîchir l’affichage si cela ne s’est pas fait automatiquement.


Figure 3 - Vue du routeur

2.5Le client


Il n’y a aucune modification à effectuer sur la machine où fonctionne le client en ce qui concerne les droits d’accès dans le fichier java.policy. Cependant, certains droits doivent être donnés sur la machine où fonctionne le routeur. Celui-ci peut ainsi fournir les messages au client de visualisation et le client peut envoyer son filtre.

La fonction du client est de recevoir les messages IDMEF du router selon le filtre que celui-ci a fourni lors de son abonnement. La présentation des messages IDMEF (voir Figure 4) s’effectue dans un tableau. Un affichage du nombre de messages reçus est aussi disponible.




Figure 4 - Vue principale du client de visualisation
La présentation des messages est paramétrable (voir Figure 5). Le client a alors la possibilité de choisir les colonnes qu’il désire visualiser ainsi que le format d’affichage de la date et d’autres options telles que le nombre maximum de messages qu’il souhaite visualiser.


Figure 5 - Paramétrage de la vue principale
Le client de visualisation a la possibilité de ne recevoir que certains messages. Pour cela, il envoie au routeur le filtre qu’il désire.

Pour le créer et pour s’abonner au routeur, le client dispose d’une interface (voir Figure 6) qui lui permet de composer son propre filtre suivant la structure en arbre défini par la norme XML IDMEF. Chacun des champs étant éditable, ce filtre peut être très complet. Il suffit ensuite que l’opérateur envoie ce filtre au routeur par l’intermédiaire du bouton send filter. Il faut noter que ce filtre permet aussi de spécifier une requête sur la base du DBClient.




Figure 6 - Vue modification et envoi du filtre d’abonnement

2.6Le DBClient


Le DBClient (ou client de base de données) est connecté à une base PostgreSQL pour archiver toutes les attaques reçues par le routeur. Cette base de données est composée de 46 tables. Ces tables servent à enregistrer toutes les informations issues du routeur, elles sont donc organisées de manière à représenter fidèlement un message XML-IDMEF.
DIAMS utilisait auparavant une base de données MySQL pour stocker les différents enregistrements reçus par le client de base de données Les raisons qui ont poussé les concepteurs à migrer de MySQL à PostgreSQL sont dues au fait que Postgresql possède plusieurs fonctionnalités qui sont absentes de MySQL. En particulier, il fournit les transactions et les triggers :

  • Les transactions sont des suites d’instructions qui forment un bloc indivisible. Ainsi tout changement effectué durant la transaction n’est visible qu’après l’exécution de la dernière instruction de la transaction (COMMIT : pour exécuter la transaction ou ROLLBACK : pour annuler la transaction).

  • Les triggers sont des opérations automatiques, exécutées avant ou après des événements, par le gestionnaire de triggers de Postgresql en réponse à ces événements. Ces derniers correspondent à n’importe quelle modification apportée à une base de données par une requête SQL : une insertion, une mise à jour ou une suppression de tuples (lignes).

Ces outils ne sont pas utilisés dans la suite de ce document car ils sont destinés à un usage ultérieur. Ils pourraient servir lors de la modification d’une alerte d’informer d’autres personnes travaillant sur cette alerte afin qu’ils puissent prendre en compte ces modifications.



2.6.1Installation de PostgreSQL


Dans cette partie, mon objectif fut d’installer une base de données PostgreSQL, ainsi que les paquetages nécessaires à la base de données utilisée par Diams. PostgreSQL est un SGBDR(Système de Gestion de Base de Données Relationnelles) Open Source. La machine qui héberge la base de données repose sur une distribution Linux Mandrake 10.0. Les cinq paquetages installés sont les suivants :


  • PostgreSQL

      • Ce paquetage inclut le programme du client et les librairies nécessaires pour accéder à un serveur PostgreSQL. Le client, qui peut être local ou distant du serveur, accède et manipule la structure interne des bases de données du serveur.

  • Postgresql-lib

      • Librairies partagées nécessaires aux autres programmes voulant accéder au serveur (par exemple un programme C/C++).

  • Postgresql-server

      • Programmes nécessaires pour créer et exécuter le serveur. Ils permettront par la suite d’administrer les bases de données PostgreSQL. Le serveur de PostgreSQL se nomme « postmaster ».

  • Postgresql-jdbc

      • Ce paquetage inclut les fichiers .jars (format d’archives JAVA) permettant aux programmes écrits en java d’accéder aux bases de données PostgreSQL.

  • Postgresql-tcl et Postgresql-tk

      • Ces deux paquetages sont utilisés par pgaccess, un utilitaire graphique de postgreSQL permettant d’effectuer des opérations sur les bases de données postgreSQL en mode graphique.


2.6.2Configuration de PostgreSQL

Tout d’abord il faut identifier les ordinateurs à partir desquels on souhaite accéder au serveur de base de données. Cela nécessite l’utilisation de deux fichiers de configuration de postgreSQL : pg_hba.conf et pg_ident.conf.


Le fichier pg_hba.conf permet d’avoir un contrôle plus ou moins sévère sur l’authentification des applications clientes souhaitant se connecter au serveur. Ce fichier est constitué d’un ensemble d’enregistrements ayant un format bien déterminé. Voici un extrait du fichier utilisé sur la machine hébergeant la base de données de DIAMS :



TYPE

DATABASE

IP_ADDRESS

MASK

AUTH_TYPE

AUTH_ARGUMENT

host

all

127.0.0.1

255.255.255.255

trust

 

host

diams

192.168.60.94

255.255.255.0

trust

 

host

diams

192.168.60.97

255.255.255.0

trust



Ici, la première ligne spécifie que la machine sur laquelle est installé le serveur peut accéder à toutes les bases de données PostgreSQL et les deux dernières lignes, que les machines 192.168.60.94 et 192.168.60.97 peuvent accéder uniquement à la base de données Diams. Dans l’exemple ci-dessus, l’argument « trust » stipule que le mécanisme d’authentification mis en œuvre est basé sur la confiance : on peut choisir cette option quand, au niveau du système, une protection sur les connexions du port du postmaster existe. Cela signifie que le client peut se connecter à la station serveur mais pas à une base de données. Pour cela il lui faudra fournir le mot de passe de l’utilisateur dont il se sert de l’identité pour se connecter à la base de données (par défaut postgres : l’administrateur des bases de données PostgreSQL).

Si toutefois on voulait mettre en œuvre un mécanisme de sécurité plus contraignant, on pourrait le faire de différentes manières parmi lesquelles figure la configuration du fichier pg_ident.conf. Pour se connecter au serveur, DIAMS utilise l’outil JDBC de Java. Or Java utilise uniquement les connexions TCP/IP pour se connecter aux bases de données. Le serveur de PostgreSQL doit être configuré pour accepter les connexions TCP/IP, ce qui peut être fait en fixant la variable « tcpip_socket » à « true » dans le fichier de configuration de PostgresSQL : postgresql.conf et en démarrant le postmaster avec l’options « -i ».

La base de données étant sous un système d’exploitation linux et la version source de DIAMS étant développée sous Windows, il est nécessaire d’avoir un pilote postgresql ODBC chargé sur la ma chine Windows, pour que la communication entre DIAMS est sa base de donnée puisse se faire correctement.

DIAMS utilise un « middleware » (logiciel personnalisé), XML-DBMS pour échanger des informations avec la base de données. XML-DBMS était parfaitement opérationnel avec la base de données MySQL et est compatible avec les bases de données PostgreSQL. Il ne reste plus qu’à mettre en œuvre les changements nécessaires pour que la coopération DIAMS/XML-DBMS/PostgreSQL se fasse convenablement.


Yüklə 0,52 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   13




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin