Tut's pfSense

[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 !

En voir plus

17 thoughts on “[pfSense 2.3.3] Mise en place d’un portail captif”

  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. 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 !

Laisser un commentaire

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

Close