[pfSense 2.3.3] Mise en place d’un portail captif

En plus d’être un routeur et un pare-feu, pfSense est aussi capable d’être un serveur proxy, plus précisément un portail captif. Découverte et mise en place.

0. Qu’est-ce que ce portail ?

Un portail captif est un service web mis en place dans un réseau pour authentifier les utilisateurs. Tous les utilisateurs de ce réseau LAN devront forcément accéder à ce portail dit « captif » et s’y authentifier pour ensuite pouvoir accéder à l’internet. Si l’authentification n’est pas effectuée ou abandonnée, la connexion internet ne sera pas établie pour l’utilisateur concerné.

Fréquemment mis en place dans les hôtels ou les établissements scolaires, il permet ainsi de créer une liste d’utilisateur s’étant connecté sur le réseau, le portail captif et par la suite internet. Par la suite, des utilisateurs peuvent être interdis de navigation selon les règles en vigueur. Selon les portails captifs, il est tout à fait réalisable de connecter ce portail avec des annuaires types Active Directory ou encore LDAP. Il est même possible dans certains cas d’aller encore plus loin et de configurer du SSO.

L’intégration du portail captif dans pfSense se fait par la configuration du service intégré. Il n’est pas nécessaire d’ajouter de nouveaux paquets.

Dans cette procédure, je déroulerai la mise en place d’un portail captif « simple », sans personnalisation et en utilisant l’annuaire interne de pfSense – ce qui veut dire qu’il faut créer manuellement les comptes utilisateurs dans pfSense pour que vos utilisateurs puissent s’authentifier (avec ces comptes créés dans pfSense). pfSense permet aussi l’utilisation d’un serveur RADIUS ou l’utilisation de « vouchers », qui sont des tickets à usage unique.

Dans cet article, je traiterai la mise en place et la configuration simple d’un portail captif, avec une authentification interne. Pas de filtrage, pas de blocage, pas d’authentification SSO ou unique. Il pourra y avoir des articles complémentaires à ces sujets ultérieurement.


I. Mise en place du portail

Dans l’interface principale de pfSense, cliquez sur le menu « Services« , puis sur l’option « Captive portal« .

La configuration de ce portail se faire en plusieurs étapes. Il faut créer une zone dans laquelle le portail captif sera actif puis configurer cette zone. Cliquez sur le bouton vert « Add » – un assistant de création va alors s’ouvrir :

Il faut dans un premier temps donner un nom à cette zone et une description – Le nom de la zone est obligatoire, pas sa description.

Cliquez sur le bouton « Save & continue » pour passer à la suite de la configuration – c’est à partir de cet instant que ça devient plus intéressant mais aussi plus complexe.
Pour accéder aux paramètres du portail captif, il vous faut activer ce portail, en cochant la case à côté de « Enable captive portal » – n’oubliez pas de cliquer sur le bouton « Save » pour activer les paramètres.

Ainsi, tous les paramètres de configuration du portail captif vont s’afficher.

Dans l’ordre des options importantes et quasi obligatoires :

  • interfaces : il s’agit là de quelle interface sur laquelle le portail captif sera exploité – il faut cliquer sur l’interface correspondant à votre LAN (ici, LAN)
  • maximum concurrent connections : limite le nombre de connexion en même temps sur le portail captif ; si cette limite est dépassée, le portail captif ne sera pas accessible par les autres clients, jusqu’à temps qu’une place se libère. Laissez vide si vous ne souhaitez pas de limites
  • idle timeout : délai en minutes à laquelle les clients seront déconnectés s’ils n’ont pas eu / effectué d’activité. Laissez vide si vous ne souhaitez pas de limites
  • hard timeout : délai en minutes pour forcer la déconnexion des utilisateurs, qu’importe leur activité

Je ne me suis pas préoccupé des autres options, tout le reste est mis par défaut ou est désactivé. Vous avez plusieurs options, comme la possibilité d’ouvrir la fenêtre d’authentification via un pop-up, rediriger automatiquement les clients une fois l’authentification effectuée, ou encore déconnecter les utilisateur se partageant le même identifiant (option concurrent user logins)…

Vous avez aussi la possibilité de mettre en place un filtrage par adresses MAC – plusieurs options sont disponibles vis-à-vis de ce filtrage. Vous pourrez (par exemple) autoriser certaines adresses MAC à se connecter sans s’authentifier, ou bloquer complètement l’accès au portail captif selon telle ou telle adresse MAC.

La mise en place de quota de débits (entrants / sortants) est importante – vous vous assurerez ainsi une qualité de service (QoS) fiable. Il faut pour cette option cocher la case « Per-user bandwidth restriction » et saisir juste après les débits max autorisés, en kbits/s.

Encore un peu plus bas dans la fenêtre, vous accéderez à une rubrique « Authentification« . C’est dans cette partie qu’il faut choisir le mode d’authentification de vos clients ; dans cet exemple, je vais créer à la main les comptes utilisateurs locaux que devront utiliser mes clients.
Cliquez sur la case « Local user manager / vouchers » et n’oubliez pas de cocher la case « Allow only users/groups with « Captive portal login » privilege set« . Cette case est très importante. Si vous ne la cochez pas, le compte utilisateur que vous allez créer pourra se connecter à l’interface de votre pfSense mais pas au portail captif. Un peu plus bas dans la documentation vous saurez comment ajouter ce droit à un compte utilisateur.

En bas de cette page, vous trouverez un bouton vert « Save« , vous permettant d’enregistrer les modifications, de les prendre en compte et d’activer immédiatement le portail captif pour le LAN. Vous retournerez par la suite sur la page d’accueil du service en affichant les portails captifs disponibles et le nombre d’utilisateurs connectés dessus :

Actuellement aucun utilisateur : le compte Administrateur ne compte pas comme compte utilisateur pour le portail captif.


II. Création d’un group d’utilisateurs pour le portail captif

Maintenant que votre portail captif est opérationnel, il vous faut créer des comptes utilisateurs.
Vous remarquerez qu’avec votre PC dans le LAN et en tant qu’Administrateur vous n’avez pas été confronté à la page d’accueil du portail captif – pfSense connaît votre adresse MAC et ne vous bloque pas la connexion, puisque vous êtes connecté en tant qu’Administrateur.

Dirigez-vous dans la partie « System« , puis dans « User manager« . Vous récupérerez une liste de tous les utilisateurs de votre pfSense. Voici l’organisation qui va y être effectuée :

  • création d’un groupe « captive-portal », où y seront tous les comptes utilisateurs du portail captif.
  • attribution des droits spécifiques pour le groupe concerné
  • création des comptes utilisateurs et … tests !

Dans la page « User Manager« , cliquez sur l’option « Groups« . La liste de tous les groupes d’utilisateurs de pfSense va s’afficher – nous allons donc créer un nouveau groupe, via le bouton vert « Add« .

Deux informations cruciales sont à saisir :

  • Le nom du groupe
  • Le « Scope » (où se trouve le groupe)

Pour éviter les problèmes, je vous suggère de garder des noms simples pour vos noms de groupe, de même qu’il est préférable de ne pas mettre d’espace ni de caractères spéciaux. Dans le « Group membership« , il faut absolument que « admin » soit dans la partie « not members« . Vous ne devez pas mettre « admin » dans la case « members », sous peine que tous les utilisateurs que vous allez créer dans le groupe « captive-portal » (cf l’exemple) auront tous les droits administrateurs et donc, n’utiliseront pas le portail captif.

Lorsque les modifications sont effectuées, enregistrez-les en cliquant sur le bouton « save« . Il va falloir de nouveau modifier le groupe précédemment créé. En effet, nous devons ajouter à notre nouveau groupe les droits pour utiliser le portail captif.
Dans la rubrique « add privileges for [nom du groupe]« , sélectionnez « User – services : captive portal login« .

C’est grâce à ce droit que les comptes utilisateurs qui seront dans le groupe « captive-portal » (dans notre exemple) pourront utiliser / se connecter sur le portail captif de votre pfSense. Pour valider les changements, cliquez une nouvelle fois sur « Save« .

Une fois les modifications validées, vous verrez alors s’afficher une liste de tous les privilèges du groupe concerné. Pour cet exemple, il n’est pas nécessaire d’ajouter d’autres privilèges / droits.


III. Création d’un compte utilisateur pour le portail captif

Une fois le groupe créé, la dernière étape va être la création d’un compte utilisateur. Ce compte sera utilisé de façon individuelle et pour l’authentification sur le portail captif, exclusivement.
Retournez dans le menu « System« , puis sur « User manager« . Cliquez sur le bouton vert « Add » – vous aurez accès à tout un assistant de création de ce compte utilisateur :

Il faut impérativement mettre le login et le mot de passe de ce compte utilisateur. Libre à vous de rentrer ce que vous souhaitez.
Enfin, dans le « Group membership« , il faut que le groupe précédemment créé (« captive-portal » dans l’exemple de cet article) soit bien dans « Member of« . Faites bien attention à ce que le groupe « admins » soit bien dans la case « Not member of« .

Lorsque tout est prêt, cliquez sur le bouton « Save » – votre premier compte utilisateur est prêt à l’emploi pour le portail captif ! Nous allons dès à présent l’exploiter…


IV. Authentification, connexion et navigation.

Prenez un autre PC / VM dans le même LAN que pfSense. Comme votre pfSense est maintenant prêt à l’emploi notamment pour le portail captif, ouvrez votre navigateur web favoris et tentez d’accéder à une page web.
Vous devriez arriver sur ce genre de page :

Concrètement, pfSense a redirigé automatiquement votre flux web vers le portail captif, sur un port spécifique pour que vous puissiez vous authentifier. Vous devez alors entrer le compte utilisateur précédemment créé, login et mot de passe.
Une fois la saisie terminée, si vous ne vous êtes pas trompé, vous pourrez désormais accéder à l’internet !

Julien H

Passionné depuis toujours par l'informatique, je transforme ma passion en expertise. J'utilise quotidiennement les outils et systèmes Microsoft. Je ne délaisse pas mon côté ouvert, notamment via l'utilisation des OS Debian et Archlinux. L'infosec m'ouvre les yeux sur les enjeux actuels et futurs de l'IT.

27 commentaires

  1. Bravo Julien !
    Ton post est très bien décrit et surtout très instructif.

    J’ai une question:
    Est-ce possible d’utiliser freeradius2 livré avec pfSense dans la section
    System / User manager / Authentification servers ?

    1. Merci Jerix ! Toujours un plaisir de pouvoir aider et faire comprendre facilement 🙂
      Je n’ai pas encore exploité la partie Freeradius2, ni pour pfSense, ni pour le portail captif de pfSense – encore un tuto ajouté à ma (longue) liste !

      1. bjr julien j beaucoup des preaucupation pour confuger mon routeur pfsense. mon FAI mes donner que 10base en hafduplex.j n parviens pas a y aller en 100 base fulle duplex

        1. Hello !
          Si le FAI « bloque » la configuration en 10 base T half-duplex, alors il faut contacter le FAI et négocier avec lui pour enlever cette bride… ! Ne serait-ce pas plutôt un problème côté switch, câble réseau ou carte réseau ? Ce sont des points à contrôler aussi 😉

      2. Bonjour merci d’avoir publier cet article. Je m’interresse à la configuration d’un portail captif avec le pfsense mais je rencontre quelques difficultés au niveau de  »L’ AUTHENTIFICATION » je n’arrive pas à me connecter avec le pc virtuel bien qu’il soit dans le même LAN que le pfsense . J’ai pourtant suivi vos paramétrages . Merci de bien vouloir donner plus ample explications a cet niveau . Bonne journée !

  2. Bonsoir, cet article a été très instructif, mais j’aimerais savoir ou avoir un tutoriel sur COMMENT AVOIR UN PORTAIL D’AUTHENTIFICATION HTTPS SUR PFSENSE 2.3.3, POUR MIEUX SÉCURISER MON PORTAIL CONTRE TOUT ATTAQUE. Cdlmt

    1. Bonjour Bejoedson, merci pour le retour 🙂
      Le portail captif de pfSense ne permet pas de protéger contre les attaques de force brute (par exemeple) – il est utilisé uniquement pourn de l’authentification. La protection contre certaines attaques peut être par contre sujet à plusieurs tutoriels à créer… 😉
      Regardez du côté de SNORT ou encore Fail2Ban dans les paquets – j’ai prévu quelques articles vis-à-vis de ces utilitaires…

  3. Bonjour!
    J’ai aimé votre article et j’aimerais bien savoir s’il est possible de:
    Se connecter avec un login et un mot de passe avant d’avoir un accès à internet?
    D’avoir une vue d’ensemble sur l’utilisation du réseau, et la consommation de chacun des utilisateurs par exemple?
    Et aussi pouvoir bloquer les téléchargements?

    Merci pour votre soutien

    1. Bonjour Patï 🙂
      Cet article porte surtout sur la mise en place d’un portail captif et il est vrai qu’il y a encore tellement de fonctionnalités à découvrir… ! Tout ce dont vous faite référence sont des outils annexes, en plus du portail captif. pfSense permet justement le temps, à l’aide d’outils complémentaires.
      Pour tout ça, je vais devoir saisir de nouveaux articles 😉

  4. Salut j’ai été fasciné par les portails captif la première fois que j’en ai vu un.
    Là vous avez commencé par la configuration je voudrais savoir sur qoui est ce qu’on l’installe pfsense je voudrais avoir plus d’explication.S’il vous plait

  5. Bon article !

    Toutefois j’ai une question, quand un utilisateur se connecte à une page HTTPS celui ci n’est pas redirigé vers la page de login … Il peut ainsi naviguer en SSL tranquillement sans être obligé de se loger.
    Comment puis-je forcer le HTTPS à passer d’abord par la phase d’authentification ?

    Merci d’avance
    JP

    1. Bonjour JP, merci pour ton retour 🙂
      Concernant le HTTPS, c’est la « faille » de ce type de portail captif : il ne fait que du HTTP.
      Pour pouvoir avoir le portail captif sur HTTPS, il faut faire du « SSL Interception », ce qui implique de « voir » le contenu chiffré des utilisateurs et va donc poser des problèmes de vie privée. Je suis en train d’analyser justement le cas, pour trouver une solution « viable ». 😉

      1. Bonjour 🙂
        L’article est prévu pour le 07/09/2017 – je n’ai pas le temps de tout saisir, j’ai mis uniquement la démarche à suivre pour faire fonctionner la chose. Je reviendrai au plus tôt pour mettre plus d’explications 😉

        1. Super ! J’attends ca avec impatience 😉

          Je creuse de mon côté également et je viendrais ici si jamais mes recherches donnent quelque chose !

  6. Bonjour,
    Un fournisseur d’acces internet vient d’installer un nouveau routeur dans mon entreprise
    Comment je l’ajoute à mon portail captif existant et que les clients se connectent à ce nouveau réseau
    J’ai deja crée la zone du nouveau routeur

  7. Bonjour très bon article mais une question reste en suspens, comment faites-vous pour que le portail captif puisse traiter des flux en https ?

    Un utilisateur se connecte sur google ou facebook ou autre en https par défaut sur son navigateur après s’être connecté à la borne wifi. Mais la page continue de charger et rien ne s’affiche, pas même la page en disant que il y’a erreur de certificat, acceptez de faire une exception ou continuer (selon le nav).
    Je voudrais simplement que l’utilisateur accède à cette page d’erreur, et pas à un chargement qui n’en fini jamais, comment faire ?

    1. Bonjour, merci Robin !
      Concernant le trafic HTTPS, c’est le pb du portail captif : il ne sera pas en mesure d’afficher un message – du moins je n’ai pas encore la solution. La seule parade, c’est de naviguer au départ sur un site en HTTP uniquement, pour permettre l’affichage du portail captif et ainsi s’authentifier…
      Sinon, le trafic SSL peut être intercepté et analysé pour justement bloquer certains sites web – article à cette adresse : https://computerz.solutions/pfsense-portail-captif-proxy-transparent-ssl-squid/

  8. Bonjour,
    Merci pour le tuto.
    Petite question, lors la création d’un utilisateur pour le portail captif, est-il possible de limiter se compte à se connecter avec un maximum de 2 ou 3 équipements?
    Je voudrais par exemple fournir pour une famille un compte qui servirait par exemple pour la tablette, le mobile + l’ordinateur portable.

    Ou suis-je oublié de créer 3 comptes pour chaque équipements?
    Mais, je voudrais qu’il est un maximum d’equipement à ne pas depasser pour se compte.
    Que de questions 😉
    Merci

  9. Bon, parfait comme simulation pfsense mais nous sommes dans une situation telle que nous n’avons pas à charger l’interface de portail captif pour une authentification avant d’accéder à un site lancé.

  10. Bonjour,

    Je souhaiterais savoir si il est possible de faire un portail captif où les clients se crée un compte eux même lors de la redirection au lieu de se connecter ?
    Merci.

  11. Bonjour,
    Merci pour l’article; j aimerais savoir si avec pfsense au niveau du portail captif on peut créer des users qui on une validité d un mois(exemple après un mois le compte expire).
    Merci d’acance

  12. bonjour Monsieur j’ai bien suivie votre tutoriel, à vrai dis c’est parfait. mais j’ai un souci comment faire pour mettre un bouton déconnexion. j’arrive a faire une page de connexion et d’erreur.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Fermer
Fermer