Portail Captif pfSense avec authentification RADIUS

Hello, nous allons voir dans cet article comment mettre en place un portail captif sous pfSense avec un serveur d’authentification RADIUS (Remote Authentication in Dial-In User Service) sous Windows Server 2016.

Un portail captif permet de mettre en place un point d’accès Wifi (ou câblé) pour les utilisateurs afin qu’ils puissent se connecter sur internet avec leur smartphone, tablette…etc. La dernière version de pfSense permet d’activer le portail captif sur plusieurs interfaces réseau.

Dés qu’un utilisateur tente de se connecter à ce réseau, une page de connexion (personnalisable) s’affiche l’invitant à s’authentifier avec son compte Active Directory. Une fois connecté, il est possible de rediriger l’utilisateur vers n’importe quelle page Web (Google, site public de l’entreprise, intranet…etc.).

Ce qu’il vous faut :Machine virtuelle : machine-virtuelle-pixelabs/

Firewall pfSense : Portail Captif
Windows Server 2016 : Contrôleur de domaine
Windows 10/8/7 : Utilisateur

VM pfSense (2.4.5-RELEASE-p1)
VM Windows Server (2016)
VM Windows 10 (20H2)

Documentation (EN) :

Schéma portail Captif

Voici le schéma et la configuration réseau du firewall pfSense :

pfSense Captive Portal Schéma

Interface WANInterface LANInterface WIFI
@IP : 192.168.1.73/24
GW : 192.168.1.254
DNS : 192.168.1.254
@IP : 172.16.1.254@IP : 192.168.2.254

Configuration Interface pfSense

Pour la configuration réseau des 3 interfaces, voir ici : installation-configuration-pfsense-virtualbox/

La borne Wifi est branchée sur l’interface WIFI du routeur (firewall) pfSense. Pour que les utilisateurs puissent se connecter sur internet, il faut que le réseau WIFI soit joignable depuis le réseau LAN. Il faut donc mettre en place des règles firewall pour autoriser la connexion internet.

Mode Réseau sous VirtualBox

Configuration des interfaces pour chaque VM : Configuration > Réseau

AdaptateurFirewall pfSenseWindows Server 2016 (Server Radius)Windows 10 (VM de test)
Adaptateur 1Pour l’interface WAN
Mode : Accès par pont (Bridge)
Nom : Realtek PCIe (…)
Pour l’interface LAN
Mode : Réseau Interne
Nom : LAN-1
Pour l’interface WIFI
Mode : Réseau Interne
Nom : LAN-2
Adaptateur 2Pour l’interface LAN
Mode : Réseau Interne
Nom : LAN-1
  
Adaptateur 3Pour l’interface WIFI
Mode : Réseau Interne
Nom : LAN-2
  

En détail :

  • Firewall pfSense possède 3 interfaces réseau : WAN, LAN, WIFI
    • WAN : pour avoir une connexion internet sous pfSense (depuis votre machine hôte)
    • LAN : le réseau LAN sécurisé de pfSense
    • WIFI : l’interface que nous allons utiliser pour le service portail captif

Adapter 1 | pour l’interface WAN Carte1 Interface WAN

Adapter 2 | pour l’interface LANCarte 2 Interface LAN

Adapter 3 | pour l’interface WIFICarte 3 Interface WIFI


  • Windows Server 2016 possède une seule interface : LAN
    • LAN : doit être connectée (branchée) sur le réseau LAN de pfSense

Adapter 1 | pour l’interface LAN-1 | LAN-1 = pfSense LANCarte 1 Interface LAN Windows Server


  • Windows 10 possède une seule interface : WIFI
    • WIFI : doit être connectée (branchée) sur le réseau WIFI de pfSense afin de tester le portail captif.

Adapter 1 | pour l’interface LAN-2 | LAN-2 = pfSense WIFICarte 1 Interface LAN Windows 10

Configuration Windows Server 2016

Vous devez installer et configurer Windows Serveur 2016. Voir l’article suivant : windows-server-2016/

  • Les rôles suivant sont déjà installés (sans configuration particulière)
    • Rôle Active Directory : domaine : pixelabs.lan
    • Rôle DNS

Remarque : le pare-feu Windows est désactivé.

Allez dans le gestionnaire de serveur et cliquez sur  Outils > Utilisateurs et ordinateurs Active Directory

  • Cliquez sur votre domaine : pixelabs.lan
    • Allez dans Users
    • Effectuer un clic droit Nouveau > Groupe
    • Donner un nom à votre groupe

Création de Groupe AD

  • Pour ajouter une description à votre groupe, effectuer un double clic dessus.
    • Description : Utilisateurs autorisés à se connecter au point d’accès WiFi

Nous allons en profiter pour créer un utilisateur dans /Users et l’affecter à ce groupe de sécurité.

Faisons cette opération rapidement avec PowerShell. Voici le script à ouvrir avec Windows PowerShell ISE :

$NewUser = Read-Host "Nom de session"
$PrincipalName = Read-Host "Nom de session principal"
$FirstName = Read-Host "votre nom"
$LastName = Read-Host "votre prénom"
$NewName = "$FirstName $LastName"
$Path = "CN=Users,DC=PIXELABS,DC=LAN"

New-ADUser -SamAccountName $NewUser -UserPrincipalName $PrincipalName -Name $NewName -GivenName $FirstName -Surname $LastName -Path $Path -AccountPassword (Read-Host "Password" -AsSecureString) -PasswordNeverExpires $true -Enabled $true

Modifier la ligne selon votre configuration : $Path = "CN=Users,DC=PIXELABS,DC=LAN"

Ajouter Utilisateur via PowerShell

Allez dans le gestionnaire de serveur et cliquez sur  Outils > Utilisateurs et ordinateurs Active Directory

  • Effectuer un clic-droit sur l’utilisateur Pixel > Ajouter à un groupe…
    • Tapez le groupe que nous avons crée plus haut : CaptivePortal
    • Cliquez sur Vérifier les noms
    • Cliquez sur OK

Installation Rôle Serveur RADIUS

Nous allons maintenant installer le rôle NPS pour Network Policy Server = Services de stratégie et d’accès réseau.

  • Ouvrir le gestionnaire de serveur et cliquez sur  Gérer > Ajout des rôles et fonctionnalités
    • Cliquez sur suivant x3
    • Cochez le case : Services de stratégie et d’accès réseau
    • Une fenêtre apparaît, cliquez sur ajoutés les fonctionnalités

Install NPS Server 2016

  • Cliquez sur suivant x3
  • Cliquez sur Installer

Configuration Rôle Serveur RADIUS

Une fois l’installation du rôle terminé, lancez la console d’administration du serveur NPS.

  • Ouvrir le gestionnaire de serveur et aller dans le menu Outil > Serveur NPS (Network Policy Server)
    • Effectuer un clic-droit sur NPS (Local)
    • Cliquez sur : Inscrire un serveur dans Active Directory

Register NPS Server

  • Confirmer en cliquant sur OK x2

Nous allons commencer par mettre en place un nouveau client RADIUS.

  • Allez dans Client et serveurs RADIUS (sous NPS (Local))
    • Effectuer un clic-droit sur Client RADIUS > Nouveau
    • Nom convivial : CaptivePortal
    • Adresse IP : 172.16.1.254 (Adresse IP de l’interface LAN-1 de pfSense)

Ajouter un Client RADIUS

  • Ajouter un secret partagé (à retenir)

Remarque : j’ai mis un mot de passe avec des caractères spéciaux, il n’a pas du tout aimé, l’authentification ne fonctionne pas.
Lors des tests, j’ai eu l’erreur : Error : could not connect to authentication server pfsense

A vérifier ! En attendant, mettez uniquement des lettres et des chiffres.

  • Cliquez sur OK

Nous allons maintenant donner l’autorisation aux utilisateurs. Dans notre cas, il faut donc ajouter le groupe de sécurité CaptivePortal et tous les utilisateurs appartenant à ce groupe auront l’autorisation.

  • Allez dans Stratégies
    • Effectuer un clic-droit sur Stratégies réseau > Nouveau
    • Nom de la stratégie : CaptivePortal
    • Tous les paramètres peuvent être modifier une fois terminé.

Add New Network Policy

  • Cliquez sur suivant
  • Cliquez sur Ajouter…
  • Sélectionnez Groupes d’utilisateur et cliquez sur Ajouter…
    • Cliquez sur Ajouter des groupes…
    • Tapez le nom de votre groupe : CaptivePortal et cliquez sur Vérifier les noms

Add User Group Radius Server

  • Cliquez sur Ok
  • Cliquez ensuite sur Suivant
  • Laissez par défaut : Accès accordé et cliquez sur Suivant 
  • Cochez les deux cases en plus comme l’image ci-dessous :

Radius Authentification Method

  • Appliquer les paramètre et si une fenêtre s’affiche, cliquez sur NON
  • Laissez tout le reste par défaut et cliquez sur suivant jusqu’à la fin.
  • Cliquez sur Terminer.
  • Effectuer un double clic sur le nom de la stratégie qu’on vient de créer (CaptivePortal) pour modifier un paramètre que j’ai oublié !
    • Allez dans l’onglet Paramètres
    • Allez dans Chiffrement 
    • Décochez la case : Aucun chiffrement

Edit NPS Server Policy

 

  • Cliquez sur OK
  • Désactiver les deux stratégies au dessous : clic-droit > désactiver :

Stratégie Portail Captif

Passons à la configuration de pfSense.

Configuration pfSense 2.4.5

Voici les tâches que nous allons réaliser sous pfSense :

  • Autoriser l’interface WIFI à communiquer avec les autres l’interfaces
  • Activer le DHCP sur l’interface WIFI
  • Activer le DNS Resolver sur toutes les interfaces
  • Activer l’authentification RADIUS
  • Activer le service portail Captif
  • Tester le portail Captif

Règle Firewall Interface WIFI

Pour le moment, nous allons tout autoriser comme sur l’interface LAN. Il faut donc copier la règle IPv4 qui autorise le LAN à joindre toutes les autres interfaces et l’appliquer à l’interface WIFI.

  • Allez dans le menu : Pare-feu > Règles > LAN
  • Cliquez sur l’icône copier (icône avec deux carrés superposés) :
  • Ignorer la règle concernant IPv6 (pas besoin).
    • Interface : WIFI
    • Source : WIFI net
    • Destination : tout
    • Description : Default allow WIFI to any rule

Allow pfSense Traffic

  • Enregistrer et Appliquer les modifications

Règle Firewall pfSense

Activer le serveur DHCP

Pour que les utilisateurs puissent se connecter sur internet, il faut leur attribuer une adresse IP. Nous allons donc activer le serveur DHCP sur l’interface WIFI.

Allez dans le menu Services > Serveur DHCP > WIFI

  •  Activer le serveur DHCP sur l’interface WIFI
    • Sous-réseau : 192.168.2.0
    • Masque de sous-réseau : 255.255.255.0
    • Plage disponible : 192.168.2.1 – 192.168.2.254
  • Juste au dessous de ces informations, ajouter une plage de votre choix. Par exemple :
    • de : 192.168.2.50
    • A : 192.168.2.100

Serveur DHCP pfSense

  • L’adresse IP de l’interface WIFI sera utilisée comme passerelle et le DNS. Laissez le reste par défaut.
  • Tout en bas, cliquez sur Enregistrer 

Activer le DNS Resolver

Allez dans le menu Services > Résolveur DNS > Paramètres généraux

  •  Activer les résolutions DNS
    • Interface réseau : Tout
    • Interfaces réseau sortantes : Tout
    •  Activer le support DNSSEC
    •  Enregistrer les bails DHCP dans le résolveur DNS
    •  Enregistrez les mappages statiques DHCP dans le Résolveur DNS
  • Tout le reste est par défaut.
  • Cliquez sur Enregistrer et Appliquer les paramètres

Configuration Serveur d’Auth RADIUS

Allez dans le menu : Système > Gestionnaire d’usagers > Serveurs d’authentification

  • Cliquez sur Ajouter
    • Nom descriptif : CaptivePortal
    • Type : RADIUS
    • Protocole : MS-CHAPv2
    • Nom d’hôte ou adresse IP : 172.16.1.5 (Adresse du serveur RADIUS, c’est-à-dire Windows Server 2016)
    • Secret partagé : ce que vous avez mis lors de l’activation du client RADIUS sous Windows
    • Service offerts : Authentification et comptabilité
    • Port d’authentification : 1812
    • Port de comptabilité : 1813
    • Délai d’expiration de l’authentification : par défaut c’est 5 secondes
    • Attribut IP RADIUS NAS : LAN – 172.16.1.254

Authentification RADIUS pfSense

  • Enregistrer

Configuration Portail Captif

Allez dans le menu Services > Portail Captif > Ajouter

  • Nom de la zone : CaptivePortal
  • Description de zone : CaptivePortal
  • Enregistrer et poursuivre

Prenez en compte le message au dessous :

N’oubliez pas d’activer le serveur DHCP sur la même interface que le portail captif! Assurez-vous que la valeur par défaut/maximale du bail DHCP est plus grande que celle du hard timeout référencée dans cette page. Assurez-vous également que les Forwarders et Resolvers DNS sont actifs pour que les requêtes émises depuis des clients non authentifiés soient honorées.

  •  Activer le Portail Captif
    • Interfaces : WIFI
    •  Activer la fenêtre de dialogue de fermeture de session
    • Après authentification Redirection URL : https://pixelabs.fr ou https://google.fr

Configuration Interface Portail Captif

Un peu plus bas :

Configuration Portail Captif pfSense

  • Allez dans la partie Authentification un peu plus bas
    • Méthode d’authentification : Use an Authentication backend
    • Serveur d’authentification : CaptivePortal
    •  Réauthentifier les utilisateurs connectés chaque minute

Configuration Captive Portal pfSense

  • Allez dans la partie Comptabilité
    •  Send RADIUS accounting packets.
    • Accounting Server : CaptivePortal
    • Send accounting updates : Aucune mise à jour

Comptabilité Portail Captif pfSense

  • Enregistrer

Test Portail Captif

Voici la configuration de ma VM de test Windows 10 (considérée comme un smartphone/tablette ou un PC portable).

  • Elle est connectée sur l’interface du portail captif (WIFI = LAN-2)
  • Configuration réseau automatique via le DHCP pfSense.
  • Elle ne fait pas partie du domaine AD

Remarque : le pare-feu est désactivé sur Windows 10.

Lancer une invite de commande et lancez ces deux commandes :

C:\Users\PC-PIXEL#> ipconfig /release
C:\Users\PC-PIXEL#> ipconfig /renew

Le service DHCP doit distribuer une adresse IP à votre machine.

Lancez votre navigateur internet et tapez une adresse en HTTP et non HTTPS. http://google.fr

La redirection HTTPS vers HTTP ne peut pas fonctionner. Nous n’avons pas sécurisé la page de connexion du portail captif, il faut un certificat valide pour que la redirection se fasse sans problème.

Portail Captif Redirection Page

Personnaliser la page Login

La page de connexion de votre portail captif est totalement personnalisable. Depuis l’interface pfSense, dans les paramètres du portail captif (Services > Portail Captif), vous pouvez :

  • Changer le design de la page HTML
  • Ajouter un fond (background)
  • Changer de logo
  • Ajouter les conditions d’utilisation

pfSense Captive Portal Custom

Si vous souhaitez modifier le texte « Made with love by Netgate », connectez-vous en FTP sur votre serveur pfSense depuis votre machine physique (même identifiant que l’interface web et la connexion se fait sur le WAN) et modifier le fichier suivant : (ligne 167 et 169)

Remarque : ne pas oublier d’activer le SSH depuis le menu pfSense pour pouvoir se connecter en FTP.

Personnaliser Portail Captif pfSense

Si vous souhaitez changer le nom qui apparaît dans l’onglet du navigateur et si votre logo est flou. Dans le même fichier, modifier les éléments suivant :

pfSense Portail Captif Logo Size

Une fois le texte modifié, allez dans les options de votre portail captif et activer l’option suivante :

  •  Enable to use a custom captive portal login page
  • Enregistrer
  • Actualiser la page web de connexion

Pour sécuriser votre portail captif pfSense au maximum :

  • Activer le protocole HTTPS pour la page de connexion et ajouter un certificat valide.
  • Bloquer tout le trafic sur l’interface WIFI et autoriser uniquement le nécessaire :
    • Port HTTP/80 et HTTPS/443
    • Ports RADIUS : 1812, 1813
    • Port AD/389
    • Port DNS/53

Je vous laisse explorer les paramètres, il est possible de limiter le débit, de bloquer les clients par adresse MAC, et bien d’autres…etc.

C’est terminé les amis. N’hésitez pas si vous avez des questions. Amusez-vous bien.

Bonne journée et à très bientôt.

 
Besoin d’aide ? des questions ?

Venez sur le forum
logo Forum Pixelabs
***********
La rédaction de cette documentation demande beaucoup de temps, de motivation, mais surtout beaucoup de café 🙂

Vous aimez pixelabs ?

Offrez moi un petit café en cliquant sur la tasse ci-dessous.
pixelans_donation
Merci !

5 2 votes
Évaluation de l'article
S’abonner
Notifier de
40 Commentaires
Inline Feedbacks
View all comments

Mise à jour de l’article.

Salut j’essaie de me servir de ton tuto pour travailler !!! Mais tu ne montre pas comment installer et configurer le DNS et AD. Donc je suis bloqué depuis le début !! Bien vouloir m’aider !!! Et merci pour ton tuto

Bonjour,
Installation Windows Server 2016 : https://pixelabs.fr/machine-virtuelle-windows-server-2016/
Installation Serveur 2016 : https://pixelabs.fr/installation-et-configuration-dun-serveur-dns/

Peu importe la version de Windows, c’est toujours la même chose.

Salut pouvez-vous m’aider svp j’arrive pas à avoir accès au portail captif après configuration des différents réseaux je créer une vm kali Linux a qui j’ai attribué le 3reseau le WIFi mais j’arrive pas accédé à la page quand je tape l’adresse du réseau LAN

Salut, il faut poster la configuration réseau de chaque VM et les interfaces pour que je puisse vérifier !

Bonjour
je ne n’arrive pas a faire fonctionner mon pfsense en suivant ton document. Pouvez vous me venir en aide

Salut,
C’est quoi le problème ?
J’ai répondu à ton commentaire sur le forum.

40
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x