REPUBLIQUE DU BENIN
************
UNIVERSITE D’ABOMEY-CALAVI (UAC)
**********************
ECOLE POLYTECHNIQUE D’ABOMEY-CALAVI (EPAC)
******************************
DEPARTEMENT DE GENIE INFORMATIQUE ET TELECOMMUNICATION (GIT)
Option : Réseaux et Télécommunications
**************
PROJET POUR MEMOIRE DE FIN DE FORMATION
EN VUE DE L’OBTENTION DU
DIPLOME D’INGENIEUR DE CONCEPTION
**************
Réalisé par : DAGBA Towounhedo Boris Romaric
Soutenu publiquement le mercredi 25 septembre 2015 devant le jury composé de :
Président :Pr. Marc Kokou ASSOGBA, Maître de conférence à l’EPAC Membres : Dr. DOSSOU Michel Maître-Assistant CAMES (Maître)
Dr. SOGBOHOSSOU Médésu, Maître-Assistant CAMES (EPAC) Dr. Tahirou DJARA, Enseignant-Chercheur à l’EPAC
Année Académique : 2014-2015 8ème Promotion
Développement d’une application de gestion de la connectivité
internet déployée sous Linux
Table des matières
Table des matières ...
Liste des sigles et acronymes ... iii
Liste des figures et des tableaux ... iv
Dédicace ... vi
Remerciements ... vii
Résumé ... viii
Abstract ... ix
INTRODUCTION GENERALE ... 2
Chapitre 1 : Synthèse bibliographique et domaines d’utilisation ... 6
1.1. Fonctionnement des applications de gestion des réseaux clients-serveur ... 6
1.1.1. Les principes du NAC ... 6
1.1.2. Les composants d'une architecture NAC ... 8
1.2. Les applications de gestion des réseaux clients-serveur ... 8
1.2.1. Microsoft : Network Access Protection (NAP) ... 9
1.2.2. Cisco : CNAC (Cisco Network Asset Collector) ... 9
1.2.3. Juniper Networks: UAC (Unified Access Control) ... 10
1.2.4. ALCASAR ... 11
1.2.5. TrueCafe ... 11
1.3. Utilisation des applications de gestion des réseaux clients-serveur ... 11
DEUXIÈME PARTIE : MATÉRIEL ET MÉTHODES ... 14
Chapitre 2 : Choix techniques et Matériel ... 15
2.1. Système d’exploitation ... 15
2.2. Langage de modélisation ... 15
2.3. Langages de programmation ... 16
2.4. Langage de description ... 17
2.5. La passerelle d'interception (portail captif) ... 17
2.6. Système de gestion de base de données (SGBD) ... 20
2.7. Serveur RADIUS ... 21
2.7.1. Les différents types de paquets Radius ... 21
2.7.2. FreeRadius ... 22
2.8. Serveur web ... 24
Chapitre 3 : Méthodes ... 27
3.1. Méthodologie... 27
3.1.1. Expression des besoins ... 27
3.1.2. Analyse ... 28
3.2. Configuration des outils nécessaires ... 66
3.2.1. Configuration des interfaces ... 67
3.2.2. Activation de l’IP Forwarding ... 68
3.2.3. Installation et configuration du SGBD : Mysql ... 68
3.2.4. Installation et configuration du Radius : FreeRadius... 69
3.2.5. Installation et configuration du serveur de redirection : Coova-chilli ... 76
3.2.6. Mise en place du serveur web sécurisé : HTTPS ... 82
3.2.7. Gestion du temps de connexion des téléchargements des utilisateurs ... 86
3.3. Etude des conditions de déploiement de l’application ... 89
3.3.1. Caractéristiques du serveur ... 90
3.3.2. Caractéristiques des clients ... 90
3.3.3. Evaluation du coût minimal de déploiement ... 91
3.4. Fonctionnement de l’application ... 91
3.5. Sécurité de l’application ... 92
TROISIÈME PARTIE : RÉSULTATS ET DISCUSSION ... 94
Chapitre 4 : Résultats obtenus ... 95
4.1. Présentation de l’application ... 95
4.1.1. Page d’accueil de l’application ... 96
4.1.2. Présentation du menu de l’interface administrateur ... 97
4.1.3. Présentation de l’interface du client... 104
4.2. Protocole de mesure ... 106
Chapitre 5 : Discussion ... 113
Conclusion et perspectives ... 114
Références bibliographiques ... 115
Annexes ... 117
Summary ... 120
1. Project overview ... 121
1.1. Context, Rationale & problematical ... 121
1.2. Objectives ... 121
2. Literature review ... 122
2.1. Operation client-server network management applications ... 122
2.1. Evolution client-server network management applications ... 122
3. Materials and methods ... 123
3.1. Methodology ... 123
3.2. System architecture ... 123 i
3.3. Technical choices ... 124
3.4. Hardware Specifications ... 125
4. Results ... 125
Conclusion and future work ... 127
ii
Liste des sigles et acronymes
A
API: Application Programming Interface ASP: Active Server Page
C
CSS: Cascading Style Sheet
CDMA: Code Division Multiple Access CNAC: Cisco Network Asset Collector
D
DHCP : Dynamic Host Configuration Protocol DNS : Domain Name Server
DVD : Digital Versatil Disk
H
HTML: Hypertext Markup Language HTTP: Hypertext Transfer Protocol HDD : Hard Disk Drive
HTTPS: Hyper Text Transfer Protocol Secure
I
IDE : Integrated Drive Electronics IP : Internet Protocol
IPSec : Internet Protocol Security
J
JSP : Java Server Page
F
FAI : Fournisseur d’Accès Internet
N
NAS: Network Access
NAP : Network Access Protection NTP : Network Time Protocol
P
PHP: Personal Home Page: Hypertext Processor PDP: Policy Decision Point
PERL: Practical Extraction and Report Language
Q
QoS: Quality of Service
V
VPN : Virtual Private Network
W
WEP : Wired Equivalent Privacy WIFI : WIreless FIdelity
WPA: Wireless protected access
R
RAM: Random Access Memory ROM: Read Only Memory
S
SE : Système d’Exploitation
SGBD: Système de Gestion de Base de Données SAV: Service Après-Vente
SSID : Service Set IDentifier SSL : Secure Sockets Layer SQL: Structured Query Language
SNMP : Simple Network Management Protocol
T
TCP : Transmission Control Protocol TCG : Trusted Computing Group TNC : Trusted Network Connect
U
UML: Unified Modeling Language URL: Unified Resource Locator UP: Unified Process
UAC : Unified Access Control
iii
Liste des figures et des tableaux
Figure 2.1: Présentation schématisée d'un portail captif ... 18
Tableau 2.1 : Tableau comparatif des différents portails Captifs ... 19
Tableau 2.2 : Tableau comparatif des SGBD ... 20
Tableau 2.3 : Tableau comparatif des différents serveurs web ... 25
Tableau 2.4 : Outils et librairies utilisés ... 26
Figure 3.1 : Diagramme de cas d’utilisation de l’acteur « client non connecté » ... 30
Figure 3.2 : Diagramme de cas d’utilisation de l’acteur « Client » ... 31
Figure 3.3 : Diagramme de cas d’utilisation de l’acteur « NAS» ... 32
Figure 3.5 : Diagramme de cas d’utilisation de l’acteur « Administrateur » ... 35
Figure 3.6 : Diagramme de séquence du cas d’utilisation « S’authentifier » : Admin / Gérant ... 45
Figure 3.7 : Diagramme de séquence du cas d’utilisation « S’authentifier » : Client ... 46
Figure 3.8 : Diagramme de séquence du cas d’utilisation « Ajouter un client »... 47
Figure 3.9 : Diagramme de séquence du cas d’utilisation «Modifier un client » ... 48
Figure 3.10 : Diagramme de séquence du cas d’utilisation «Chercher un client » ... 49
Figure 3.11 : Diagramme de séquence du cas d’utilisation «Activer un client » ... 50
Figure 3.12 : Diagramme de séquence du cas d’utilisation «Désactiver un client » ... 51
Figure 3.13 : Diagramme de séquence du cas d’utilisation «Se déconnecter» : Admin / Gérant .. 52
Figure 3.14 : Diagramme de séquence du cas d’utilisation «Se déconnecter» : Client ... 53
Figure 3.15 : Diagramme de séquence du cas d’utilisation «Créer un plan de tarification » ... 54
Figure 3.16 : Diagramme de séquence du cas d’utilisation « Modifier un plan » ... 55
Figure 3.17 : Diagramme de séquence du cas d’utilisation « Activer un plan » ... 56
Figure 3.18 : Diagramme de séquence du cas d’utilisation «Consulter les autorisations des clients » ... 57
Figure 3.19 : Diagramme de séquence du cas d’utilisation «Consulter la comptabilité des clients » ... 58
Figure 3.20 : Diagramme de séquence du cas d’utilisation «Consulter tarification » ... 59
Figure 3.21 : Diagramme de séquence du cas d’utilisation «Consulter les graphes» ... 60
Figure 3.22 : Diagramme de séquence du cas d’utilisation «Consulter les offres du réseau » ... 61
Figure 3.23 : Diagramme de séquence du cas d’utilisation «Avoir la connexion internet» ... 62
Figure 3.24 : Tables du serveur Radius ... 65
Figure 3.25 : Tables de gestion des administrateurs et tarifications... 66
Figure 3.26 : Architecture du réseau ... 67
Figure 3.27 : Configuration de mysql ... 69 iv
Tableau 3.1 : Caractéristiques matérielles minima des logiciels ... 90
Tableau 3.2 : Caractéristiques matérielles du serveur ... 90
Tableau 3.3 : Caractéristiques matérielles du client ... 91
Tableau 3.4: Evaluation du coût minimal de déploiement ... 91
Tableau 4.1 : Liste des hôtes utilisées pour le test ... 95
Figure 4.1 : Réseau local testé ... 96
Figure 4.2 : Page d’accueil de l’application ... 97
Figure 4.3 : Page du menu Home de l’application ... 98
Figure 4.4 : Page du menu Management de l’application ... 99
Figure 4.5 : Page de la création de compte client du menu Management de l’application. ... 99
Figure 4.6 : Page de gestion de compte administrateur du menu Management de l’application. ... 100
Figure 4.7 : Page du menu Rapport de l’application ... 100
Figure 4.8 : Information sur les clients dans le menu Rapport de l’application ... 101
Figure 4.9 : Page du menu Statistique de l’application ... 102
Figure 4.10 : Page du menu Facturation de l’application ... 103
Figure 4.11 : Création de plan de tarification dans le menu Facturation de l’application ... 103
Figure 4.12 : Page du menu Graphes de l’application ... 104
Figure 4.13 : Interface du client ... 105
Figure 4.14 : Décrémentation des autorisations ... 105
Tableau 4.2 : Caractéristiques des machines ... 106
Figure 4.15 : Mesure sur les serveurs ... 107
Tableau 4.3 : Conditions de test sur les serveurs ... 107
Figure 4.16 : Mesure sur le serveur Linux ... 108
Figure 4.17 : Mesure sur le serveur Windows ... 108
Figure 4.18 : Conclusion partielle ... 109
Figure 4.19 : Mesure sur les clients ... 110
Tableau 4.4 : Conditions de test sur les clients ... 110
Figure 4.20 : Mesure sur le client Linux ... 111
Figure 4.22 : Conclusion partielle ... 112
Figure 1: Network Architecture ... 124
Figure 2 : home interface ... 126
Figure 3: Management interface ... 126
v
Dédicace
Je dédie ce rapport :
A Dieu tout puissant, pour son assistance permanente;
A mes parents, DAGBA Sévérin et VANVANHOSSOU Pascaline, vous qui n’avez ménagé aucun effort pour satisfaire le moindre de mes besoins, ce travail vous est tout particulièrement dédié ;
A mes sœurs Mariette, Edwige, Yvette et Nadège ; A tous mes oncles et tantes ;
A tous mes amis, pour votre soutien.
vi
Remerciements
En préambule, je souhaite témoigner toute ma reconnaissance à Dieu, le Père Tout-Puissant, qui m’a permis d’aller jusqu’au bout de ce travail.
Mes remerciements vont également à l’endroit de toutes les personnes qui, de près ou de loin, ont contribué à l’élaboration de ce mémoire. Je pense particulièrement : - au Pr. Félicien AVLESSI, Directeur de l’École Polytechnique d’Abomey- Calavi
(EPAC) et à tout le personnel administratif
- au Pr. Marc Kokou ASSOGBA, Chef du département Génie Informatique et Télécommunications (GIT)
- au Dr. Michel DOSSOU, maître de ce mémoire, qui a accepté encadrer ces travaux
- à tous les professeurs de l’EPAC, et en particulier à ceux qui ont participé à ma formation, pour la richesse de leurs enseignements
- à tous mes camarades du département GIT et de la 8ème promotion du Secteur Industriel.
vii
Résumé
Au cours de ce travail, une application de gestion d’un réseau clients-serveur sous Linux permettant d’offrir à tout administrateur de réseau (cyber café par exemple), la possibilité de contrôler l’accès à son réseau wifi ou filaire. Les principes de réalisation des contrôleurs d’accès NAC (Network Access Control) ont été utilisés pour construire cette application.
Après analyse des besoins des utilisateurs dont les principaux sont les administrateurs et les clients, une architecture fonctionnelle a été dégagée et l’application a été élaborée. L’élaboration de l’application nous a amenés à choisir, un serveur Radius pour l’authentification, une passerelle de redirection pour intercepter les requêtes clientes, un langage de modélisation UML et les langages de programmation php et Javascript. L’étude effectuée a pris en compte les aspects techniques de sa mise en œuvre ainsi que les paramètres nécessaires à sa mise en place. Cette application a permis une gestion efficace de la connexion internet dans un réseau clients-serveur à savoir, l’allocation d’une durée de connexion, la limitation des téléchargements, le verrouillage de bureau et la gestion des sessions utilisateurs et administrateurs. Sur la base des divers outils retenus, l’application a été développée puis testée avec succès.
Mots-clés : NAC, Radius, contrôleurs d’accès
viii
Abstract
In this work, an application for managing a clients-server network application under Linux has been designed. It offers any network administrator (hotspot for example), the ability to control access to its wireless or wired network. The principles of realization of the controllers of access NAC (Network Access Control) were used to build that application.
After analysis of administrators and customers need, a functional architecture has been emitted and the application was developed. The development of the application has led us to choose a Radius server for authentication, redirection gateway to intercept client requests, a modeling language UML and programming languages PHP and Javascript. The study took into account the technical aspects of its implementation as well as the parameters required for its implementation. This application enabled the effective management of the internet connection in a clients- server network like, the allocation of a connection time, blocking torrents, limiting downloads, desktop locking and managing users and administrators sessions. Based on various selected tools, the application was developed and successfully tested.
Keys-Word : NAC, Radius, access controllers
ix
INTRODUCTION GENERALE
Dans un monde idéal, tout le monde pourrait se faire confiance et l’accès aux ressources ne devrait pas être restreint en fonction d’une identité. Dans un tel monde, personne n’essaierait d’avoir accès à l’internet sans autorisation et de façon illégale. Il ne serait alors pas nécessaire de garder une trace des opérations qu’effectue une personne.
Pourtant, la réalité est tout autre. Les tentatives d’intrusion dans les réseaux informatiques et les usurpations d’identités sont monnaie courante. Il est donc nécessaire de mettre en place des systèmes d'authentification sur ces réseaux afin d’interdire la connexion à toute personne non autorisée. Ces systèmes doivent permettre entre autre une compatibilité avec la majorité des appareils mobiles du marché, une sécurisation des échanges entre les clients et le réseau, une grande transparence lors de la phase d'authentification.
Ils doivent être capables de fournir les fonctionnalités suivantes :
L’administration des identités des divers systèmes d’extrémité qui se connectent à un réseau
L’évaluation des systèmes d’extrémité, avant et après qu’ils sont autorisés à se connecter au réseau
La capacité d’appliquer avec précision des politiques appropriées d’utilisation du réseau et des applications sur tous les systèmes d’extrémité
Une assistance pour la remédiation des systèmes d’extrémité et/ou des utilisateurs qui ne sont pas conformes aux politiques de sécurité et d’utilisation du réseau
Un reportage de conformité qui renseigne sur la situation actuelle et passée des systèmes d’extrémité sur le réseau et sur ce qu’ils y faisaient.
Devant ces contraintes, le NAC (Network Access Control) est une solution pour la gestion de la connectivité internet du réseau sous Linux. Le NAC est un contrôleur d'accès au réseau qui permet d'authentifier les usagers, de contrôler les accès, de tracer les connexions effectuées, de protéger le réseau de consultation. Le principe général de cette application consiste à forcer un client souhaitant utiliser les services
2
du réseau, à s’authentifier pour l’ouverture d’une session sur l’ordinateur via une page web. Après ces authentifications, le client a accès au réseau de façon classique.
C’est dans cet ordre d’idée que nous avons choisi comme thème : Développement d’une application de gestion de la connectivité internet déployée sous Linux.
1. Contexte, Justification & Problématique
Un réseau clients-serveur est un réseau dans lequel le client demande l’exécution d’un service et le serveur réalise le service.
Dans le but de gérer ces réseaux, plusieurs applications sont ainsi développées.
Ces applications sont souvent utilisées dans un but lucratif ou non, au niveau des cybers, des hôtels, des aéroports, d’entreprises … La plupart des applications de gestion de réseau clients-serveur sont sous des systèmes spécifiques ou propriétaires.
Parmi ces applications, on peut citer, ALCASAR1 qui est une application libre sous un système spécifique Mageia-dual, Truecafe2 qui est une application payante sous Windows et les applications implémentées dans les routeurs Cisco3 et Microsoft4. Ces dernières sont propriétaires, ont une fonctionnalité restreinte, ne sont pas susceptibles de modification, sont de capacité de gestion très limitée et non utilisable pour des réseaux de grande taille.
Après ces analyses, on se rend compte qu’il serait nécessaire de développer une application pour la gestion de la connectivité internet du réseau, sous un système libre Linux. Pour tous ces équipements, l’application joue le rôle de serveur de noms de domaine (DNS), de serveur de temps (NTP) et de passerelle par défaut (default gateway).
1http://www.alcasar.net/ , consulté le 22/07/2015
2http://www.truecafe.net , consulté le 22/07/2015
3 http://www.cisco.com , consulté le 22/07/2015
4 http://www.microsoft.com , consulté le 22/07/2015
3
2. Objectifs
Le travail qui sous-tend ce mémoire de fin d’études d’ingénieur de conception a pour objectif principal l’élaboration d’un contrôleur d'accès au réseau (NAC : Network Access Control) innovant.
Il s’agira, plus spécifiquement :
Permettre aux clients de se connecter au moyen de différentes technologies (filaire Ethernet, WiFi, etc.)
Permettre la connexion aux clients disposant d'un navigateur Web, d'un identifiant, d'un mot de passe et d’une carte réseau
Amener le client à ne faire aucune configuration particulière sur son poste Rediriger automatiquement de façon sécurisée sur une page d'authentification toutes les requêtes des clients
Rendre l'accès au réseau indépendant du système d’exploitation utilisé
Gérer efficacement le temps de connexion des utilisateurs et les téléchargements
Gérer les utilisateurs et leurs équipements Les possibilités de cette interface sont les suivantes :
Afficher l'activité du réseau, déconnecter un utilisateur,
Créer, chercher, modifier et supprimer des usagers ou des groupes d'usagers Importer des noms d'usager via un fichier texte ou via une archive de la base des usagers et vider la base des usagers
Définir des équipements de confiance pouvant joindre Internet sans authentification (exceptions)
Sauvegarder des traces de la connexion Gérer les statistiques
Gérer des comptes d'administration Gérer des sessions utilisateurs
4
PREMIÈRE PARTIE : REVUE DE LITTÉRATURE
5
Chapitre 1 : Synthèse bibliographique et domaines d’utilisation
1.1. Fonctionnement des applications de gestion des réseaux clients-serveur
L’application est positionnée en coupure entre l'accès Internet et le réseau de consultation. Il permet d'authentifier les usagers, de contrôler les accès, de tracer les connexions effectuées, de protéger le réseau de consultation. L’application est constitué essentiellement des éléments d'un contrôleur d'accès au réseau NAC (Network Access Control) [1].
1.1.1. Les principes du NAC
Le NAC n'est pas une technique ou une architecture, le NAC est plus proche d'un concept, d'une solution. Il est censé répondre à la mise en œuvre de certaines parties de la politique de sécurité concernant l'accès au réseau local (filaire, sans-fil ou VPN (Virtual Private Network)) dont principalement :
L'identification et l'authentification des utilisateurs;
L'évaluation du niveau de sécurité des systèmes se connectant;
La gestion des « invités »;
Le contrôle de l'activité.
L'ensemble des informations collectées seront utilisées pour positionner le système demandant un accès dans un certain environnement réseau. Cet environnement sera choisi en fonction de la politique de sécurité en vigueur [1].
1.1.1.1. Identification et authentification
L'identification et l'authentification sont à la base du NAC. Connaître l'identité des entités qui souhaitent accéder à vos ressources et pouvoir vérifier ces identités permet la mise en place des règles d'accès décidées lors de l'élaboration de la politique de sécurité. Ces deux mécanismes peuvent être employés, pour des systèmes
6
physiques (ordinateurs, imprimantes, etc...), pour des utilisateurs, ou bien pour les deux quand les règles d'accès à appliquer à un utilisateur dépendent du système utilisé (et inversement).
1.1.1.2. Évaluation et conformité
Le besoin d'évaluer les systèmes qui souhaitent accéder à des ressources s'est accru avec l'augmentation de leur mobilité et de leur diversité. Ces systèmes peuvent être aussi bien à l'origine d'attaque utilisant le réseau que les cibles de ces attaques. Il est donc apparu essentiel de récupérer un maximum d'informations sur ces systèmes pour décider de la politique à leur appliquer.
1.1.1.3. Isolement et mise en conformité
Lorsque le choix d'interdire l'accès à la ressource réseau demandée a été fait, il est nécessaire de mettre en place un dispositif permettant d'appliquer cette interdiction mais aussi de permettre la mise en conformité du système d'extrémité par rapport aux règles. Cela implique une capacité à communiquer avec le gestionnaire du système (ou le système directement) pour l'informer des raisons de sa mise à l'écart et des actions qu'il doit mener pour respecter la politique de sécurité.
1.1.1.4. Contrôle des activités
Un contrôle permanent des activités du système connecté est utile pour pouvoir s'assurer du respect de la politique de sécurité. En cas d'infraction aux règles, il est intéressant de pouvoir réagir en modifiant les accès aux ressources et en informer le gestionnaire du système.
1.1.1.5. Inventaire
L'inventaire est un rôle connexe au NAC, puisque c'est en s'appuyant sur les informations collectées qu'il est possible d'obtenir un état des lieux du parc informatique (historique ou temps réel). Cet inventaire peut être effectué sur les matériels physiques mais peut aussi s'étendre jusqu'aux logiciels utilisés.
7
1.1.2. Les composants d'une architecture NAC
Malgré l'hétérogénéité des solutions de NAC, on peut distinguer différents éléments essentiels composant une architecture NAC.
La machine physique qui souhaite accéder à des ressources, appelé ici « système d'extrémité »;
Le « système d'évaluation » va décider du contexte dans lequel va être placé le système d'extrémité à partir des informations recueillies sur ce dernier;
Le « système de contrainte » applique les modifications de contexte décidées par le « système d'évaluation »;
Le « système de mise en conformité » est un espace de quarantaine où les systèmes d'extrémité auront la possibilité de devenir conformes à la politique de sécurité.
L'ensemble de ces composants devra être capable de fournir les informations permettant de suivre en temps réel les différents événements d'un accès au réseau et de construire un historique en respectant les lois relatives à la conservation des données individuelles [1].
1.2. Les applications de gestion des réseaux clients-serveur
Les principaux acteurs commerciaux du NAC sont actuellement Microsoft, Cisco et Juniper. Il est intéressant de constater que si historiquement les constructeurs de matériel réseau se sont emparés du marché, c'est aujourd'hui que les développeurs de système d'exploitation et de logiciels informatiques semblent être les mieux positionnés pour dominer le marché. Ce changement est certainement le reflet de la tendance à embarquer sur les systèmes d'extrémité le maximum d'outils de sécurité, une évolution déjà présente au niveau des pare-feu.
Il existe sur le marché de nombreuses solutions. Dans ce marché immature, on note assez couramment la disparition d'acteurs ou de rachat.
8
1.2.1. Microsoft : Network Access Protection (NAP)
Les fonctionnalités des NAP sont multiples et diverses. Nous avons entre autres la conformité à la politique de sécurité qui comporte la mise en quarantaine (optionnelle), la mise à niveau automatique (auto-remédiation), le suivi en continu.
Le client ou agent NAP est disponible sur : Windows XP sp3, Vista, 7,
Windows server 2008, 2008R2, (client et serveur de la solution NAC),
Il existe des agents pour Redhat, OpenSuse, Suse, Centos, Ubuntu, Fedora, Mac OS
La politique de sécurité est définie sur un serveur PDP (Policy Decision Point), vérifiée par des mesures faites sur la machine qui se connecte et qui possède l'agent NAP. L'agent NAP doit fournir un bilan sur l’état de la machine.
À l'agent NAP, sont ajoutés différents plugins SHA (System Health Agent) qui regardent chacun un aspect spécifique du système d'extrémité (anti-virus, pare-feu, registre, etc.). Du côté serveur sont installés un NPS (Network Policy Server) qui est un serveur RADIUS (toutes les demandes d'accès passent par lui) c’est-à-dire un serveur d’authentification d’autorisation et de comptabilité, un serveur d'administration NAP et des SHV (System Health Validator) chargés de communiquer avec les SHA pour évaluer le système d'extrémité. Les SHV peuvent communiquer avec des serveurs de politique (exemple: serveur de correctifs). Le résultat de l'évaluation va conditionner le futur accès donné au système d'extrémité [1].
1.2.2. Cisco : CNAC (Cisco Network Asset Collector)
La solution NAC proposée par Cisco est constituée de différents composants.
Le « NAC Manager » est une interface Web permettant de créer les politiques de sécurité et de gérer les connexions en cours. Les différents profils utilisateurs associés aux vérifications de conformité, ainsi que les actions de remédiation, sont configurés sur ce serveur. Le NAC Manager communique et gère le NAC Server [1].
9
Le « NAC Server » est un serveur qui va accorder ou non l'accès au réseau en fonction des informations recueillies sur les systèmes d'extrémité. C'est sur ce serveur que sont situés les profils de sécurité, les actions de remédiation etc...
Le « NAC Agent » est un agent léger installé sur les postes, chargé de collecter des informations sur le poste et de les transmettre à l'ACS (Access Control System) au moment de la demande de connexion. Des composants additionnels sont aussi proposés.
Le « NAC Profiler » est chargé d'évaluer les systèmes d'extrémité spécifiques comme les téléphones IP, les imprimantes, etc … Ce module permet aussi de localiser physiquement les matériels connectés et d'appliquer des profils en fonction d'informations récupérées.
Le « NAC Guest Server » permet d'offrir et de gérer les accès pour les visiteurs.
Le Secure ACS est un serveur jouant le rôle de serveur Radius qui va accorder ou non l'accès au réseau, aux utilisateurs du réseau.
1.2.3. Juniper Networks: UAC (Unified Access Control)
La solution s'appuie sur les protocoles 802.1X, RADIUS, IPSec (Internet Protocol Security) et sur les standards du TCG/TNC (Trusted Computing Group/
Trusted Network Connect) [1].
Les composants de la solution sont :
Un agent, UAC qui sert de client 802.1X et récupère les informations sur la machine (antivirus, pare-feu, niveau système …); toutes ces informations sont envoyées dans des attributs RADIUS,
Un portail captif pour les accès « invité »,
Authentification sur adresse MAC (Media Access Control) pour les imprimantes, etc,
Une appliance; c'est un RADIUS pour la partie « Autentification » du protocole 802.1X, qui prend les décisions du devenir de la connexion et agit sur le système de contrainte.
10
1.2.4. ALCASAR
ALCASAR (Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau) est un contrôleur d'accès au réseau (NAC : Network Access Control) libre et gratuit sous Linux Mageia. Il est positionné en coupure entre l'accès Internet et le réseau de consultation et permet d'authentifier les usagers, de contrôler les accès, de tracer les connexions effectuées, de protéger le réseau de consultation. Il est constitué d’une passerelle d'interception (portail captif), un serveur d'authentification, une base de données usagers, un pare-feu dynamique et un ensemble de proxy filtrant.
La traçabilité des connexions est assurée par le pare-feu d'ALCASAR. Les flux de journalisation sont récupérés sur deux canaux distincts.
1.2.5. TrueCafe
TrueCafe est un programme de gestion à destination des propriétaires de cybercafé. Il leur permet de gérer l'utilisation et la facturation des ordinateurs avec un système de ticket mais aussi de gérer les impressions noires ou couleur. Il fonctionne même pour un partage de connexion wifi.
Vous aurez également accès à l'écran du poste, pourrez dialoguer avec votre client via IM, réaliser des screenshot et visualiser les taches en cours. Enfin, vous pourrez verrouiller ou éteindre à distance tous vos postes afin d'économiser de l'énergie.
1.3. Utilisation des applications de gestion des réseaux clients-serveur
Les applications de gestion de réseaux ne sont plus uniquement de simple contrôleur d’accès au réseau détenus par les constructeurs de matériels, mais elles sont de plus en plus développées par les développeurs de systèmes d'exploitation et de logiciels informatiques. Ainsi, leur utilisation est de plus en plus diversifiée. Ils peuvent être utilisés dans le domaine informatique, dans les télécommunications.
11
Dans le domaine informatique, les applications de gestion de réseau sont intégrées dans les routeurs et points d’accès Cisco et Microsoft pour protéger l’accès en autorisant tout utilisateur disposant d’un identifiant et d’un mot de passe préenregistrés sur le routeur ou le point d’accès. De plus elles permettent le contrôle de conformité pour les succursales d’entreprise, par exemple, Cisco NAC permet de garantir la conformité des systèmes d’extrémité des succursales distantes ou des bureaux à domicile qui cherchent à se connecter aux ressources centralisées de l’entreprise, que ce soit par l’intermédiaire d’un réseau WAN privé ou d’un canal sécurisé sur le Web. Il effectue notamment des vérifications de conformité au niveau du routeur Cisco de la succursale ou sur celui du siège social de l’entreprise.
Toujours dans le domaine informatique, elles sont utilisées dans les réseaux universitaires, Cybers, Ecoles, Entreprises pour bloquer l’accès aux points d’accès wifi ou aux réseaux filaires à toutes personnes non autorisées et permettent la définition des autorisations, leurs contrôles et la comptabilité. C’est le cas par exemple de l’UAC (Université d’Abomey-Calavi) au Bénin, de la société Bénin Télécom SA.
Les applications de gestion de réseaux permettent aussi la protection des centres de calcul. Dans ces centres, elles contrôlent les ordinateurs et le serveur du bureau et permet de s’assurer que ces unités sont conformes aux politiques de l’entreprise en matière d’anti-virus et de correctifs de système d’exploitation avant de leur accorder l’accès au réseau LAN. Elles réduisent ainsi le risque que des virus et des vers se propagent au sein de l’entreprise en élargissant le contrôle d’admission aux commutateurs de niveau 2.
Dans le domaine de la télécommunication, elles sont utilisées au niveau, des téléphones IP. En effet, un terminal téléphonique IP comporte un commutateur à deux ports, l'un pour la connexion au réseau local de l'établissement et l'autre pour la connexion du terminal informatique de l'utilisateur. Cette caractéristique le transforme en un pseudo équipement réseau, sans toutefois en posséder toutes les caractéristiques classiques, du point de vue du management et de certaines capacités (802.1x par exemple). Les postes téléphoniques IP peuvent être identifiés en 802.1X, soit par l'adresse MAC, soit à l'aide d'un client embarqué sur le téléphone. Positionnés entre les commutateurs de périphérie et des postes informatiques, les téléphones IP complexifient la mise en place d'un système d'identification/authentification. Les
12
téléphones permettent une authentification en 802.1X entre le poste informatique et le commutateur, à travers une fonctionnalité « eap pass-through » qui laissent passer les paquets EAP (Extensible Authentication Protocol) entre le commutateur et le système d'extrémité. Elles sont utilisées pour sécuriser les identifications/authentifications entre le terminal téléphonique IP, le commutateur et les systèmes d'extrémités.
Toujours dans le domaine de la télécommunication, elles permettent la protection des accès distants et garantissent que les ordinateurs des travailleurs distants ou mobiles disposent des versions les plus récentes du logiciel anti-virus et des correctifs du système d’exploitation avant de leur donner accès aux ressources de l’entreprise par l’intermédiaire de liaisons commutées, IPSec ou autres types d’accès VPN.
13
DEUXIÈME PARTIE : MATÉRIEL ET MÉTHODES
14
Chapitre 2 : Choix techniques et Matériel
2.1. Système d’exploitation
Debian est une distribution GNU/Linux et GNU/FreeBSD. Nous pouvons considérer Debian comme un système d'exploitation complet comprenant des logiciels avec leurs systèmes d'installation et de gestion, le tout basé sur le noyau Linux ou FreeBSD, et des logiciels libres (et notamment ceux du projet GNU) [2]
Nous avons choisi la distribution Debian pour plusieurs raisons :
Ses qualités techniques : Debian est réputé pour sa stabilité, pour son très bon système d'installation de mise à jour des composants logiciels et pour sa rapidité à réparer les failles de sécurité ;
Debian GNU/Linux est utilisé par la plupart des fournisseurs d'accès à Internet Debian garantit la liberté des logiciels qu'elle propose !
Notre application sera initialement déployée sous Debian 8.1.0., mais elle pourra être utilisée sous n’importe quelle distribution basée sur Debian, comme par exemple Ubuntu, Mint, …
2.2. Langage de modélisation
Pour modéliser les fonctionnalités de notre système, nous avons choisi d’utiliser le langage de modélisation UML (Unified Modeling Language). Cette méthode orientée objet rend le système facile à maintenir et évolutif.
Le langage UML permet de construire plusieurs modèles d’un système, chacun mettant en valeur des aspects différents : fonctionnel, statique et dynamique ; grâce à des représentations graphiques appelées diagrammes [3] ; [4].
15
2.3. Langages de programmation
Afin d’apporter un côté dynamique à notre application web, nous avons choisi d’utiliser le langage de script, s’exécutant côté serveur, PHP (Personal Home Page : Hypertext Prepocessor) car :
Contrairement au langage JSP (Java Server Page), il ne nécessite pas l’utilisation d’un container web afin de le compiler. Cela facilite donc son utilisation ;
Contrairement au langage ASP.Net (Active Server Page) qui est un produit de Microsoft, et qui ne fonctionne que sur le serveur web de microsoft IIS (Internet Information Server), PHP est multiplateforme, libre et open source. Il ne limite donc pas son usage à un seul système d’exploitation [5];
Permet de créer simplement des pages dynamiques, résultats de calculs ou de requêtes SQL (Structured Query Language) [6] effectués sur une base de données.
PHP est un langage de script qui assure la portabilité, la performance et la stabilité des plates-formes web l’utilisant [7].
De plus, depuis sa version 5 sortie en 2004, PHP offre un mécanisme d’interfaçage, orienté objet, appelé PDO (PHP Data Object) qui constitue une couche d’abstraction intervenant entre l’application et la base de données en permettant de séparer le traitement de la base de données de l’application. Ainsi nous pouvons migrer vers un autre SGBD sans modifier le traitement [6]. D’autre part, PDO permet, au cours des traitements des requêtes SQL, de récupérer en une fois tous les enregistrements d’une table, réduisant ainsi le temps de traitement.
Nous avons utilisé le langage SQL pour l’interrogation et l’interaction avec notre base de données.
Le langage Javascript est un langage de programmation de scripts orienté objet, il nous a permis de dynamiser nos pages et une facilité dans la modification des éléments des pages web [8].
16
2.4. Langage de description
Le langage HTML 5 (HyperText Markup Language) nous a permis de créer et d’éditer le contenu de nos pages web [9].
La présentation et la mise en forme des pages ont été faites avec le langage CSS (Cascading Style Sheet) dont l’enjeu principal est de séparer la structure d'un document du style de présentation, c’est-à-dire qu’une séparation entre le fichier de structure de la page et le fichier de mise en forme de cette page. Cela permet une mise à jour facile et une réduction des temps de connexion [8].
2.5. La passerelle d'interception (portail captif)
Un portail captif est un système permettant un accès sécurisé à l’internet. Il agit sur le navigateur web pour donner à un usager l'occasion de présenter son accréditation pour l'ouverture d'une session de navigation. En effet, lorsqu'un utilisateur cherche à accéder à une page web, le portail captif intercepte la requête et demande l'authentification de l'utilisateur en lui retournant une page web stockée localement sur le portail captif grâce au serveur HTTP. Cette page demande à l’utilisateur d’entrer son identifiant et son mot de passe lesquels sont stockés dans une base de données qui est hébergée localement. Une fois authentifié, l’utilisateur se voit autoriser à utiliser son accès internet pour une durée fixée par l'administrateur. A la fin de la durée fixée, l'utilisateur se verra redemander à nouveau ses identifiants de connexions afin d'ouvrir une nouvelle session.
17
Figure 2.1: Présentation schématisée d'un portail captif
18
Tableau 2.1 : Tableau comparatif des différents portails Captifs 5
NoCatSplash Talweg Wifidog Coova- chilli
Public IP Monowall
Simplicité d’installation
Excellent Très bien Très bien Très bien Très bien Très bien
Infrastructure nécessaire
Excellent Très bien Très bien Très bien Excellent Très bien
Performances réseau Excellent Excellent Excellent Très bien Excellent Excellent Gestion utilisateur Non
disponible
Excellent Très bien Excellent Très bien Très bien
Sécurité
authentification
Non disponible
Excellent Excellent Excellent Excellent Excellent
Sécurité de communications
Non disponible
Excellent Non disponible
Non disponible
Non disponible
Bien
Protocoles supportés Excellent Très bien Excellent Excellent Excellent Excellent
Crédit temps Non
disponible
Non disponible
Non disponible
Excellent Excellent Non disponible Interface
d’administration
Non disponible
Très bien Excellent Excellent Bien Excellent
Au vu de ce comparatif des différentes solutions de portails captifs, Coova-chilli apparaît comme la solution la plus performante s’adaptant à nos exigences. Il supporte surtout un tunnel HTTPS pour faire transiter les identifiants de l'utilisateur, évitant ainsi que les pirates éventuels n’écoutent le réseau afin de récupérer les identifiants de connexion ; il crypte aussi la connexion lors de l’authentification du client. De plus Coova-chilli est en perpétuelle évolution.
5
http://wiki.fumo.fr/files/download.php?dwn=Mise_en_place_d_un_portail_captif_Chillispot.doc.zip&type=app lication/zip, consulté le 22 / 06 /2015.
19
2.6. Système de gestion de base de données (SGBD)
Les systèmes de gestion de base de données (SGBD) sont multiples et multiformes. Le tableau 2.2 montre une étude comparative des SGBD libres.
Tableau 2.2 : Tableau comparatif des SGBD 6
Base de données Critères
Access SQL Server MySQL PostgreSQL
Plateforme Windows Windows Windows/Linux Windows/Linux
Rapidité Négatif Positif Positif Négatif
Volume des données Négatif Positif Positif Positif
Intégrité Négatif Positif Négatif Positif
Puissance Négatif Positif Positif Positif
Coût / Mo Positif Négatif Positif Positif
Après cette analyse nous pouvons donc conclure que MySQL7est :
Facile de déploiement et de prise en main.
Possède plusieurs moteurs de stockage adaptés aux différentes problématiques, configurable au niveau table.
Une solution très courante en hébergement public
Très bonne intégration dans l'environnement Apache/PHP Ordonnançable dès la version 5.1
Sa grande vitesse et son prix réduit. C'est le serveur de bases de données le plus rapide, et le moins cher par Mo.
Ainsi, nous avons choisis MySQL.
De plus MySQL est très utilisé dans des applications PHP ou Perl, sur serveurs Linux.
En général, si vous n'avez pas besoin de caractéristiques comme les transactions, les
6 https://mediarea.googlecode.com
7 http://www.mysql.com/
20
processus stockés, les triggers, ou des requêtes SQL complexes, MySQL remplira la même fonction que d'autres bases de données plus puissantes, mais de façon plus rapide et avec un coût plus bas.
MySQL assurent l’intégrité de la base de données, si les tables de cette dernière sont type InnoDB.
Par contre, MySQL n’assure pas l’intégrité des données, c’est-à-dire l'incohérence des données lors de l’insertion dans la base, lorsque les tables de la base sont type de MyISAM.
En réalité, InnoDB et MyISAM sont des moteurs de stockage de données MySQL. Les tables InnoDB sont moins rapides que les tables MyISAM.
2.7. Serveur RADIUS
RADIUS (Remote Access Dial In User Service) est un protocole qui répond au modèle AAA. Ces initiales résument les trois fonctions du protocole :
• A = Authentication : authentifier l’identité du client ;
• A = Authorization : accorder des droits au client ;
• A = Accounting : enregistrer les données de comptabilité de l’usage du réseau par le client. Le protocole établit une couche applicative au-dessus de la couche de transport UDP (User Datagram Protocol). Les ports utilisés sont :
• 1812 pour recevoir les requêtes d’authentification et d’autorisation ;
• 1813 pour recevoir les requêtes de comptabilité [11].
2.7.1. Les différents types de paquets Radius
Le protocole est basé sur des échanges requêtes/réponses avec les clients Radius, c’est-à-dire les NAS (Network Access Server). Il n’y a jamais de communication directe entre le poste de travail et le serveur. L’authentification Radius se déroule suivant un dialogue entre le NAS et le serveur, qui met en jeu quatre types d’échanges.
Chacun est véhiculé au moyen d’un paquet spécifique :
21
• Access-Request
La conversation commence toujours par un paquet Access-Request émis par le NAS vers le serveur. Il contient au moins l’attribut User-Name et une liste d’autres attributs tels que Calling-Station-Id, Nas-Identifier, etc.
• Access-Accept
Ce paquet est renvoyé au NAS par le serveur Radius si l’authentification transmise par l’Access-Request a été correctement validée. Ce paquet contient alors des attributs qui spécifient au NAS les autorisations accordées par le serveur.
• Access-Reject
Envoyé par le serveur Radius au NAS si l’authentification a échoué.
• Access-Challenge
Après réception d’un paquet Access-Request, le serveur peut renvoyer un paquet Access-Challenge qui a pour but de demander d’autres informations et de provoquer l’émission d’un nouveau paquet Access-Request par le NAS. Access-Challenge sera toujours utilisé avec EAP (Extensible Authentification Protocol) puisqu’il permettra au serveur de demander un certificat ou un mot de passe au poste de travail [9].
2.7.2. FreeRadius
FreeRadius est une implémentation de Radius élaborée. Il doit son succès à sa compatibilité avec un grand nombre de standards couvrant les systèmes d’exploitation, les protocoles et les bases d’authentification. Cette large couverture offre une riche palette de possibilités qui lui permet de s’intégrer dans la plupart des architectures existantes. Il est annoncé comme testé et fonctionnel sur les systèmes Linux (toutes distributions), FreeBSD (Free Berkeley Software Distribution), NetBSD (Net Berkeley Software Distribution) et Solaris [11].
2.7.2.1. Principes généraux
Le processus exécuté par FreeRadius comprend principalement deux étapes : l’autorisation et l’authentification. Il va préparer le terrain en établissant la liste des autorisations qui sera envoyée au NAS quand l’authentification sera positive. Les étapes de l’autorisation et l’authentification peuvent être décomposés comme suit:
22
1 Soumission d’une requête.
2 Recherche dans la base de données.
3 Constitution de la liste des autorisations.
4 Authentification. [12]
2.7.2.2. Soumission d’une requête
Les requêtes arrivent au serveur par le biais de paquets Access-Request pouvant contenir plusieurs attributs. On y trouvera toujours l’attribut User-Name qui contient l’identifiant. Ces attributs sont appelés request-items [11].
2.7.2.3. Recherche dans la base de données
Le nœud central du système FreeRadius est la ou les bases de données où les informations d’autorisations et d’authentification sont puisées.
Une base d’autorisation est constituée d’une entrée par utilisateur ou par machine.
Chaque entrée est caractérisée par un identifiant ainsi que par trois catégories d’attributs appelées check-items, reply-items et config-items.
Une base d’authentification est aussi constituée d’une entrée par utilisateur ou par machine et contient les données d’authentification (mot de passe). Si les bases d’authentification et d’autorisation ne font qu’une, ces données d’authentification y seront présentes sous formes de check-items (User-Password). FreeRadius recherche dans la base d’autorisation un identifiant égal à la valeur de User-Name. S’il le trouve, il compare la liste des check-items à la liste des request-items. S’il y a équivalence, l’entrée est validée, sinon l’entrée suivante est vérifiée et ainsi de suite jusqu’à la fin.
Les check-items constituent donc une liste de critères supplémentaires auxquels la requête doit satisfaire. Chaque attribut de la liste des request-items devra avoir pour valeur la valeur du check-item correspondant. Pour qu’une entrée soit validée, il ne suffit donc pas de trouver l’identifiant mais il faut que les request-items soient équivalents aux check-items. Ce qui veut dire qu’il est parfaitement possible d’avoir le même identifiant pour plusieurs entrées mais avec des check-items différents. Il est même possible d’avoir plusieurs entrées strictement identiques. Dans ce cas, c’est la première qui est prise en compte.
23
2.7.2.4. Constitution de la liste des autorisations
Quand une entrée a été trouvée, FreeRadius en extrait la liste des reply-items et la met provisoirement de côté. Il s’agit là des autorisations qui seront accordées au poste qui se connecte. Un reply-item est un attribut auquel une valeur est affectée dans la base d’autorisation.
Quand l’authentification aura été réalisée, les reply-items seront écrits dans le paquet Access-Accept qui sera envoyé au NAS.
2.7.2.5. Authentification
Après l’étape d’autorisation, FreeRadius passe à l’authentification dont le processus demande plus ou moins d’échanges avec le NAS suivant la méthode mise en œuvre (EAP (Extensible Authentication Protocol), Radius-MAC...). Si l’authentification est positive, un paquet Access-Accept est construit avec, pour attributs, la liste des reply-items mise de côté précédemment. Si l’authentification est négative, c’est un paquet Access-Reject qui est envoyé.
2.7.2.6. Config-items
Les config-items sont des attributs internes du serveur liés à une requête. On peut les considérer comme des variables de configuration renseignées dans le fichier radiusd.conf ou par FreeRadius lui-même pendant son fonctionnement. Par exemple, on trouve l’item Auth-Type qui permet de spécifier quelle méthode d’authentification doit être associée à un identifiant. Auth-Type :=EAP, signifie qu’il s’agit d’une méthode EAP.
2.8. Serveur web
Les serveurs web sont multiples, le tableau 2.3 donne une étude comparative des différents serveurs web.
24
Tableau 2.3 : Tableau comparatif des différents serveurs web8
Cherokee Hiawatha Lighttpd LiteSpeed Nginx Apache Authentification Disponible Disponible Disponible Disponible Disponible Disponible Support HTTPS Disponible Disponible Disponible Disponible Disponible Disponible Domaine virtuel Disponible Disponible Disponible Disponible Disponible Disponible Support CGI Disponible Disponible Disponible Disponible Disponible Disponible Support FastCGI Disponible Disponible Disponible Disponible Disponible Disponible
ASP.NET Non
disponible
Non disponible
Non disponible
Non disponible
Non disponible
Non
Disponible Java Servlets Non
disponible
Non disponible
Non disponible
Non disponible
Non disponible
Disponible
Support IPv6 Disponible Disponible Disponible Disponible Disponible Disponible Console
d’administration
Disponible Disponible Disponible Non disponible
Disponible Disponible
Apache est donc un serveur modulaire et la plupart des fonctionnalités sont implémentées dans des modules externes que le programme charge pendant son initialisation. La configuration par défaut n'active que les modules les plus courants et les plus utiles. Mais la commande a2enmod module permet d'activer un nouveau module tandis que a2dismod module le désactive. Ces deux programmes ne font rien d'autre que créer ou supprimer des liens symboliques dans /etc/apache2/mods- enabled/ pointant vers des fichiers de /etc/apache2/mods-available/.
Comme serveur web de notre application, nous avons utilisé Apache, car il est flexible, stable, multiplateforme et open source.
8 http://socialcompare.com/fr/comparaison/apache-lightweight-web-servers-alternatives , consulté le 25/08/15
25
Le tableau 2.4 donne un récapitulatif des outils et logiciels utilisés dans le cadre de ce travail.
Tableau 2.4 : Outils et librairies utilisés
Logiciels / Librairies Description
Système d’exploitation Linux Debian 8.1.0
Apache Serveur web version 2.2.21
PHP Serveur d’application version 5.3.8
Freeradius Serveur d’authentification version :
2.5.5
MySQL Système de gestion de base de données
version 5.5.16
Coova-chilli Le portail captif ou passerelle de redirection version : 1.3.0
Netbeans Environnement de développement
utilisé pour l’édition de code PHP, HTML, CSS, javascript, version 8.0.2 Visual Paradigm Logiciel de représentation des
diagrammes UML Version: (12.2.0)
26
Chapitre 3 : Méthodes
3.1. Méthodologie
La méthodologie d’étude que nous avons suivie pour l’élaboration de cette application est la suivante :
L’expression des besoins : identification des besoins des utilisateurs et formalisation de ces derniers ;
L’analyse : définition de l’architecture du système et de ses fonctionnalités ; La conception : identification puis choix des composants nécessaires à la mise en œuvre du système ;
L’implémentation: développement des interfaces et implémentation des fonctionnalités retenues pour le système ;
L’étude des conditions de déploiement : définition des caractéristiques minimales du matériel requis ainsi que des différentes configurations logicielles à faire pour avoir un système fonctionnel.
Cette méthodologie d’étude s’inspire du Processus Unifié UP (Unified Processus) qui est un processus de développement logiciel itératif, centré sur l’architecture et piloté par les cas d’utilisation UML.
3.1.1. Expression des besoins
La motivation première ayant conduit à l’élaboration de cette application est le besoin d’avoir une application libre, modulaire, accessible de gestion de réseau clients-serveur sous un serveur libre linux. Cette application donnerait à tout administrateur d’un réseau clients-serveur, la possibilité de contrôler l’accès à son réseau, la comptabilité, l’autorisation, l’authentification, de tracer les connexions effectuées et de protéger le réseau de consultation.
Améliorer la gestion des réseaux clients-serveur fait clairement remonter certains besoins :
Avoir des clients Windows et Linux
Avoir des courbes statistiques nous permettant d’apprécier la qualité du réseau 27
Avoir un choix de langue : anglais et français
3.1.2. Analyse
3.1.2.1. Critères d’analyse du réseau
Afin de mieux apprécier la qualité d'un réseau clients-serveur, nous avons sélectionné certains critères sur lesquels nous nous sommes basés pour analyser le réseau. Il s’agissait de :
La valeur minimum du RTT (Round Trip Time) qui est le temps que met un signal pour faire un aller-retour entre la source et la destination
Le nombre de clients connectés Le débit chez le client et le serveur.
3.1.2.2. Spécifications fonctionnelles
Les fonctionnalités suivantes sont attendues de l’application :
La passerelle de redirection doit assurer la redirection automatique et sécurisée de toutes les requêtes des clients
Le serveur Radius doit assurer :
L'authentification, la comptabilité et les autorisations des clients La gestion efficace du temps de connexion des clients
La gestion efficace des téléchargements des clients La déconnexion automatique des clients non autorisés
L'interface d'administration doit assurer :
La création, la recherche, la modification et la suppression des clients avec leurs autorisations
La déconnexion d'un client
La création du backup de la base de données L'accès aux statistiques et graphes
La gestion des comptes d'administration La gestion des sessions utilisateurs
28
La création, la recherche, la modification des plans de tarification ainsi que le choix du plan actif
Le choix de la langue de gestion : Anglais ou Français.
L’interface utilisateur doit assurer :
La visualisation des offres sur le réseau, du plan tarifaire et autres services
La réception et l’envoi des données d’authentifications, de comptabilités et d’autorisations concernant l’utilisateur actuel
Le choix de la langue de gestion : Anglais ou Français.
Le client doit pouvoir visualiser les offres sur le réseau
Les informations doivent pouvoir être mises à jour automatiquement lorsqu’un changement est détecté
Le client doit pouvoir être informé lorsqu’un changement survient sur le réseau et sur compte
L’administrateur doit pouvoir extraire en PDF et imprimer les données des clients ;
L’administrateur doit pouvoir définir les autorisations du gérant ainsi que la supervision de ces activités.
3.1.2.3. Analyse fonctionnelle
L’analyse fonctionnelle a été faite grâce aux diagrammes de cas d’utilisation.
Au cours de cette analyse, nous avons dénombré cinq différents types d’utilisateurs pouvant interagir avec l’application :
Les clients non connectés : ce sont des clients ne possédant pas de compte utilisateur activé ou non sur notre réseau et qui sont intéressés par nos offres;
Les clients : ce sont des clients disposant d’un compte utilisateur activé sur notre réseau, connectés au réseau et qui désirent un service;
29
Les NAS : ce sont des clients chargés de convoyer les données d’authentifications, de comptabilités et d’autorisations des clients vers le serveur Radius;
Le gérant : Gère les utilisateurs du réseau, ses droits sont définis par l’administrateur.
L’administrateur : l’administrateur est celui qui est chargé de gérer l’interface administrateur de l’application, par conséquent tous les utilisateurs de la base de données.
Le cas d’utilisation de l’acteur « client non connecté » est représenté à la figure 3.1 et celui de l’acteur « client » est représenté à la figure 3.2.
Figure 3.1 : Diagramme de cas d’utilisation de l’acteur « client non connecté »
30
Figure 3.2 : Diagramme de cas d’utilisation de l’acteur « Client »
L’acteur « client non connecté » doit pouvoir voir nos offres uniquement. Ce qui signifie qu’il n’a pas accès aux services du réseau à savoir principalement la connexion internet dans le cas présent. Après s’être authentifié, l’acteur « client » doit pouvoir avoir accès aux services et la visualisation de ses autorisations sur le réseau. De plus, il doit pouvoir voir ses autorisations actuelles, jusqu’à sa déconnexion.
La figure 3.3 représente le diagramme de cas d’utilisation de l’acteur « NAS ». L’acteur
« NAS » est chargé de convoyer toutes les données d’authentifications, de comptabilités et d’autorisations des clients vers le serveur Radius et celles du serveur Radius vers les clients. Pour des raisons de sécurité, les clients ne sont pas directement
31
reliés au serveur Radius. Le NAS dispose d’un compte comportant les informations nécessaires pour être reconnu de façon unique par le serveur Radius et par les clients.
Figure 3.3 : Diagramme de cas d’utilisation de l’acteur « NAS»
La figure 3.4 représente le diagramme de cas d’utilisation de l’acteur « gérant ».
L’acteur « gérant » gère tous les clients enregistrés dans la base de données. Cela implique qu’il doit pouvoir ajouter, modifier les clients ainsi que toutes fonctionnalités de l’interface d’administration précitées, autorisées par l’administration.
32
Figure 3.4 : Diagramme de cas d’utilisation de l’acteur « Gérant»
33
La figure 3.5 représente le diagramme de cas d’utilisation de l’acteur
«administrateur». L’acteur « administrateur » gère tous les clients enregistrés dans la base de données, ainsi que tous les gérants enregistrés dans la base de données. Cela implique qu’il doit pouvoir ajouter, modifier les clients ainsi que toutes fonctionnalités de l’interface d’administration précitées. Il doit aussi définir les autorisations des gérants, leurs suivis dans l’exécution de leurs travaux.
34
Figure 3.5 : Diagramme de cas d’utilisation de l’acteur « Administrateur »
35
3.1.2.4. Analyse dynamique
Nous représenterons dans les figures 3.6 à 3.23 les diagrammes de séquence des cas d’utilisation les plus importants avec une brève description.
La figure 3.6 présente le diagramme de séquence du cas d’utilisation : S’authentifier Admin / Gérant.
- Cas d’utilisation : S’authentifier Titre : S’authentifier Admin / Gérant
Résumé : Ce cas d’utilisation permet à tout utilisateur enregistré dans la base de données de s’authentifier et d’accéder à l’interface d’administration de l’application, en fonction de ses droits d’utilisateur.
Acteurs : Administrateur, Gérant
Préconditions : serveur disponible, Navigateur web disponible.
Exceptions : L’URL mal saisie par l’utilisateur, Navigateur web indisponible, serveur indisponible.
Post-conditions : La session est ouverte, l’application affiche la page d’accueil.
La figure 3.7 présente le diagramme de séquence du cas d’utilisation : S’authentifier Client
- Cas d’utilisation : S’authentifier Titre : S’authentifier Client
Résumé : Ce cas d’utilisation permet à tout client enregistré dans la base de données de s’authentifier et d’accéder à l’interface cliente de l’application, en fonction de ses autorisations.
Acteurs : Client
Préconditions : serveur disponible, navigateur web disponible, connexion internet disponible.
Exceptions : navigateur web indisponible, serveur indisponible, connexion internet indisponible.
Post-conditions : La session est ouverte, l’application donne accès à l’internet.
36