Académique Documents
Professionnel Documents
Culture Documents
version A
Documentation technique
le 12 août 2007
Gestion des Hotspots WiFi
Sommaire
1| Préambu le 4
4| Dépannage 15
4.1| M od e D E BU G ..................................................................... 15
4.2| V oi r l e s cl i en t s c on n e ct é s .................................................... 15
4.3| Fi ch i er s d e l og s ................................................................. 15
page du sommaire 2
Gestion des Hotspots WiFi
Table de révision
page du sommaire 3
Gestion des Hotspots WiFi
1| Préambule
L’objet de cette documentation est de fournir à la fois les notions d’administration des
différents serveurs qui entrent en jeux dans la composition des Hotspots WiFi, et par la
suite de décrire la procédure à suivre pour l’ouverture et la maintenance de ces dits
Hotspots.
L’architecture type d’un Hotspot est la suivante : une machine (de préférence) ou un
routeur (supportant le firware dd-wrt) héberge un portail captif Chillispot qui oblige
l’utilisateur à s’identifier sur le serveur FreeRadius qui se trouve dans les locaux de St
Martin :
La connexion internet utilisée pour consulter les sites web est celle présente sur les lieux du
Hotspot (livebox du client ou autre). Les requêtes à destination du serveur ne se font que
pour l’authentification, la facturation, et la fermeture de la connexion. On ne surcharge donc
pas le serveur Radius à chaque accès.
page 4
Gestion des Hotspots WiFi
Chillispot est un portail captif. Il a pour rôle dans un premier temps de distribuer les
adresses IP aux clients qui se connectent sur le Hotspot, puis dans un second temps de
capturer toutes les requêtes à destination du web. Il force ainsi le client à passer par la
page de demande d’authentification. Il n’est pas possible de passer outre, seuls les sites de
dimension iT et la page d’authentification de Chillispot sont autorisés sans être, au
préalable, authentifié sur le serveur Radius.
Chillispot peut à la fois être installé sur une machine, via les paquets téléchargeables sur le
site officiel, mais peut également être flashé dans un routeur compatible (du type Linksys
WRT-54G) au moyen d’un firware spécifique (DD-WRT).
2.2| Pré-requis
2.2.1| Matériels
La mise en place d’un portail captif Chillispot nécessite un serveur possédant 2 cartes
réseau. L’une d’entre elle se trouve du côté lan (le segment réseau relié à internet) et la
deuxième du côté WiFi.
Dans la mesure du possible, et suivant le trafic prévu, il conviendra d’installer des cartes
réseau rapides (10/100/1000) et de prévoir le câblage en conséquence (catégorie 5e, voir
catégorie 6). En effet, tout le trafic transitera par cette machine et cette dernière
constituera un goulot d’étranglement.
D’un point de vue hardware, la machine ne nécessitera pas des ressources importantes
(Chillispot tourne sur des routeurs équipé de CPU cadencés à 200 MHz et très peu de RAM).
Néanmoins, si la machine hébergeant le Chillispot doit avoir d’autres fonctions (proxy par
exemple) il faudra prévoir les ressources nécessaires.
2.2.2| Logiciels
Nous prendrons pour support d’installation une distribution stable de Debian (4.0 au
moment de la rédaction de ce document).
Les dépendances logicielles à satisfaire sont les suivantes :
- un serveur Web (apache2) correctement configuré
- un outil de génération de certificats (openssl)
- FreeRadius
- iptables
page 5
Gestion des Hotspots WiFi
2.3| Installation
2 . 3 . 1 | E t a p e 1 : c o n f i g u r a t i o n de s i n t e r f a c e s
Tout d’abord veuillez correctement configurer les interfaces réseau. Dans cette
documentation eth0 sera l’interface reliée au lan (et donc à internet) et eth1 est reliée côté
WiFi :
2 . 3 . 2 | E t a p e 2 : i n s t a l l a t i o n du pa q ue t C hi l l i s p ot
Téléchargez la dernière version pour Debian de Chillispot sur le site officiel :
http://www.chillispot.org/download/chillispot_1.0RC3-1_i386.deb
puis installez-la :
dpkg –i chillispot_1.0_i386.deb
page 6
Gestion des Hotspots WiFi
2 . 3 . 3 | E t a p e 3 : i n s t a l l a t i o n e t c onf i g u r a t i o n d u C G I
copiez le fichier hotspotlogin.cgi :
cp /usr/share/doc/chillispot/hotspotlogin.cgi.gz /usr/lib/cgi-bin/
dans ce fichier, décommentez et changez le secret partagé entre le CGI et le démon chilli.
Ce secret doit correspondre à celui présent dans le fichier /etc/chilli.conf (que nous
éditerons par la suite) :
$uamsecret = "secret_partage";
2 . 3 . 4 | E t a p e 4 : c o n f i g u r a t i o n de C hi l l i sp o t
La configuration de Chillispot se fait dans son unique fichier de configuration :
/etc/chilli.conf
Les paramètres qu’il faut maintenant modifier sont les suivants :
net 10.0.1.0/8
Il est par exemple possible de définir un plan d’adressage, ex :
- 10.0.1.0 /8 = Hotspot Saint Martin
- 10.0.2.0 /8 = Hotspot Paris
- 10.0.X.0 /8 = […]
Veuillez noter toutefois qu’il est préférable de rester sur le même masque de sous réseau
dans l’optique d’une intégration à un serveur mandataire commun à tous les Hotspots.
radiuslisten xxx.xxx.xxx.xxx
Vous devez spécifier l’adresse IP publique du serveur Radius de dimension iT.
radiusserver1 xxx.xxx.xxx.xxx
radiusserver2 xxx.xxx.xxx.xxx
Vous devez spécifier l’adresse IP publique du serveur Radius de dimension iT.
radiussecret secret_partage
Spécifiez le secret partagé entre le serveur Radius et le daemon chilli. Ce secret doit être le
même que celui qui figure dans le fichier clients.conf du serveur Radius (on y reviendra à
l’étape 6).
radiusnasid dimensioniT#5
Spécifiez l’identifiant du nouveau Hotspot.
page 7
Gestion des Hotspots WiFi
radiuslocationid isocc=fr,cc=33,ac=17410,network=dimensioniT#5
Spécifiez le lieu où se trouve le Chillispot.
radiuslocationname dimensioniT,St-Martin-de-Re
Décrivez le lieu où se trouve le Chillispot.
dhcpif eth1
Spécifiez sur quelle interface le daemon Chillispot doit attribuer des adresses IP. Cette
interface est celle présente du côté du réseau WiFi. Attention : c’est au daemon de Chillispot
de distribuer les adresses IP, et non à un autre serveur DHCP pouvant déjà être installé sur
la machine.
uamserver https://10.0.1.1/cgi-bin/hotspotlogin.cgi
Spécifiez ici l’adresse sur laquelle les clients seront redirigés pour la demande
d’authentification. L’adresse IP ci-dessus correspond à l’adresse IP (fixe) du serveur
Chillispot côté réseau WiFi (interface eth1).
uamsecret secret_partage
Spécifiez ici le secret partagé entre le daemon Chillispot et le fichier hotspotlogin.cgi.
uamlisten 10.0.1.1
Spécifiez l’adresse IP sur laquelle le daemon Chillispot écoute (interface eth1).
uamallowed www.dimension-it.com,10.0.1.1/8
Spécifiez ici les adresses qui n’auront pas besoin d’authentification pour être consultables.
Ce sont les adresses en libre accès. Parmis elles, doit figurer obligatoirement celle de
l’interface côté WiFi du serveur Chillispot.
page 8
Gestion des Hotspots WiFi
2 . 3 . 5 | E t a p e 5 : m i se e n p l a c e de s r è gl e s de f i r e wa l l
Il est indispensable pour le bon fonctionnement du portail captif de disposer d’un certain
nombre de règles IPTABLES, notamment des règles de translations mais également des
règles bloquantes.
Dans toute configuration de firewall, la règle absolue est de bloquer tout, puis d’autoriser
seulement ce que l’on souhaite. C’est ce qui est fait dans ce fichier. Ce dernier doit être
exécuté au démarrage de la machine. Nous verrons par la suite comment le faire (étape 8).
cp /usr/share/doc/chillispot/firewall.iptables /etc/chilli.iptables
chmod u+x /etc/chilli.iptables
Dans ce fichier nous devons configurer 2 variables (EXTIF et INTIF). La première des deux
(EXTIF) correspond à l’interface présente sur le réseau où le WAN se trouve. La deuxième
(INTIF) correspond à l’interface présente sur le réseau WiFi. Voici le résultat souhaité dans
notre exemple :
EXTIF="eth0"
INTIF="eth1"
Adaptez ensuite les règles de ce fichier suivant les besoins. A titre d’exemple, voici le
contenu du fichier chilli.iptables du serveur de Saint Martin :
page 9
Gestion des Hotspots WiFi
#!/bin/sh
IPTABLES="/sbin/iptables"
EXTIF="eth0"
INTIF="eth1"
page 10
Gestion des Hotspots WiFi
Nous devons maintenant activer le routage sur la machine. Cela se passe dans le fichier
/etc/network/interfaces dans lequel se trouve également la configuration des interfaces
réseau de la machine. Voici le contenu de ce fichier sur le serveur Chillispot de Saint
Martin :
auto eth1
iface eth1 inet static
address 10.0.1.1
netmask 255.0.0.0
network 10.0.0.0
broadcast 10.255.255.255
2 . 3 . 6 | E t a p e 6 : c o n f i g u r a t i o n de F r e e R a di u s
Nous en avons parlé à l’étape 4, il est nécessaire d’apporter une modification au serveur
Radius, et notamment au fichier clients.conf, afin que ce dernier accepte les demandes
d’authentification du nouveau Hotspot.
La démarche à suivre est décrite au paragraphe 3.1| Intégration d’un nouveau Hotspot.
2 . 3 . 7 | E t a p e 7 : t e st
La configuration du serveur Chillispot est maintenant achevée. Il convient de procéder à un
test pour vérifier son bon fonctionnement:
/etc/init.d/freeradius restart
ifconfig eth1 0.0.0.0
/etc/init.d/chilli restart
/etc/chilli.iptables
Puis connectez un ordinateur sur l’interface côté WiFi. Vous devriez être redirigé vers la
page de demande d’authentification.
page 11
Gestion des Hotspots WiFi
2 . 3 . 8 | E t a p e 8 : d é m a r r a g e a u t om a t i q ue
Si le serveur vient à être redémarrer pour une raison ou une autre, ce dernier doit être en
mesure de retrouver sa configuration, non seulement des règles IPTABLES, mais également
des interfaces.
En effet, pour pouvoir fonctionner correctement en mode tunneling, l’interface eth1 doit être
initialisée avec une adresse IP spécifique (0.0.0.0). Ce type d’adresse ne sera pas accepté
dans le fichier /etc/network/interfaces, mais en plus de cela, nous avons déjà spécifié une
adresse IP pour cette interface (10.0.1.1).
Nous devons donc exécuter ces commandes une fois la machine démarrée et les services
lancés. Pour cela, nous allons écrire un script bash que nous allons faire exécuter au
démarrage de la machine, de façon automatique :
vim /etc/init.d/post_start_script.sh
Ce fichier doit contenir les instructions suivantes :
#!/bin/sh
/etc/chilli.iptables
ifconfig eth1 0.0.0.0
/etc/init.d/chilli restart
Ensuite nous devons rendre ce script exécutable et lui attribuer de nouveaux droits :
chmod 700 /etc/init.d/post_start_script.sh
chmod +x /etc/init.d/post_start_script.sh
Et enfin créer un lien symbolique vers ce fichier dans le répertoire adéquat :
cd /etc/rc2.d/
ln –s ../init.d/post_start_script.sh S99post_start_script.sh
La page d’authentification présentée par Chillispot aux clients qui se connectent au Hotspot
WiFi est personnalisable. Nous pouvons y ajouter par exemple le nom du Hotspot sur lequel
le client se trouve, des logos, etc… Par défaut, celle-ci ressemble à :
page 12
Gestion des Hotspots WiFi
page 13
Gestion des Hotspots WiFi
Une fois le Hotspot correctement configuré avec le portail captif Chillispot, il convient de
configurer le serveur FreeRadius afin d’autoriser les requêtes d’authentification.
client yyy.yyy.yyy.yyy {
secret = secret_partage
shortname = Bureau_Conseil_LR
}
page 14
Gestion des Hotspots WiFi
4| Dépannage
Il peut être utile de lancer FreeRadius en mode DEBUG dans le cas, par exemple, où l’on
souhaiterai vérifier si un Hotspot arrive bien à envoyer ses requêtes d’authentification.
Pour cela :
- Stoppez le service FreeRadius en cours d’éxecution : /etc/init.d/freeradius stop
- Lancez le mode DEBUG : freeradius –XXX –A
FreeRadius utilise plusieurs fichiers de logs, en plus des tables MySQL. Il peut être
intéressant de les consulter pour vérifier le bon fonctionnement du serveur, ou tout
simplement connaître son état.
Les fichiers de logs de FreeRadius se trouvent dans le répertoire /var/log/freeradius.
page 15