Cyberus Network, votre gardien sur le réseau

Afin de développer l’enseignement technique par la pratique, l’INTECH était demandeur d’une solution de supervision du réseau interne à l’école pour que chaque personne présente sur celui-ci puisse l’utiliser dans les meilleures conditions possibles, et ce, en fonction de la bande passante disponible interne et externe du réseau existant. Ce besoin était motivé par le fait que des lenteurs, des pertes de donnée et parfois une rupture complète de l’accès à internet apparaissaient sur le réseau interne de test.

Cette solution devait donc filtrer des paquets de données et faire de la priorisation de services (QoS). Associé à cela, la solution devait également fournir un service de réseau privé virtuel (VPN) afin que les étudiants ou le corps professionnel puissent accéder au réseau de l’école lors de leur déplacement.

 

Les technologies mises en œuvre

 

La solution matérielle donc nous disposions pour ce projet est un système embarqué de type Soekris Net4801. Ce produit, avant tout conçu pour des systèmes d’exploitation de type BSD, nous avons utilisé le système d’exploitation OpenBSD dans sa dernière version 5.5. Peu consommateur d’énergie et compact et doté de 5 ports 10/100 Mbit, ce produit nous permet de le laisser en production 24h/24 7j/7.

Le choix d’OpenBSD comme système d’exploitation est motivé par le besoin exprimé par le client d’avoir une solution robuste et fiable, peu consommatrice en ressource système. Réputé sûr et performant, économe et avant tout pensé pour la gestion du réseau, OpenBSD a retenu toute notre attention pour ce projet.

Cependant, datant d’avril 2004 et possédant des ressources système limité (processeur NSC SC100 de 233 MHz, 1 Go de stockage sur Compact Flash et juste 128 Mbyte de mémoire vive), nous devons continuellement nous assurer que nous ne dépassons pas les capacités de la machine avec notre système d’exploitation ou bien avec nos services qui sont eux plus actuelle.

Les objectifs de ce projet étaient les suivants :

1. Pouvoir mettre des priorités à des flux réseau sur le réseau Cyberus

  • Filtrage des paquets en transit : Packet Filter

Packet Filter est devenu au fil des ans la référence dans le domaine du pare-feu logiciel. Cet outil permet de superviser les machines par interface, par service utilisé, par adresse IP source ou de destination.

2. Pouvoir agir sur les équipements du réseau Cyberus

  • Attribution d’IP à chaque machine présente sur le réseau

Nous avons retenu le serveur DHCP inclus dans OpenBSD afin d’éviter d’alourdir le système par de la redondance de service.

  • Serveur et Relais Split Horizon DNS : TinyDNS/djbDNS

Contrairement à BIND, TinyDNS est plus léger et plus simple d’utilisation dans le cas d’utilisation de Script Shell tout en ayant les mêmes fonctionnalités.

3. Pouvoir identifier les ruptures de service du Cyberus et leurs causes

  • Script perl/shell vérifiant que les paramètres définis en amont soient corrects : Utilisation du CPU – Mémoire – Disque Dur – Service
  • Supervision des équipements réseau : SNMP
  • Service de messagerie : smtpd

4. Pouvoir se connecter au réseau Cyberus de manière distante

  • Permettre aux personnes externes de se connecter au réseau : OpenVPN

5. Représenter les flux réseau Cyberus sur un graphe

  • Générateur de graphique : RRDTool

Cet outil permet d’afficher toute donnée numérique sous forme de graphique, comme par exemple, la température, le nombre de connexions à la minute, la quantité de donnée échangée, etc.

6. Réaliser l’interface Web et intégrer les fonctionnalités

  • Serveur Web pour la page d’administration (service imposé par le client) :
    • Apache 2 pour la partie serveur
    • PHP 5 / HTML 5 et CSS pour les langages utilisés pour les pages web
    • Shell Script / Perl pour le langage machine
    • MySQL / phpMyadmin pour les bases de données
  • Serveur de fichier SFTP : mySecureShell

Formation personnelle

Ce premier projet technique m’a permis de découvrir le mode itératif. Ainsi le projet était décomposé en 4 « milestones » où des livrables devaient être constitués. De plus, le périmètre du projet faisait cohabiter beaucoup de technologies différentes. Il a fallu constituer de grands ensembles, afin de répartir cette charge entre les membres du groupe. Enfin, une gestion documentaire avait été mise en place afin de pouvoir partager nos connaissances (tutoriel interne).

Ce projet fut une grande découverte pour moi. En effet, je venais d’un monde de langage, de couleur, d’accroche, de communication pour être chef de projet d’un système informatique. De plus, dans mes précédentes missions, la seule ressource que je devais gérer en tant que chargé de projet était moi-même. Ma plus grande difficulté a été de gérer un groupe d’étudiants n’ayant pas la même implication ou la même maturité face aux enjeux que représentait ce projet. Cela a été un vrai défi que de porter ce projet et de canaliser mes coéquipiers vers le respect de nos engagements.

Liens connexe: