pfSense : Portail Captif avec Authentification Utilisateur

Mise a jour le 27/07/2020

pfSense dispose d’un portail captif. Le portail captif force les clients d’un réseau à afficher une page Web d’authentification avant de pouvoir se connecter à Internet.

Il est utilisé dans des réseaux qui assurent un accès public tels que les espaces d’accueil, établissement scolaires …


Important : Ne pas modifier le langage de l’interface en Français avant la configuration du portail car il y a un Bug lors de la sauvegarde des modifications dans certaines versions.

En revanche, une fois la configuration terminée et validée, vous pouvez modifier la langue de l’interface en Français.


Information : Avant de continuer, consultez ce guide : pfSense : Installation et Configuration


Configuration du Portail Captif

Sélectionner : Services – Captive Portal

Cliquez sur « + Add »

Renseigner le Nom du Portail Captif et sa description. Pour l’exemple : « PORTAIL »

  • Activer « Enable Captive Portal« 
  • Sélectionner l’interface « LAN« 
  • Maximum concurrent connections : 1 (Limite le nombre de connexions simultanées d’un même utilisateur)
  • Idle timeout (Minutes) : Choisir entre 1 a 5 (Les clients seront déconnectés après cette période d’inactivité)

  • Activer « Enable logout popup window » (une fenêtre popup permet aux clients de se déconnecter)
  • Définir « Pre-authentication Redirect URL » (URL HTTP de redirection par défaut. Les visiteurs ne seront redirigés vers cette URL après authentification que si le portail captif ne sait pas où les rediriger)
  • Définir « After authentication Redirection URL » (URL HTTP de redirection forcée. Les clients seront redirigés vers cette URL au lieu de celle à laquelle ils ont initialement tenté d’accéder après s’être authentifiés)
  • Activer « Disable Concurrent user logins » (seule la connexion la plus récente par nom d’utilisateur sera active)
  • Activer « Disable MAC filtering » (nécessaire lorsque l’adresse MAC du client ne peut pas être déterminée)

Note : URL HTTP > « http://….. » devant le domaine : « https://www.pc2s.fr » – La redirection HTTPS vers HTTP ne peut pas fonctionner car il faut un certificat valide pour que la redirection se fasse sans problème.

  • Sélectionner « Use an Authentication backend« 
  • Sélectionner « Local Database » pour « Authentication Server »
  • Attention : Ne pas sélectionner « Local Database » pour « Secondary Authentication Server »
  • Activer « Local Authentication Privileges » (Autoriser uniquement les utilisateurs avec les droits de « Connexion au portail captif »)

Puis cliquez « Save »


Résultat


Configuration du Groupe et des Utilisateurs pour la délégation du Portail Captif

Création d’un groupe et utilisateur qui aura pour fonction de créer des Utilisateurs autorisés a se connecter au Portail Captif. Ce groupe et utilisateurs associés auront seulement le droit de créer des Utilisateurs du Portail Captif.

Sélectionner : System – User Manager

Onglet « Groups » , cliquez sur « + Add »

Renseigner le Nom du Groupe « Agents » et sa description « Delegation Creation Utilisateurs Portail ». Cliquez « Save »

Dans le menu « Actions », modifier le groupe créé en cliquant sur le stylo

Cliquez sur « + Add » rubrique « Assigned Privileges« .

  • Sélectionnez dans la liste « WebCfg – System: User Manager » (Accès à la page de gestion des utilisateurs « User Manager »)

Puis cliquez sur « Save »

  • Revenir a la rubrique « Assigned Privileges » en cliquant sur « + Add« 
  • Sélectionnez dans la liste « WebCfg – Status: Captive Portal » (Voir le Status des utilisateurs connectés »)

Puis cliquez sur « Save »

Vérifier les droits, puis cliquez sur « Save »


Onglet « Users« , cliquez sur « + Add »

  • Entrer un Nom d’Utilisateur « agent », son mot de passe et sa description (Agent autorisé a créer des utilisateurs du Portail Captif).
  • Sélectionner dans « Group membership » le groupe « Agents » précédemment créé. Cliquez sur « Move to Member of list » puis « Save« 


L’utilisateur « Agent » est autorisé a créer des utilisateurs pour la connexion et l’utilisation du Portail Captif


Configuration du Groupe et des Utilisateurs autorisés a se connecter au Portail Captif

Ce groupe et utilisateurs associés auront seulement le droit d’utiliser le Portail Captif.

Onglet « Groups » , cliquez sur « + Add »

Renseigner le Nom du Groupe « Portail » et sa description « Utilisateurs du Portail ». Cliquez « Save »

Dans le menu « Actions », modifier le groupe créé en cliquant sur le stylo

Cliquez sur « + Add » rubrique « Assigned Privileges« .

Sélectionnez dans la liste « User – Services: Captive Portal login » (Autorisé seulement a se connecter au Portail Captif)

Puis cliquez sur « Save »

Vérifier les droits, puis cliquez sur « Save »


Onglet « Users« , cliquez sur « + Add »

  • Entrer un Nom d’Utilisateur « test », son mot de passe et sa description « Un Utilisateur du Portail ».
  • Sélectionner dans « Group membership » le groupe « Portail » précédemment créé. Cliquez sur « Move to Member of list » puis « Save« 


L’utilisateur « test » est autorisé a se connecter au Portail Captif


Connexion avec le Compte « agent »

Cet utilisateur a seulement le droit de créer des Utilisateurs du Portail Captif par délégation et de voir le Statut des utilisateurs connectés.

Tableau de bord restreint. Seulement les fonctions de création d’utilisateur et de Statut du Portail Captif sont disponibles.

Le « Statut du Portail Captif » permet de voir les utilisateurs connectés et de les déconnecter si besoin …

Exemple de création d’un utilisateur du Portail Captif

Résultat


Redémarrer pfSense : Diagnostics – Reboot


Interception du Portail Captif sur un poste client du réseau local LAN

Lancez votre navigateur internet et tapez une adresse valide en HTTP et non HTTPS. Exemple : http://neverssl.com

La redirection HTTPS vers HTTP ne peut pas fonctionner. Il faut un certificat valide pour que la redirection se fasse sans problème.

Exemple de lien d’accès au portail : http://192.168.2.1:8002/index.php?zone=portail  (zone=portail : car notre portail captif se nomme « PORTAIL »)


Personnalisation du Logo et de la traduction en Français des fenêtres d'affichage

Personnalisation du Logo

Sélectionner « Services , « Captive Portal » , Cliquer sur le « Stylo » pour modifier la configuration du portail

Rubrique « Captive Portal Login Page » : Activer « Enable Custom Logo Image » puis parcourir pour sélectionner votre image (Logo)


Personnalisation de la traduction en Français des fenêtres d’affichage

Sélectionner « Diagnostics » « Edit File« 

Tapez : /usr/local/captiveportal puis « Browse » puis cliquez sur « index.php »

Rechercher (Ctrl + F) « You are connected » – Remplacer par : « Vous êtes connecté »

Rechercher (Ctrl + F) « Disconnecting… » et « You have been disconnected » – Remplacer par « Déconnexion… » et « Vous êtes déconnecté »

Rechercher (Ctrl + F) « Invalid credentials specified » – Remplacer par « Les informations saisies sont invalides » (Attention il y a 2 lignes a modifier)

Cliquer sur « Save » pour enregistrer les modifications

Tapez : /etc/inc puis « Browse » puis cliquez sur « captiveportal.inc »

Rechercher (Ctrl + F) « Captive Portal login Page » – Remplacer par : « Portail Captif PC2S »

Rechercher (Ctrl + F) « Login » et « Made with … by … Netgate » – Remplacer par « Connexion » et « Connectez vous avec votre compte PC2S »

Rechercher (Ctrl + F) « User » et « Password » – Remplacer par « Utilisateur » et « Mot de Passe »

Rechercher (Ctrl + F) « Logout » et « Click the button below to disconnect » – Remplacer par « Déconnexion » et « Cliquez sur le bouton ci-dessous pour vous déconnecter »

Cliquer sur « Save » pour enregistrer les modifications


Redémarrer pfSense : Diagnostics – Reboot


Résultats


Si le package Squid est installé : pfSense : Proxy Transparent Filtrage Web URL Squid SquidGuard

  • Sélectionner : Services – Squid Proxy Server
  • Onglet « Authentication » – Sélectionner la méthode d’authentification « Captive Portal« 

Note : Si l’accès WEB est impossible : Laisser la méthode d’authentification sur « None »

Si le package LightSquid est installé – Rapport des logs : Traces des URL visitées par l’utilisateur « bubu »




A suivre : pfSense : Portail Captif – Adresses MAC de Confiance