Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Technologie de Blagnac
Projet tuteuré:
Diplôme: LPRMS
Date: Juin 2008
REMERCIEMENTS
Nous remercions l’ensemble des professeurs de la formation Licence
Professionnelle Réseaux Mobiles et Sécurité pour tous les renseignements qu'ils
3
nous ont apporté ainsi que pour les différents cours que ceux-ci nous ont
enseignés de manière à mener à bien ce projet. Nous remercions également tout
particulièrement M. Gaël Mansalier pour ses différentes critiques positives nous
ayant permis d'avancer de manière efficace tout le long de l'année. Ses conseils
et le temps qu’il nous a consacré malgré son emploi du temps chargé nous ont été
d'une grande utilité. Nous tenons aussi à remercier également M. Danielle
Caballero pour son aide dans l'aspect rédactionnel d’un projet tuteuré. Enfin nous
tenons à remercier M. François Gerthoffert pour ses études comparatives sur les
différentes solutions de portails captifs ainsi que tous les internautes qui nous ont
aidé à répondre aux différentes questions que nous nous posions et qui nous ont
permis d’appréhender au mieux les besoins du projet.
SOMMAIRE
• RESUME/ABSTRACT 6
• GLOSSAIRE 7
• INTRODUCTION 8
4
• Chapitre 1: Présentation du Projet 9
1. Description et usage 9
2. Fonctionnement général 9
3. Contexte d'installation 11
4. Résumé de la proposition 11
• Chapitre 2: Etude des différentes solutions 12
1. Tableau comparatif et analyse 12
a) NoCatSplash 13
b) Talweg 14
c) WifiDog 17
d) Chillispot 18
e) PublicIP 19
f) MonoWall 19
g) Bilan 20
2. Pourquoi Chillispot? 20
3. Intégration de Chillispot en environnement universitaire 20
• Chapitre 3: Réalisation du projet 24
1. Analyse du Cahier des Charges et de ses contraintes 24
2. Présentation de l'architecture 25
3. Matériel requis 26
4. Conception générale 27
a) Rôle de l'interface tun 27
b) Affectation d'adresse IP 28
c) Interception et demande d'accréditation 29
d) Méthode d'authentification 30
e) Transmission de paquets d'un client authentifié 34
f) Gestion d'une session authentifiée 37
g) Déconnexion d'une session authentifiée 39
h) Interface d'administration 39
i) Evolution de la solution 41
• CONCLUSION 42
• ANNEXES 43
RESUME
ABSTRACT
Nowaday, people want to feel free to move anywhere and most mobile telephone
provider's advertising focuses on this wish which has become their new principal
selling point. What has made telephony a success for many years, will occur again
in the milieu of computer sciences with wireless networks.
There are different wireless technologies each corresponds to a different use
scale. You can find Bluetooth, Wifi or Wimax technologies. Today, Wifi technology
is the most popular technology in local networks inside as well as outside. We can
see more and more networks in public places with a high concentration of people,
such as railway stations, airports, or firms.
With this development, the idea of setting up a wireless network with
authentication by captive portal was developed to allow Internet access to anyone
to related to the IUT of Blagnac.
GLOSSAIRE
6
données présentes sur un serveur donné.
NAS : Network Access Server, surveille l’accès à une ressource (accès réseau par
exemple) et fait office d’intermédiaire entre le client et le serveur d’accès dont
dépend la décision d’accès.
UAM : Module d'une application qui invite l'utilisateur à entrer son identifiant et
le mot de passe associé nécessaire pour y accéder.
* une astérisque comme celle-ci désignera des définitions intégrées dans ce glossaire.
INTRODUCTION
7
dans la majorité des lieux qu'ils fréquentent. Dans cette optique, l'expansion très
rapide des points d'accès sans-fil permet la connexion des appareils nomades.
Néanmoins chaque réseau possède sa politique d'accès et ne souhaite pas laisser
n'importe qui accéder aux ressources réseaux.
Devant ces enjeux, le portail captif s'est imposé comme une solution
fréquemment utilisée avec les points d'accès payants, mais elle peut se généraliser
à tous types de réseau (sans-fil ou filaire) nécessitant un contrôle d'accès. La
technique du portail captif consiste à forcer un client souhaitant accéder à un
service en http ou https sur un réseau à passer par une page web servant à
l'authentifier sur celui ci. Après authentification, la passerelle peut le laisser
passer ; le client a accès au réseau de façon classique.
1. Description et usage
8
Celui-ci agit sur le navigateur Web pour donner à un usager sans fil l'occasion de
présenter son accréditation pour l'ouverture d'une session de navigation. En
effet, lorsqu'un utilisateur nomade cherche à accéder à une page Web, le portail
captif intercepte la requête et demande l'authentification de l'utilisateur.
Il peut également être employé pour présenter à l'usager une certaine information
(telle qu'une Politique d'Utilisation Acceptable) avant d'accorder l'accès total au
réseau. Ceci permet donc à tout ordinateur équipé d'un navigateur HTML et d'un
accès Wifi de se voir proposer un accès à Internet sans qu'un programme
d'authentification personnalisé et précis ne soit requis.
Figure 1.1: L'usager veut aller sur une page Web et est redirigé
2. Fonctionnement général:
L'usager emploie alors son navigateur Web pour visiter n'importe quel site sur
Internet en envoyant une requête HTTP. Au lieu de recevoir la page demandée,
celui-ci arrive sur le portail du point d'accès.
L'usager entre alors son accréditation qui est vérifiée par un autre serveur
9
d'authentification sur le réseau. Tout autre accès au réseau est bloqué jusqu'à ce
que ses accréditations soient vérifiées.
Les identifiants de connexion (identifiant, mot de passe) de chaque utilisateur
sont stockés dans une base de données qui est hébergée localement ou sur un
serveur distant.
Figure 1.2: Les accréditations de l'usager sont vérifiées avant de lui permettre un accès
complet. Le serveur d'authentification peut être le point d'accès lui-même, un autre
ordinateur sur le réseau local ou un serveur n'importe où sur Internet.
Une fois authentifié, l'usager a accès à toutes les ressources du réseau puis il est
redirigé sur le site qu'il avait demandé au départ.
Figure 1.3:Une fois authentifié, l'usager peut avoir accès au reste du réseau.
Les portails captifs ne fournissent aucun chiffrement pour les usagers sans fil. Ils
comptent plutôt sur les adresses MAC et IP comme identification. Puisque ceci
n'est pas nécessairement très sécuritaire, on demandera à l'usager de
s'authentifier à nouveau périodiquement. Ceci peut se faire automatiquement en
réduisant au minimum une fenêtre flottante ou pop-up spéciale du navigateur
lorsque l'utilisateur entre pour la première fois.
3. Contexte d'installation:
10
Puisqu'ils ne fournissent pas de chiffrement fort, les portails captifs ne sont pas
un très bon choix pour les réseaux qui doivent être fermés pour ne permettre
l'accès qu'à des usagers fiables. Ils conviennent davantage aux cafés, aux hôtels
et autres endroits d'accès publics utilisés par des usagers occasionnels de réseau.
4. Résumé de la proposition
Résumé de la proposition:
11
Les comparatifs que nous allons développer dans cette partie du chapitre sont
intégrés de manière à expliquer les différents choix probables que peuvent, lors
de la réponse à un cahier des charges, effectuer les responsables de projet.
Dans le milieu Open Source, il existe plusieurs solutions de portail captif. Notre
projet ayant pour but la mise en place d'un portail Wifi via la solution Chillispot,
nous n'avons pas eu à faire un choix, car celui-ci nous a été proposé pour plan de
départ. L’implémentation de Chillispot est écrite en C et en Perl (pour le
formulaire) et fonctionne sous la plateforme GNU/Linux avec comme couche basse
le pare feu Iptables*. Il est fourni avec plusieurs moyens d’authentification,
modifiable et débuggable facilement. C’est pour cela que la solution Chillispot nous
semble intéressante.
Or, nous avons décidé d'effectuer tout de même une étude complète du projet de
mise en place d'un portail Wifi global. C'est pourquoi nous avons cherché et
comparé les différentes solutions que nous aurions pu mettre en œuvre sans cette
contrainte.
Portails Captifs
NoCatSplash Talweg Wifidog Chillispot Public IP Monowall
Simplicité
d'installation
Infrastructure
nécessaire
Performances
réseau
Gestion
utilisateurs
Sécurité
authentification
Sécurité
communications
Protocoles
supportés
Crédit temps
Interface d’
administration
Légende:
Non disponible
Plus ou moins disponible
12
Voici en détail les différentes solutions en termes d'utilisation techniques
possibles :
a) NoCatSplash
Le logiciel NoCatSplash est un portail web captif destiné à sécuriser le
partage d’une connexion sans-fil en redirigeant les utilisateurs vers une page web
sur laquelle ils doivent s’authentifier via https avec un login/mot de passe. Pour
cela, NoCat modifie dynamiquement les règles Iptables* du firewall pour ouvrir
certains ports pour l’utilisateur (uniquement TCP avec NoCatAuth-0.82).
NoCatAuth nécessite les droits root pour manipuler les règles Iptables*.
NoCatSplash est une solution idéale pour les petites structures ou personnes
souhaitant partager facilement une partie de leur bande passante en offrant
notamment un contrôle sur les ports autorisés.
13
Voici le portail d'identification de NoCat qui en premier temps demande les
login/mot de passe utilisateurs, qui confirme la véracité de ceux-ci puis la fenêtre
permettant de rester loguer sur le hotspot durant tout le long de l'utilisation de
celui-ci.
Néanmoins certains points nous ont interpellés comme les failles de sécurité
possibles avec cette solution :
b) Talweg
Le logiciel talweg est un portail captif s'exécutant sur une plate-forme Linux.
Il utilise un serveur DNS, DHCP, Apache ainsi qu’Asp.Net et Iptables*.
14
Une fois identifiés, les clients situés dans le réseau Wi-Fi transmettent leurs
requêtes à la passerelle en utilisant le protocole HTTPS. Les transmissions sont
donc sécurisées dans la partie la plus sensible du réseau où les écoutes des
communications sont facilitées en raison du médium de transmission Wi-Fi. La
passerelle s'occupe alors de contacter le site distant (HTTP ou HTTPS) et de
réceptionner la réponse du site. Elle retransmet ensuite l'information au client
Wi-Fi via la connexion HTTPS.
15
Figure 2.5 : Principe de l'authentification sur CAS.
Le navigateur contactant la passerelle mais n'étant pas authentifié (1) est redirigé
(2) vers le serveur d'authentification CAS (3). Alors l’utilisateur saisi via une
interface Web son login et mot de passe. Si ceux-ci sont corrects alors le serveur
CAS attribut un ticket de service ST (4) au navigateur qui contacte à nouveau la
passerelle talweg (5) en lui transmettant le ticket de service.
La passerelle contacte alors CAS (6) afin de vérifier la validité de
l'authentification. Si l'authentification est confirmée par CAS (7), alors la
passerelle sait que l'utilisateur est reconnu et correctement authentifié. Elle
dépose alors sur le navigateur un cookie de session TWG (8).
Une session est également créée et sera utilisée pour stocker les cookies et les
certificats transmis par les sites distants.
c) Wifidog
16
passante est l'utilisation d'Iptables pour définir les règles de filtrages qui sont
contrôlées par Wifidog. Une fois la communication établie il y a beaucoup moins
d'informations qui circulent sur le réseau. Wifidog consomme également très peu
de ressources système.
d) Chillispot
La bande passante est divisée par deux lors de l'utilisation de Chillispot, mais
reste tout à fait à un niveau acceptable avec un taux de transfert de 960 ko/s en
moyenne.
Il semble qu'une baisse de performances se ressent du fait de la consommation en
ressources matérielles de Chillispot sur le WRT54G. On constate donc que
Chillispot est grand utilisateur en temps CPU lors d'activité sur le réseau.
e) Public IP
18
les accès à l’Internet après authentification sur le portail : création, suppression,
suspension et filtres pour le web (ce qui comprend par exemple le blocage de
certains ports, notamment ceux utilisés par les logiciels de messagerie
instantanée). L’interface d’accès peut être personnalisée, le hotspot peut donc
être par exemple multilingue.
f) MonoWall
Voici l'architecture de MonoWall qui est celle d'un hotspot classique et qui est en
fait un logiciel que l'on peut décrire comme un pare-feu-routeur. Les avantages de
cette solution sont basés sur une administration autonome en local, de diverses
fonctionnalités et sur le fait que ce projet est toujours évolutif, car encore
développé.
g) Bilan
On peut voir sur ces comparatifs que chaque solution comporte des avantages
et des inconvénients. De manière à effectuer un choix, il faut définir un cahier
des charges bien précis et la spécificité de chacune des solutions sera mise en
œuvre en pesant le pour ou le contre selon les cas.
2. Pourquoi Chillispot?
20
Figure 2.11 : Screenshot Wifi
Il faudra vérifier que l'IP soit bien donné de manière dynamique (comme sur la
figure au dessus).
21
Figure 2.13 : Screenshot Wifi
Le client sera ensuite automatiquement redirigé vers la page html
d'authentification de Chillispot. Il devra alors entrer son login et son mot de passe
de manière à se connecter.
Si le login est bon, il pourra alors surfer sur Internet en gardant la pop-up de
Chillispot bien ouvert.
22
Chapitre 3: Réalisation du Projet
Accès au web
23
Authentification
Restriction temporelle
Journalisation
2. Présentation de l'architecture
24
Nous avons donc réalisé une maquette dont l'architecture logique est la suivante:
25
Figure 3.3 : Adressage de la maquette
3. Matériel requis
4. Conception générale
b) Affectation d’adresse IP
27
Figure 3.5 : Choix de capture des interfaces
On voit ainsi que le serveur DHCP embarqué par Chillispot répond à la requête
faite par le client et lui affecte une adresse IP dans le réseau spécifié dans la
configuration de Chillispot.
Une fois le client intégré au réseau, celui-ci peut se retrouver dans deux
états, « authentifié » et « non authentifié ». Un client « non authentifié »
28
essayant d'accéder à une page Internet va avoir sa connexion TCP interceptée par
le démon Chillispot. Ici cette page est simulée par le serveur Apache de la machine
simulant la ressource web accessible à l'adresse 10.0.0.1. Ayant intercepté la
connexion du client, Chillispot va usurper l'identité du destinataire du paquet et va
envoyer au poste client des paquets avec comme adresse source 10.0.0.1. Cela
permet ainsi à Chillispot de rediriger le client vers un script CGI* ou PHP hébergé
par un Serveur Apache sécurisé (SSL), où il lui est demandé un login et un mot de
passe.
29
d) Méthode d’authentification
Figure 3.13 : Dialogue entre le démon Chillispot et Freeradius par l'interface de boucle
locale
31
Figure 3.15 : Requête d'accounting provenant de Chillispot
32
e) Transmission de paquets d’un client authentifié
Une fois que le client est authentifié, Chillispot autorise le trafic provenant
du poste de celui-ci, réceptionné par l'interface tun0.
Pour router les paquets entre tun0 et eth0, la translation d'adresse IP ainsi que
l'Ip-forwarding* sont activés dans le noyau. Grâce à des règles du pare-feu
Iptables, on autorise seulement le trafic arrivant de l'interface contrôlée par
Chillispot à être redirigé vers eth0 et le trafic interne aux différents acteurs de
l'authentification à transiter par la boucle locale.
#!/bin/sh
#
# Firewall script for Chillispot
IPTABLES="/sbin/iptables"
EXTIF="eth0"
INTIF="eth1"
33
Les politiques par défaut:
On interdit tous les paquets en direction de la passerelle, destinés à celle-ci.
On autorise toute sortie de paquets en sortie des interfaces de la machine. On
autorise toute redirection de paquets d'une interface à une autre
Autorise sur l'ensemble des interfaces tous les paquets dont la connexion a déjà
été établie.
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
34
$IPTABLES -A INPUT -i $INTIF -j DROP
Le schéma ci-dessous résume l'ensemble des règles appliquées pour gérer les flux
nécessaires à l'affichage du portail web permettant l'identification de clients.
35
Autorise tout le trafic passant par la boucle locale utilisé pour le transit
d'informations entre les différents acteurs. Cette règle autorise dans notre cas
l'envoi des identifiants entre le démon Chillispot et le serveur Radius.
$IPTABLES -A INPUT -i lo -j ACCEPT
Active le Source NAT sur l'interface externe eth0 pour pouvoir transmettre et
recevoir sur Internet.
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
Afin de pouvoir contrôler les clients ayant une accréditation ou non pour
accéder à Internet, un pop-up HTML muni d'un cookie de session est ouvert sur le
poste client et son navigateur est redirigé vers l'URL demandée initialement ou
inconditionnellement vers une autre URL paramétrable.
36
présenté est-il celui généré initialement pour ce poste ? (Test d'usurpation), le
cookie présenté correspond-il à une session en cours ? La présence du pop-up lors
de la phase d'utilisation normale est illustrée par la figure suivante :
• une limite inconditionnelle qui déconnecte tout utilisateur, actif ou non, au delà
d'une certaine durée de connexion (Session-timeout), pour éviter les connexions «
infinies » ;
37
l'utilisateur dans la base de données MYSQL et sont donc fonction de chaque
utilisateur.
Pour toute requête web par un client ayant été déconnecté celui-ci verra sa
requête interceptée par tun0 et redirigé de nouveau vers la page du portail
d'authentification.
h) Interface d’administration
Cette application écrite en php et utilisant divers scripts se base sur Dialup-
Admin pour offrir un contrôle complet sur la base de données MySQL. On peut de
ce fait, facilement gérer les opérations sur les profils des utilisateurs (ajout,
suppression, modification du profil,..), créer des groupes afin de gérer plus
facilement un ensemble de clients.
De plus, PhpRadmin utilise le protocole SNMP afin de remonter des statistiques
sur l'utilisation des ressources et RRDtool afin de tracer des graphiques.
38
Figure 3.24 : Graphiques sur l'utilisation du portail captif
Pour finir, cette dernière solution intègre des dictionnaires propres à chaque
solution de portail captif (Chillispot, WISP, Nocat) permettant l'ajout de
paramètres pour une utilisation plus approfondie (limite de réception, d'envoi,
limite par semaine, ...).
i) Evolution de la solution
Passage à l'échelle:
L'architecture choisie pour intégrer cette solution de portail captif permet une
extension facile de la zone de couverture Wifi. En effet, l'utilisation d'un
commutateur connecté sur la carte réseau locale de la passerelle captive autorise le
39
branchement de multiples points d'accès Aironet sans qu'aucune configuration sur ces
points d'accès ne soit nécessaire. Néanmoins cette architecture n'a pas été pensée
pour gérer la montant en charge des demandes d'accès aux ressources. Toutes les
requêtes des différents points d'accès sont gérées par une seule machine et de ce
fait, la montée en charge des demandes s'en retrouve vite limitée. Pour résoudre ce
problème, il est préférable d'employer des points d'accès embarquant la solution de
portail captif et de définir plusieurs serveurs d'authentification FreeRadius. En
faisant cela, on répartit la charge sur les différents serveurs rendant le système
hautement disponible et on créé de la redondance en évitant un point de
centralisation dans le système.
CONCLUSION
Alors que dans la plupart des études réalisées sur les portails captifs, chaque
solution est testée pour définir laquelle est la plus adaptée, nous avons fait le choix
d'effectuer une étude comparative théorique de l'existant en sachant déjà la solution
qui allait être adoptée. De cette étude, résulte un nombre important de solutions avec
des fonctionnalités spécifiques à chacune. Ces initiatives s'inscrivent en général dans
40
des projets du "monde libre" qui regroupent une communauté active. Ces solutions ne
sont pas figées et sont donc amenées à évoluer ce qui rend très certainement cette
étude comparative temporaire.
ANNEXES
41
TABLE DES MATIÈRES
1. Bibliographie
2. Tableau récapitulatif des installation
3. Installation de VMware Server
4. Création et configuration de la machine virtuelle
5. Installation d'Ubuntu virtualisé
42
6. Adressage et activation de l'ip forwarding*
7. Installation de PhpRadmin
8. Installation de MYSQL
9. Installation de FreeRadius
10. Test de l'authentification
11. Intégration MYSQL dans FreeRadius
12. Installation et configuration de Chillispot
13. Installation d'Apache sécurisé (SSL)
14. Configuration d'Iptables
15. Configuration de l'interface PhpRadmin
43
CREATION ET CONFIGURATION Durée : 20 min
Etape 2
DE LA MACHINE VIRTUELLE Difficulté : Intermédiaire
BIBLIOGRAPHIE
44
CREATION ET CONFIGURATION Durée : 20 min
Etape 2
DE LA MACHINE VIRTUELLE Difficulté : Intermédiaire
Présentation :
Le logiciel Vmware est un système permettant sur une même machine physique
de créer des machines virtuelles afin de simuler des environnements de tests ou
construire des environnements de production. Il existe plusieurs types de systèmes
de virtualisation chez Vmware, qui remplissent des objectifs différents. Nous nous
attacherons ici à décrire uniquement les principes de fonctionnement du logiciel
gratuit Vmware Server.
Cette présentation est construit autour de la version Windows, et nécessite un
système d'exploitation de type XP pour être réalisé.
Afin d'obtenir cette version gratuite, il est nécessaire de se rendre sur la page de
téléchargement de VMware : http://www.vmware.com/download/server/
Lors de l'installation, une clé d'activation est demandée. Pour cela, il est nécessaire
de s'enregistrer sur la page : http://register.vmware.com/content/registration.html
afin de récupérer une clé d'activation.
Une fois cette clé récupérée, il ne reste plus qu'à lancer l'installation :
En choisissant l'installation complète, un module appelé « Vmware Management
Interface » va être installé et nécessite IIS pour fonctionner correctement.
VMware Management Interface est une interface Web de gestion qui permet de
visualiser l’état des machines virtuelles. Il est aussi possible de démarrer, arrêter ou
mettre en pause les machines. Enfin une vue détaillée de chaque machine permet de
voir l’état mémoire ou CPU, le nombre d’utilisateurs connectés.
45
CREATION ET CONFIGURATION Durée : 20 min
Etape 2
DE LA MACHINE VIRTUELLE Difficulté : Intermédiaire
N'ayant nullement besoin de cette fonction par la suite, nous choisirons de n'installer
ni IIS, ni le module « Vmware Management Interface ».
Après avoir choisi le répertoire d'installation, l'interface nous avertit que l' « auto-
run » peut avoir des effets inattendus sur le fonctionnement des machines virtuelles.
Nous choisirons donc de désactiver l'auto-run pour plus de sûreté.
46
CREATION ET CONFIGURATION Durée : 20 min
Etape 2
DE LA MACHINE VIRTUELLE Difficulté : Intermédiaire
Nous choisirons de ne pas configurer l'interface réseau tout de suite car les
possibilités de l'assistant sont trop restrictives. Nous choisirons donc l'option "Do
not use a network connexion" et nous configurerons la partie réseau de la machine
virtuelle ultérieurement.
Afin de garantir une stabilité du système virtualisé ainsi que de bonnes performances,
nous déciderons de laisser la taille de l'image du système virtualisé à 8 go.
47
CREATION ET CONFIGURATION Durée : 20 min
Etape 2
DE LA MACHINE VIRTUELLE Difficulté : Intermédiaire
Il faut maintenant configurer plus en détails la machine virtuelle sur les ressources à
utiliser pour son fonctionnement. Pour ce faire, il faut cliquer sur "Edit this virtual
machine". Notre portail captif ne demande pas plus de 256 Mo de RAM, ce qui est la
valeur que nous lui attribuerons.
La deuxième étape consiste à ajouter deux cartes réseaux virtuelles qui pointeront
chacune soit vers Vmnet2 ou Vmnet4 (donc soit en utilisant la carte réseau Intel ou
soit en utilisant une carte virtuelle présente sur le réseau virtuel 4 pour faire la
liaison avec la machine virtuelle simulant Internet).
48
CREATION ET CONFIGURATION Durée : 20 min
Etape 2
DE LA MACHINE VIRTUELLE Difficulté : Intermédiaire
49
CREATION ET CONFIGURATION Durée : 20 min
Etape 2
DE LA MACHINE VIRTUELLE Difficulté : Intermédiaire
Après avoir inséré le cédérom d'Ubuntu, il ne reste plus qu'à lancer la machine
virtuelle en cliquant sur la commande « Power on this virtual machine ».
50
INSTALLATION D’UBUNTU Durée : 20 min
Etape 3
VIRTUALISE Difficulté : Débutant
Ubuntu ayant finis de charger ses principaux modules dans la mémoire vive, nous nous
occupons de l'installation à proprement dit. Les trois premières étapes concernent le
paramétrage linguistique. Ainsi, nous laisserons les paramètres tels quels concernant
la langue et le fuseau horaire.
L'assistant nous invite ensuite à lui indiquer sur quelle partition le système devra être
installé. Nous choisirons donc d'installer le système sur la partition virtuelle SCSI3
qui est la partition créée par Vmware.
51
INSTALLATION D’UBUNTU Durée : 20 min
Etape 3
VIRTUALISE Difficulté : Débutant
Enfin, une fenêtre récapitulative nous informe des principaux choix qui ont été
effectués lors du paramétrage de l'installation.
52
ADRESSAGE IP ET ACTIVATION DE L'IP Durée : 10 min
Etape 4
FORWARDING Difficulté : Débutant
Nous décidons d'adresser l'IP 10.0.0.2/24 à cette interface eth0. La carte Broadcom
est alors représentée par l'interface eth1. Cette carte, reliée au point d'accès WiFi,
est censée desservir le trafique pour les utilisateurs. Nous lui adresserons l'IP
192.168.0.2 .Nous obtenons ainsi le schéma de configuration suivant :
Pour configurer les interfaces réseaux de façon permanente, il faut éditer le fichier
/etc/network/interfaces comme ci-dessous:
Après avoir vérifié que la passerelle arrive bien à communiquer avec les équipements
auquel elle est connectée, il faut mettre en place le mécanisme d'IP Forwarding. Ce
mécanisme, désactivé par défaut sur Ubuntu, permet à la passerelle de transmettre
les requêtes des clients vers le routeur internet.
53
ADRESSAGE IP ET ACTIVATION DE L'IP Durée : 10 min
Etape 4
FORWARDING Difficulté : Débutant
Pour empêcher cela, il faut indiquer dans le fichier "sysctl.conf" qui est lu par le
système avec le chargement des modules réseaux d'activer le mécanisme. La
commande est déjà présente dans le fichier mais elle est commentée. Il suffit donc
de la décommenter :
54
Durée : 5 min
Etape 5 INSTALLATION DE PHPRADMIN Difficulté : Débutant
Avant d'installer FreeRadius et MYSQL qui sont les acteurs principaux dans
l'authentification d'utilisateurs, nous allons récupérer et installer PhpRadmin qui
contient la structure de la future base de données.
55
Durée : 5 min
Etape 6 INSTALLATION DE MYSQL Difficulté : Débutant
56
Durée : 5 min
Etape 7 INSTALLATION DE FREERADIUS Difficulté : Débutant
Présentation :
Radius (Remote Authentication Dial-In User Service) est un système qui fait de
« l'AAA » (Authentication, Authorization and Accounting). Utilisé depuis longtemps
par bon nombre de fournisseurs d'accès à l'internet pour authentifier leurs clients et
leur communiquer une configuration IP, RADIUS va être utilisé dans notre cas pour
gérer l'accès des utilisateurs au portail captif.
Il faut tout d'abord installer Freeradius ainsi que le module additionnel freeradius-
mysql permettant qui permet l'utilisation d'une base de données MYSQL comme
source d'authentification:
57
Durée : 15 min
Etape 8 TEST DE L’AUTHENTIFICATION Difficulté : Intermédiaire
Avant de configurer Freeradius pour qu'il utilise MYSQL, il est judicieux de le tester
dans sa configuration initiale. Pour cela, nous allons créer un utilisateur qui
s'authentifiera localement, que nous allons déclarer à la fin du fichier
/etc/freeradius/users:
58
Durée : 15 min
Etape 8 TEST DE L’AUTHENTIFICATION Difficulté : Intermédiaire
On remarque que le serveur radius écoute les demandes d'authentification sur le port
1812 et les demandes d’accounting sur le port 1813.
59
INTEGRATION MYSQL DANS Durée : 25 min
Etape 9
FREERADIUS Difficulté : Intermédiaire
La première étape consiste à créer une base de données que nous nommerons
"phpradmin":
Puis nous allons construire la structure de la base grâce à un fichier contenant toutes
les requêtes SQL. Pour cela nous allons afficher le contenu du fichier et rediriger la
sortie directement vers MYSQL:
Pour que Freeradius puisse accéder à la base de données dont il va se servir pour
authentifier les clients nous allons créer un compte utilisateur MYSQL.
60
INTEGRATION MYSQL DANS Durée : 25 min
Etape 9
FREERADIUS Difficulté : Intermédiaire
authorize {
preprocess
chap
mschap
suffix
eap
#files
sql
}
authenticate {
Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
Auth-Type MSCHAP {
mschap
}
eap
}
accounting {
detail
unix
radutmp
sql
}
session {
sql
}
Par ces modifications, on indique à Freeradius d'utiliser MYSQL et non plus des
fichiers comme source.
Il faut maintenant lui indiquer le profil qu'il va utiliser pour accéder à la base
61
INTEGRATION MYSQL DANS Durée : 25 min
Etape 9
FREERADIUS Difficulté : Intermédiaire
Afin de tester que les paramètres précédents ont bien été pris en compte, nous allons
créer un utilisateur dans la base "radius" (en utilisant le profil MYSQL de
Freeradius).
62
INTEGRATION MYSQL DANS Durée : 25 min
Etape 9
FREERADIUS Difficulté : Intermédiaire
63
INSTALLATION ET Durée : 10 min
Etape 11
CONFIGURATION DE CHILLISPOT Difficulté : Débutant
Nous informons ensuite la clé partagée pour le chiffrement des informations entre le
serveur radius et le démon chillispot. C'est le même mot de passe que nous avions
défini dans la partie locale du fichier clients.conf. Le mot de passe à spécifié est donc
"radiussecret".
L'interface eth1 est l'interface reliée au point d'accès WiFi en relation avec les
clients.
64
INSTALLATION ET Durée : 10 min
Etape 11
CONFIGURATION DE CHILLISPOT Difficulté : Débutant
On spécifie la clé partagée qui va être utilisé pour chiffrer la transmission de données
entre la page CGI chargé par le client et le démon chillispot qui va réceptionner les
informations. Nous utiliserons la clé "uamsecret".
65
INSTALLATION ET Durée : 10 min
Etape 11
CONFIGURATION DE CHILLISPOT Difficulté : Débutant
On note que le portail captif est désactivé au démarrage du poste par défaut car une
mauvaise configuration de Chillispot lancé en daemon peut bloquer la console.
Il nous est aussi indiqué qu'un serveur radius doit être actif ainsi qu'un serveur UAM.
On ne spécifie pas les ports sur lequel chillispot envoie les requêtes
d'authentification car par défaut ce seront les ports 1812 et 1813 qui seront pris.
Indiquer ici, l'adresse sur laquelle les clients seront redirigés pour la demande
d'authentification. L'adresse IP ci-dessous correspond à l'adresse IP du serveur
UAM accessible depuis l'interface tun0. 192.168.182.1 est l'adresse par défaut que
Chillispot donne à l'interface virtuelle tun0.
uamserver https://192.168.182.1/cgi-bin/hotspotlogin.cgi
Déclarer ici les adresses qui n'auront pas besoin d'authentification pour être
consultables. Ce sont les adresses en libres accès. Parmi elles, doit figurer
obligatoirement, l'adresse de la page d'authentification chillispot
uamallowed 192.168.182.1/24, 192.168.100.2
67
INSTALLATION D'APACHE Durée : 20 min
Etape 12
SECURISE (SSL) Difficulté : Avancé
Nous allons renseigner que le serveur tourne localement sur la machine. Pour cela il
faut ajouter la ligne "ServerName 127.0.0.1" dans le fichier /etc/apache2/httpd.conf
Pour que le protocole SSL puisse fonctionner avec le Serveur HTTP Apache2, il faut
activer le module SSL avec la commande:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out
/etc/apache2/server.crt -keyout /etc/apache2/server.key
Explications :
-x509 -nodes donne le type de certificat voulu
-days 365 indique la durée de validité (en jours) de votre certificat
-newkey rsa:1024 demande une clé RSA de 1024 bits - d'après la doc apache, il
est déconseillé de créer une clé plus grosse pour des histoires de compatibilité
-out /etc/apache2/server.crt est le chemin de votre certificat
-keyout /etc/apache2/server.key est le chemin de la clé privée
68
INSTALLATION D'APACHE Durée : 20 min
Etape 12
SECURISE (SSL) Difficulté : Avancé
Pour configurer notre hôte virtuel, nous allons créer un fichier de configuration
nommé "chillispot" dans le répertoire /etc/apache2/sites-enabled/
69
INSTALLATION D'APACHE Durée : 20 min
Etape 12
SECURISE (SSL) Difficulté : Avancé
Dans notre cas, dès la création du fichier Chillispo,t celui-ci a été intégré à la
configuration d'Apache2.
Pour finir il faut supprimer le fichier 000-default du même dossier pour ne pas qu'il
n'y ait pas de conflits dans la configuration. Enfin, l'application de toutes ces
manipulations demande le redémarrage d'Apache2 :
Enfin pour vérifier que le serveur Apache2 fonctionne correctement on peut exécuter
la commande suivante:
70
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Nous devons donc rendre le fichier exécutable et le renommé car le nom par défaut
comprend un point.
#!/bin/sh
#
# Firewall script for ChilliSpot
# A Wireless LAN Access Point Controller
On attribue à chaque variable l'interface associée. Les objectifs de ce script sont les
suivants :
Toutes les connexions provenant de chillispot sont autorisées
Le protocole SSH est le seul protocole autorisé sur l'interface externe (eth0)
Rien n'est autorisée sur l'interface interne (eth1)
La redirection entre interface est autorisée pour les paquets provenant ou à
destination de l'interface externe, mais refusée pour les paquets ayant un rapport
avec l'interface interne.
La translation d'adresse est activée sur l'interface externe.
#
# SUMMARY
# * All connections originating from chilli are allowed.
# * Only ssh is allowed in on external interface.
# * Nothing is allowed in on internal interface.
# * Forwarding is allowed to and from the external interface, but disallowed
# to and from the internal interface.
# * NAT is enabled on the external interface.
IPTABLES="/sbin/iptables"
EXTIF="eth0"
INTIF="eth1"
Autorise sur l'ensemble des interfaces tous les paquets dont la connexion a déjà été
établie.
#Allow related and established on all interfaces (input)
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
72
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Autorise les paquets arrivants sur tun0 utilisés pour l'authentification sur la page
web chillispot.
#Allow 3990 on other interfaces (input).
$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT
73
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Le schéma ci-dessous résume l'ensemble des règles appliquées pour gérer les flux
nécessaires à l'affichage du portail web permettant l'identification de clients.
Autorise tout le trafique passant par la boucle locale utilisé pour le transite
d'informations entre les différents acteurs. Cette règle autorise dans notre cas
l'envoi des identifiants entre le démon Chillispot et le serveur RADIUS.
#Allow everything on loopback interface.
$IPTABLES -A INPUT -i lo -j ACCEPT
Active le Source NAT sur l'interface externe pour pouvoir transmettre la requête
sur locale sur Internet.
74
Afin de pouvoir gérer les comptes des utilisateurs utilisant l'accès Wi-Fi, nous utiliserons
la solution PhpRadmin qui est l'interface php, que nous avons précédemment extraite dans
le dossier /usr/local/phpradmin/. Cette interface permet d'administrer les différentes
tables de la base de données utilisées par le serveur FREERADIUS, afin d'obtenir des
statistiques concernant les connexions utilisateurs ainsi que leur état. Elle donne aussi la
possibilité d'appliquer des règles pour certains profils (limitation, interdictions de certains
protocoles,...).
L'interface PhpRadmin est écrite en php4, donc il faut en premier lieu installer php dans sa
version la plus récente (php5) dans une optique d'utilisation avec MYSQL.
Il faut de plus, installer les programmes qui vont permettre la réalisation de graphique
ainsi que la réception de statistiques sur le réseau. Pour cela, nous allons récupérer
RRDtool et SNMP dans les dépôts de la distribution et les installer :
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Il faut tout d'abord créer un profil permettant à l'interface d'interagir avec la base de
données utilisateurs :
Lors de l'installation par l'assistant une erreur apparaît lors de l'attribution des privilèges
au profil phpradmin car l'assistant a été réalisé sous php4, c'est pourquoi on supprimera
une partie du script, les opérations étant faites postérieurement.
76
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Il faut maintenant configurer Apache pour que celui-ci prenne en compte l'interface. Pour
cela, il suffit d'effectuer la manipulation suivante:
general_prefered_lang: en
general_prefered_lang_name: English
general_charset: iso-8859-1
general_base_dir: /usr/local/phpradmin/www/include/dialup_admin
general_radiusd_base_dir: /usr/sbin/
general_domain: phpradmin.org
general_use_session: no
general_most_recent_fl: 50
general_strip_realms: no
general_realm_delimiter: @
general_realm_format: suffix
general_show_user_password: yes
general_raddb_dir: /etc/freeradius
general_ldap_attrmap: /etc/freeradius/ldap.attrmap
general_clients_conf: /etc/freeradius/clients.conf
general_sql_attrmap: /usr/local/phpradmin/conf/dialup_admin/conf/sql.attrmap
general_accounting_attrs_file: /usr/local/phpradmin/conf/dialup_admin/conf/accounting.attrs
77
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
general_extra_ldap_attrmap: /usr/local/phpradmin/www/include/dialup_admin/conf/extra.ldap-attrmap
general_lib_type: sql
general_user_edit_attrs_file: /usr/local/phpradmin/conf/dialup_admin/conf/user_edit.attrs
general_sql_attrs_file: /usr/local/phpradmin/conf/dialup_admin/conf/sql.attrs
general_default_file: /usr/local/phpradmin/conf/dialup_admin/conf/default.vals
general_finger_type:
general_nas_type: other
general_snmpfinger_bin: /usr/local/phpradmin/conf/dialup_admin/bin/snmpfinger
general_radclient_bin: /usr/bin/radclient
general_test_account_login: test
general_test_account_password: testpass
general_radius_server: localhost
general_radius_server_port: 1812
general_radius_server_auth_proto: chap
general_radius_server_secret: radiussecret
general_auth_request_file: /usr/local/phpradmin/www/include/dialup_admin/conf/auth.request
general_encryption_method: clear
general_accounting_info_order: desc
general_stats_use_totacct: no
general_restrict_badusers_access: no
general_caption_finger_free_lines: free lines
ldap_server:
ldap_write_server:
ldap_base:
ldap_binddn:
ldap_bindpw:
ldap_default_new_entry_suffix:
ldap_default_dn:
ldap_regular_profile_attr:
ldap_use_http_credentials:
ldap_directory_manager:
ldap_map_to_directory_manager:
ldap_debug:
ldap_filter:
ldap_userdn:
sql_type: mysql
sql_server: localhost
sql_port: 3306
sql_username: phpradmin
sql_password: passwordpra
sql_database: phpradmin
sql_accounting_table: radacct
sql_badusers_table: badusers
sql_check_table: radcheck
sql_reply_table: radreply
sql_user_info_table: userinfo
sql_groupcheck_table: radgroupcheck
sql_groupreply_table: radgroupreply
sql_usergroup_table: usergroup
sql_total_accounting_table: totacct
78
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
sql_nas_table: nas
sql_command: /usr/bin/mysql
general_snmp_type: net
general_snmpwalk_command: /usr/bin/snmpwalk
general_snmpget_command: /usr/bin/snmpget
sql_debug: false
sql_use_user_info_table: true
sql_use_operators: true
sql_password_attribute: User-Password
sql_date_format: Y-m-d
sql_full_date_format: Y-m-d H:i:s
sql_row_limit: 50
sql_connect_timeout: 3
sql_extra_servers:
counter_default_daily: none
counter_default_weekly: none
counter_default_monthly: none
counter_monthly_calculate_usage: false
INCLUDE: /usr/local/phpradmin/conf/dialup_admin/conf/naslist.conf
INCLUDE: /usr/local/phpradmin/conf/dialup_admin/conf/captions.conf
Les paramètres encadrés en rouge sont ceux qui doivent être changés dans le fichier
d'origine pour que l'interaction en FreeRadius et DialupAdmin soit possible.
On peut dès lors se rendre sur la page contenant l'assistant d'installation de PhpRadmin à
savoir, http://localhost/phpradmin .
Après avoir accepté le contrat de licence, il faut remplir le formulaire décrivant les
chemins des différents éléments logiciels que va utiliser PhpRadmin:
79
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Pour poursuivre l'assistant, il est nécessaire d'affecter certains droits sur des dossiers
afin que l'interface puisse écrire dans le journal et puisse configurer les fichiers de
configuration en respectant les paramètres entrés précédemment dans le formulaire.
80
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
On peut ainsi continuer vers la prochaine étape qui est la configuration à l'accès à la base
de données utilisateurs.
Mot de passe:
passwordpra
Pour l'étape suivante, le choix est laissé à l'administrateur concernant ses identifiants.
81
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
La dernière page de l'assistant indique les dernières manoeuvres à suivre afin de pouvoir
bénéficier de toutes les fonctionnalités de l'interface.
82
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Il faut savoir que les conseils de commandes ci-dessus ont été écrits pour une distribution
Fedora et sont pour la plupart, différentes sur Ubuntu:
83
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
1.
3. Certains scripts doivent être lancés au démarrage de la machine tel que le script
"log_badlogins". Pour cela on applique la manipulation suivante:
84
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
PhpRadmin.
Il faut donc suivre les instructions du portail afin de garantir la sécurité de l'interface.
Une fois authentifié, on a accès à l'interface pour gérer le portail captif et les
utilisateurs.
Néanmoins, lors de création d'un profil utilisateur, le script utilisé pour la création de
celui-ci dans la base de données utilise un opérateur ":=", alors que quand FreeRadius
effectue son test d'authentification il effectue sa requête avec un opérateur "==". Afin de
pallier ce problème il faut éditer le fichier
/usr/local/phpradmin/www/include/dialup_admin/lib/sql/create_user.php3 :
85
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
De nombreux paramètres sont disponibles alors qu'ils n'étaient pas présents dans Dialup-
86
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Admin. Les paramètres les moins explicites sont détaillés lorsque l'on clique dessus.
Nous avons aussi décelé un défaut de programmation dans la rubrique Options>"Radius
Server". Malgré la spécification de l'emplacement où est installé FreeRadius, aucun fichier
de configuration propre à FreeRadius n'est recueilli.
Enfin, il faut rendre le dossier /etc/freeradius/ lisible par l'interface PhpRadmin par
87
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
l'instruction:
chmod o+r /etc/freeradius
De plus, nous avons remarqué que le passage de php4 vers php5 posait problème dans
l'affichage de la rubrique "Global Stats"
.
Nous avons retouché le code en particulier la composition de la variable $timest afin que le
serveur Apache puisse afficher la valeur résultante.
Extrait du code du fichier functions.php3 posant problème. :
88
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
Il faut relancer le serveur Apache2 pour que les modifications de l'interface soient prises
en comptes:
89
Durée : 10 min
Etape 13 CONFIGURATION D'IPTABLES Difficulté : Débutant
On observe que le formulaire permettant de spécifier la période des statistiques ainsi que
d'autres paramètres s'affiche convenablement grâce aux modifications des fonctions php.
Par défaut, PhpRadmin ne permet pas la gestion d’une limite de téléchargement en entrée
ou en sortie. Cette option est très intéressante pour limiter les utilisateurs utilisant le
hotspot pour du téléchargement massif. Pour cela, il est nécessaire de configurer les
options de dialup-admin afin d’ajouter ce paramètre.
La première chose à faire est de rendre le dictionnaire des paramètres pouvant être
ajoutés lisible pour l’interface PhpRadmin :
90