Le portail captif est un moyen fiable qui permet de bloquer l’accès à internet aux utilisateurs jusqu’à ce qu’ils se soit identifié. La configuration du portail captif permet à l’administrateur réseau de contrôler la vérification et l’authentification, l’affectation aux interfaces, les sessions client et la personnalisation des pages Web.

En termes simples, l’authentification de portail captif est une méthode dans laquelle une page Web est présentée aux utilisateurs invités lorsqu’ils tentent d’accéder à Internet. La page Web peut également inviter les utilisateurs externes à s’enregistrer ou à accepter la politique et les conditions d’utilisation.

Dans cet article, nous verrons comment y arriver mais avant d’obtenir ce résultat, il faut passer par plusieurs modifications de fichier de configuration tel que le DNS, le Hostapd, le Dnsmasq et enfin des configurations sur le serveur web qui hébergera la page.

NB : L’ensemble des commandes exécuté tout au long de l’article nécessite d’avoir des privilèges super-utilisateur (root).

Configuration des paramètres de base


Connectez d’abord votre machine Ubuntu à votre routeur via Ethernet (cela s’affichera généralement comme l’interface Eth0 de votre machine.) Connectez maintenant le wifi de votre machine à votre point d’accès (cela s’affichera généralement comme l’interface Wlan0).

Allez maintenant sur votre page de configuration wifi (utilisez les identifiants par défaut entre autre nom d’utilisateur : admin, mot de passe : admin si vous ne les avez pas modifiés) et désactivez le serveur DHCP (après cela, personne ne pourra se connecter à votre wifi). Avant d’aller plus loin, exécutez ces commandes afin de ne rencontrer aucun type d’erreur en suivant cet article.

  • apt-get update
  • apt-get install hostapd dnsmasq net-tools –y

Configuration et paramétrage du fichier hostapd.conf

WiFi hostapd AP une application pour créer des points d'accès Wifi sous  Linux | Accro à Linux

Hostapd est un logiciel d’espace utilisateur permettant à une carte d’interface réseau d’agir comme un point d’accès et un serveur d’authentification. Pourquoi ? parce que le portail captif ne sera disponible que sur un point d’accès précis qui en l’occurrence sera celui de notre système Ubuntu. Il convient donc d’ouvrir le fichier de configuration hostapd.conf situé dans le répertoire root et vérifié son contenu. Normalement, il devrait afficher les informations ci-dessous :

  • interface=wlan0 ( votre nom d’interface souhaité)
  • ssid=Captive Portal ( votre nom de point d’accès souhaité )
  • hw_mode=g (host Wireless mode représente le mode sous lequel se trouve la carte réseau)
  • channel=6        (représente le canal d’émission de ce point d’accès)
  • macaddr_acl=0
  • auth_algs=1 ignore_broadcast_ssid=0

Avant chaque utilisation, assurez-vous de mettre à jour ces paramètres chaque fois que vous le configurez (en particulier le canal en anglais Channel qui est celui sur lequel le réseau existe).

Configuration et paramétrage du dnsmasq

Dnsmasq est un serveur DNS simple, léger, facile à utiliser et à gérer avec prise en charge des scripts Lua, IPv6, DNSSEC, démarrage réseau pour PXE, BOOTP et TFTP. Il a été conçu pour fournir des services DNS et éventuellement DHCP/TFTP pour les environnements réseau de petite à moyenne taille. 

Lorsqu’il reçoit des requêtes DNS, il y répondra à partir de ses données locales ou les transmettra à un autre serveur DNS récursif, qui peut être en mode écoute ou tout autre serveur DNS. Dans notre cas, c’est lui qui permettra d’afficher le portail captif à tout utilisateur non authentifié qui tente d’aller sur un autre site.

Pour le configurer, assurez-vous que votre fichier ‘dnsmasq.conf’ ressemble à ceci :

  • interface=wlan0 ( votre nom d’interface souhaité)
  • dhcp-range=10.0.0.10,10.0.0.250,255.255.255.0,12h ( 12h ici est la durée de bail par défaut, 10.0.0.10 est la première adresse de l’intervalle que nous avons défini et 10.0.0.250 est la dernière adresse qui peut être alloué. L’avant dernière valeur est le masque de sous-réseau)
  • dhcp-option=3,10.0.0.1 ( 3 -> code pour la passerelle par défaut)
  • dhcp-option=6,10.0.0.1 ( 6 -> code for DNS server )
  • server=8.8.8.8
  • log-queries
  • listen-address=127.0.0.1

Maintenant que nous sommes prêts à exécuter notre fichier hostapd pour lancer le serveur qui jouera le rôle du DNS, il sera problématique si nous exécutons directement le fichier parce que le gestionnaire de réseau essaiera d’interférer avec notre processus. Nous devons donc d’abord nous débarrasser de ce problème en arrêtant le processus en cours. Nous allons donc continuer et le tuer en utilisant la commande :

  • killall network-manager

Libérer des contraintes du gestionnaire de réseau, on peut exécuter la commande suivante :

  • hostapd hostapd.conf

Maintenant, nous allons attribuer une adresse IP à notre interface réseau qui sera le point d’accès en exécutant les commandes suivantes :

  • ifconfig wlan0 adresse masque_de_sous_réseau
  • dnsmasq -C dnsmasq.conf –d

Configuration du portail captif

Memoire Online - Implémentation d'une infrastructure sécurisée d'accès  internet: portail captif - Patrice Essomba

Avant de plonger dans la configuration de votre portail captif, vous devez créer une page Web pour votre portail captif, vous pouvez utiliser n’importe quel langage de votre choix comme HTML, CSS, JAVA, JS, PHP pour créer votre page Web. À défaut, vous pouvez obtenir des modèles en ligne et les modifier pour avoir votre page de portail captif selon vos besoins.


La dernière étape consiste à configurer le serveur web pour qu’il héberge la page web crée précédemment. Les versions les plus récentes d’Ubuntu dispose du serveur Apache2 et c’est donc celui-là que nous allons utiliser. Il suffit de créer un répertoire qui contiendra les web de notre portail captif au sein de l’emplacement où sont gardés les sites web locaux hébergés par Apache (/var/www/html/) ; le nôtre sera nommé ‘portail’.

Enfin, il faut créer un fichier de configuration pour le portail captif qui devrait comporter les éléments identiques à ceux-ci-dessous mais bien sûr chacun de ces éléments dépend de votre environnement et sont changeables.

  • <VirtualHost *:80>
  • ServerAdmin webmaster@localhost
  • ServerName go.microsoft.com
  • ServerAlias microsoft.com
  • DocumentRoot /var/www/html/portail
  • RedirectMatch 302 /redirect index.html
  • RewriteRule /redirect index.html [R=302,L]
  • ErrorLog ${APACHE_LOG_DIR}/ portail_error.log
  • CustomLog ${APACHE_LOG_DIR}/portail_access.log combined
  • </VirtualHost>

Au sein du contenu visible ci-dessus, les informations du serveur dépendent de votre configuration et vos choix. Vous pouvez décider par exemple de changer le nom du serveur et son alias ; c’est-à-dire changer ‘go.microsoft.com’ par ‘www.testcaptif.com’.

Les configurations sont terminées et vous avez sans doute hâte d’ouvrir votre navigateur pour voir ça, mais il reste une dernière petite chose à faire. Il faut entre autre activer le module de réécriture d’Apache et redémarrer le serveur pour qu’il prenne en compte les modifications effectuées.

  • a2enmod rewrite
  • systemctl restart apache2

Vous pouvez désormais tester vos configuration en ouvrant votre navigateur et entrant n’importe quelle adresse, vous serez redirigé vers votre site. Dans notre cas ce sera go.microsoft.com, mais au lieu de nous retrouver sur le site de Microsoft, nous serons face au portail captif.


Pour ceux qui se demande comment installer Ubuntu sur Windows sans télécharger d’hyperviseur, visiter:

Laisser un commentaire

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

cinq × un =