• Aucun résultat trouvé

Développement d’une application de gestion de la connectivité internet déployée sous Linux

N/A
N/A
Protected

Academic year: 2022

Partager "Développement d’une application de gestion de la connectivité internet déployée sous Linux"

Copied!
137
0
0

Texte intégral

(1)

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

(2)

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)

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

(4)

3.3. Technical choices ... 124

3.4. Hardware Specifications ... 125

4. Results ... 125

Conclusion and future work ... 127

ii

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

PREMIÈRE PARTIE : REVUE DE LITTÉRATURE

5

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

DEUXIÈME PARTIE : MATÉRIEL ET MÉTHODES

14

(25)

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

(26)

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

(27)

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

(28)

Figure 2.1: Présentation schématisée d'un portail captif

18

(29)

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

(30)

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

(31)

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

(32)

• 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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

Figure 3.4 : Diagramme de cas d’utilisation de l’acteur « Gérant»

33

(44)

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

(45)

Figure 3.5 : Diagramme de cas d’utilisation de l’acteur « Administrateur »

35

(46)

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

Références

Documents relatifs

Or cette configuration manuelle peut être fastidieuse pour un nombre important de périphériques car pour chaque machine il faut entrer manuellement l'adresse IPv4, le masque

Avec la configuration mise en place dans la partie Contrôle d'accès réseau au service, on a autorisé la création de fichiers dans l'arborescence sur service TFTP avec l'option -c

Le script accounts.py crée automatiquement un tel lien symbolique, lequel pointe vers un fichier qui s'appelle lui aussi background et qui est censé se trouver dans le

Il peut être, par exemple, dans un escape game une manière de valider un indice ou débloquer de

Le code pour ouvrir ce coffre est « dame » et permet de débloquer une carte pour orienter les joueurs vers

[r]

port Etienne Duris © ESIPE - Université Paris-Est Marne-la-Vallée – Mars 2012 Page 26. Le rôle

– via les paramètres de Windows : cliquer sur l’icône Windows en bas à gauche dans la barre de tâches, puis sur l’icône paramètres dans la liste. Note 1: Les