UCAO-UUT
Mise en place d’un
portail captif avec
PfSense
ense
KODJO Gildas
AGBEKPONOU Alex
MISSITE Diana
Table des matières
I- Introduction…………………………………………………………………………………………..3
II- Installation de pfsense.................................................................................4
III- Configuration de PfSense……………………………………………………………………….6
IV- Mise en place du portail captif………………………………………………………………10
V- Conclusion…………………………………………………………………………………………….16
Sources………………………………………………………………………………………………….17
2
I. Introduction
Un portail captif est une structure permettant un accès rapide à Internet. Lorsqu'un
utilisateur cherche à accéder à une page Web pour la première fois, le portail captif capture
la demande de connexion par un routage interne et propose à l'utilisateur de s'identifier afin
de pouvoir recevoir son accès. Cette demande d'authentification se fait via une page Web
stockée localement sur le portail captif grâce à un serveur HTTP. Ceci permet à tout
ordinateur équipé d'un navigateur HTML et d'un accès WiFi de se voir proposer un accès à
Internet. La connexion au serveur est sécurisée par SSL grâce au protocole HTTPS, ce qui
garanti l'inviolabilité de la transaction. 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. Une fois l'utilisateur authentifié, les règles du Firewall
le concernant sont modifiées et celui-ci se voit alors autorisé à utiliser son accès pour une
durée limitée fixée par l'administrateur. A la fin de la durée définie, l'utilisateur se verra
redemander ses identifiants de connexion afin d'ouvrir une nouvelle session.
Schema theorique d’un portail captif
Quoi que désire faire le client, s’il veut surfer sur le WEB il devra d’abord passer par le portail
captif afin de s’authentifier.
La différence entre un simple FireWall et un portail captif réside dans le fait que le portail
captif ne refuse pas une connexion, il la redirige vers une page d’authentification. Un
exemple de portail captif est pfsense.
pfSense est un routeur / pare-feu opensource basé sur FreeBSD.
3
pfSense peut être installé sur un simple ordinateur personnel comme sur un serveur. Basé
sur PF (packet filter), comme iptables sur GNU/Linux, il est réputé pour sa fiabilité.
Après une installation en mode console, il s'administre ensuite simplement depuis une
interface web et gère nativement les VLAN (802.1q).
II. Installation de pfsense
Nous avons effectué l'installation décrite si dessous sur un logiciel appelé VMware. Ce
logiciel nous permet de créer des ordinateurs virtuels et de les relier par réseaux virtuels.
Nous allons installer le portail captif sur le disque dur de la machine virtuelle.
Tout d'abord, on vérifie que notre ordinateur possède les caractéristiques requises, puis on
installe à partir de l’iso pfsense 1.2.3
Nous allons ensuite avoir l'écran de démarrage de FreeBSD. On a plusieurs choix possibles.
Ici on va choisir l'option 1 qui est l’option par défaut.
Pour l’utilisation de PfSense, il est nécessaire d’activer une deuxième interface réseau dans
les paramètres de VMWare. Pour cela, dans le menu VM, on choisit l’option settings, une
fenêtre s’ouvre alors, on clique sur add puis on choisit Network adapter et on a reliés un
pont entre le virtuel et le physique.
Ensuite vient la configuration des interfaces réseaux. On remarquera ci-dessous que FreeBSD
détecte le nombre de carte réseau, et y attribue des noms (Valid interface are : lnc0 et lnc1
dans notre cas).
On choisi donc quel interface sera le LAN et l'autre le WAN (ici LAN: lnc0, WAN: lnc1).
4
Nous avons ensuite un récapitulatif de la configuration et devons la valider en tapant "y".
L'installation qui va suivre se fait en acceptant toutes les options par défaut. Il suffit
d'accepter toutes les demandes (formatage si nécessaire et création de la partition).
FreeBSD charge ensuite et nous entrons dans le menu.
Nous allons donc passer à l'installation sur le disque dur en tapant le choix "99".
L'installation qui va suivre se fait en acceptant toutes les options par défaut. Il suffit
d'accepter toutes les demandes (formatage si nécessaire et création de la partition).
Une fois l'installation terminée, redémarré la machine.
Pfsense est en marche. Nous pouvons le configurer ici même via le Shell (ligne de
commande) ou bien via une interface graphique (http) en connectant un PC sur la carte
associé au LAN.
III. Configuration de PfSense
5
Nous allons maintenant configurer PfSense.
Avant tout, nous allons changer l'IP sur la machine de PfSense directement, pour plus de
cela, dans le menu de PfSense, on choisi la deuxième option Set
simplicité par la suite. Pour cela,
LAN IP address.
Ici on entre l'adresse
adresse IP correspondant à notre LAN.
Nous allons pouvoir maintenant configurer Pfsense via l'interface Web.
otre navigateur Web, puis on entre http://192.168.77.2
On ouvre ensuite notre .252
Entrez ensuite le login (par défaut admin, mot de passe : pfsense).
Allons ensuite dans System, puis General Setup.
6
Ici se trouve la configuration
tion générale de Pfsense. On entre ici le nom de la machine (Ici
pfsense.ucao-uut.tg), le domaine et l'IP du DNS.
D Il nous
ous faut décocher l'option se trouvant
dessous (Allow DNSS server list to be overridden by DHCP/PPP on WAN). En effet, cette
option provoque des conflits puisque
pui les DNS des clients n'est plus Pfsense, mais un DNS du
WAN inaccessible par le LAN.
Ensuite, on modifie le nom et le mot de passe du compte permettant de se connecter sur
Pfsense.
On peut ensuite activer l'accès à ces pages, via une connexion sécurisée
sécurisée SSL. Pour cela,
activer l'HTTPS. Entrez le port 443 dans webGui port (correspondant à SSL).
SSL).
On peut ensuite modifier le serveur NTP et le fuseau horaire pour régler l’horloge.
horloge.
On obtient donc une interface comme ceci :
7
Ensuite, toujours dans "system", allez dans Advanced. Ici, nous pouvons activer la connexion
SSH afin de l'administrer à distance sans passer par l'interface graphique (en effet, pour une
configuration accrus, il vaut mieux passer par le Shell).
Nous allons maintenant configurer les interfaces LAN et WAN en détail.
Pour cela, allez dans Interface, puis WAN pour commencer. Entrez ici l'adresse
'adresse IP de la carte
réseau coté WAN, ainsi que l'adresse IP de la passerelle.
Configurons ensuite la carte LAN (elle doit être normalement bien configuré,
configu mais nous
pouvons faire des modifications par la suite ici) :
8
Allons ensuite dans la section DNS forwarder. Activons ensuite l'option Enable DNS
forwarder. Cette option va permettre à Pfsense de transférer et d'émettre les requêtes DNS
pour les clients.
Il ne reste plus qu'à configurer le serveur DHCP pour le LAN, afin de simplifier la connexion
des clients.
Pour cela, allez dans la section DHCP server.
Cochons la case Enable DHCP server on LAN interface. Entrons ensuite la plage d'adresse IP
qui sera attribuée aux clients. Dans notre cas, notre plage d'IP sera 192.168.77.10 –
192.168.77.245.
Il faut par la suite entrer l'IP du serveur DNS qui sera attribuée aux clients. Ici, nous allons
entrer l'IP du portail captif. En effet, nous avons définie plus haut que Pfsense fera lui-même
les requêtes DNS.
Pour finir, entrons l'adresse de la passerelle pour les clients. Celle-ci sera le portail captif :
192.168.77.252.
Voici donc ce que nous devons avoir :
9
Voilà,, Pfsense est correctement configuré. Pour le moment il sert uniquement de Firewall et
de routeur.
Nous allons maintenant voir comment activer l'écoute des requêtes sur l'interface LAN et
obliger les utilisateurs à s'authentifier pour traverser le Firewall.
IV. Mise en place du portail captif
Nous allons désormais voir la procédure afin de mettre en place le
le portail captif.
ca Pour
cela, allons dans la section Captive portail.
Cochons la case Enable captive portail, puis choisissons l'interface sur laquelle le portail
captif va écouter (LAN dans notre cas).
Dans les 2 options suivantes, nous allons définir les
l temps à partir desquels les clients seront
déconnectés. Idle Timeout définie le temps à partir duquel un client clien inactif sera
automatiquement déconnecté. HardHa Timeout définit le temps à partir duquel un client seraser
déconnecté quelque soit son état.
Nous avons choisi de mettre 1h pour l'inactivité, et 12h pour les déconnexions brutales.
Ensuite, nous pouvons activer ou pas un popup qui va servir au client de se déconnecter.
Nous avons préféré ne pas mettre cette option, car de nombreux utilisateurs utilisent
utili des
anti-popup et donc ne verront pas ce message.
10
Il est possible ensuite de rediriger un client authentifié vers une URL spécifique. Nous avons
préféré de ne rien mettre afin de laisser la liberté au client de gérer leur page de démarrage.
Le paramètre
ètre suivant Concurrent user logins, permetpermet d'éviter les redondances de
connexions. En effet, l'utilisateur pourra se connecter sur une seule machine à la fois. Cela va
v
donc limiter les usurpations d'identité pour se connecter.
Enfin il est possible de filtrer
trer les clients par adresse MAC.
Ensuite vient la méthode d'authentification.
3 possibilités s'offrent à nous :
• Sans authentification, les clients sont libres
• Via un fichier local
• Via un serveur RADIUS
Nous avons opté pour la 2e solution pour utiliser le serveur Raduis installé sous pfsense donc
on coche l’option local user manager.
manager
11
La création
réation d’un utilisateur dans la base locale se fera de la manière suivante :
Dans l’onglet
nglet Users on clique sur Add,
Add, on entre les informations concernant
concernan l’utilisateur puis
on clique sur Save.
ave. Un nouvel utilisateur est ainsi créé.
créé
• Sécurisation de PfSense
12
PfSense, à son installation, est dénué de toute sécurité. C’est assez embêtant dans la
mesure où par exemple un mot de passe en clair serait facilement interceptable. Plusieurs
étapes sont à prendre en compte :
- L’accès au Web Gui (l’interface d’administration)
- L’authentification de l’utilisateur
- L’après authentification, Une communication cryptée
L’accès sécurisé au Web Gui
Pour cette sécurisation, on aura besoin d'un certificat. Une connexion HTTPS sera établie. Si
nous n'avons pas de certificat, reportons nous plus haut afin d'un créer un. Si le certificat est
présent dans la section Advanced (vu précédemment), allons dans le menu
General Setup.
Sélectionnons HTTPS dans WebGUI protocol et mettons le port 443 (SSL) dans WebGUI port.
Voila, l'accès à Pfsense est entièrement sécurisé !
L’authentification sécurisée de l’utilisateur
Pfsense permet des gérer un accès sécurisé au portail captif via SSL. L'accès se fera donc via
une connexion HTTPS. Le client devra simplement télécharger un certificat pour la mise en
place du tunnel crypté.
Configuration de Pfsense :
Avant d'activer l'HTTPS, il faut tout d'abord créer un certificat. Pour cela, Pfsense intègre un
module pour leur génération.
Allons sur la section System, Advanced.
Descendons ensuite la partie webGUI SSL. Ici nous pourrons créer notre certificat, cliquons
sur Create.
13
Entrons ensuite les informations demandées, et cliquons sur Save.
Nous avons maintenant
tenant notre certificat créé. Cliquons sur Save afin de garder ce certificat.
Revenons ensuite
ite sur cette page, et récupérons les clés. Nous nous en servirons
rvirons pour l'accès
sécurisé au portail.
14
Allons ensuite dans la section Captive Portail.
Activons le HTTPS, donnons le nom de la machine et collons les clés créées plus haut.
Enfin, on importe une page web qui servira de page d'accueil, ainsi qu'une autre page en cas
d'échec d'authentification.
Si nous allons insérer les images de notre pages web, pour cela allons dans l'onglet File
Manager et téléchargeons nos images.
15
V. Résultat final
Au final lorsqu’un utilisateur va se connecter à notre réseau et qu’il voudra accéder à un site
web, en entrant
rant l’adresse du site web il sera redirigé vers notre page d’authentification ci-
dessous :
qu existe dans le fichier local User
Lorsqu’il s’authentifie avec un compte qui ser manager de notre
portail captif, il pourra accéder à la page web qu’il désire consulter.
consulter. Dans le cas contraire, il
sera dirigé vers notre page d’erreur et devra recommencer l’authentification :
16
VI. Conclusion
La mise en place d’un portail captif est un moyen
moyen simple d’assurer la sécurité d’un
réseau wifi. Elle permet dee restreindre l’accès au réseau uniquement aux au utilisateurs
autorisés, de gérer les comptes des clients et leur durée de connexion. C’est un moyen idéal
de sécurisation pour les cybercafés,
cybercafés les entreprises et les infrastructures publiques qui
disposent d’un réseau wifi.
VII. Sources
-PROJET TUTEURÉ : Mise en œuvre d'un Portail Captif sur un réseau WIFI, Lylian Anthony
- pfSense Manuel d’Installation et d’Utilisation du Logiciel,
Logiciel, Lagarde Yannick
17