# Création d'un Access Point Wifi avec un portail captif

**URL:** <https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354>\
**Category:** Support Debian\
**Created:** [Mai 1, 2017, 3:53 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354 "2017-05-01T15:53:30Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Su4p](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/57b2e6/32.png) [@Su4p](https://www.debian-fr.org/u/Su4p)\
**Post date:** [Mai 1, 2017, 3:53 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/1 "2017-05-01T15:53:30Z")

</div>

Bonjour, c’est mon premier message !!

**Je vous donne un peu de contexte**

J’ai un pi zero W sur debian (raspbian). Il ne sera pas connecté à internet. L’idée derrière le captive portal n’est pas de valider une inscription pour avoir accès à internet mais donner accès à une application PHP hébergée sur le pi zero. Donc je veux que l’utilisateur final n’est accès à rien d’autre sauf mon app une fois connecté sur mon wifi. Je lance l’AP en tapant la commande `sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf`.

**Ce qui fonctionne !**

Le point d’accès fonctionne super bien. Le serveur DNS donne une IP valide à l’utilisateur connecté et au pi zero. Une fois connecté je peux accéder à mon app en tapant l’ip de mon pi zero dans le navigateur.

**Ce qui ne fonctionne pas :’(**

Je veux rediriger toutes les requêtes HTTP (typiquement [google.fr](http://google.fr)) vers l’ip de mon pi zero (192.168.0.139)

**Les fichiers de conf sur le pi zero**

/etc/dnsmasq.conf

```
interface=wlan0
bind-interfaces
dhcp-range=192.168.0.100,192.168.0.150,1h
address=/#/192.168.0.139 
#this last line should do the trick...

```

/etc/hostpapd/hostapd.conf

```
interface=wlan0
driver=nl80211
ssid=lol
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-0][DSSS_CCK-40]
macaddr_acl=0

```

/etc/network/interface

```
 source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual

allow-hotplug wlan1
iface wlan1 inet manual
       wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
```

---

<div class="post-metadata">

**Author:** ![libresurf](https://www.debian-fr.org/user_avatar/www.debian-fr.org/libresurf/32/5259_2.png) [@libresurf](https://www.debian-fr.org/u/libresurf)\
**Post date:** [Mai 1, 2017, 5:14 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/2 "2017-05-01T17:14:02Z")

</div>

Bonjour Su4p,

à mon avis, c’est au niveau de ton poste client qu’il faut jouer pour rediriger son trafic vers ton pi zero.

Peut-être en définissant sur ton poste client, le pi zero comme proxy http.

Ou peut-être plus simple, en définissant dans le fichier _/etc/network/interfaces_ de ton poste client, le pi zero comme passerelle en rajoutant :  
gateway 192.168.0.139  
après les lignes de configuration de ta carte réseau (je ne sais pas si ton poste client est en Ethernet ou en wifi).

---

<div class="post-metadata">

**Author:** ![Su4p](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/57b2e6/32.png) [@Su4p](https://www.debian-fr.org/u/Su4p)\
**Post date:** [Mai 1, 2017, 5:22 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/3 "2017-05-01T17:22:30Z")

</div>

Merci pour t’as réponse libresurf.

L’idée est de proposer un wifi ouvert avec une application destinée au grand public.  
Je cherche à reproduire ce que font starbuck ou les aéroports :  
Un wifi ouvert est disponible «&nbsp;Starcbuck hotspot&nbsp;», si l’utilisateur se connecte au réseau wifi, toutes les requêtes http sont redirigés vers un portail afin de remplir un formulaire. Une fois le formulaire rempli l’utilisateur accède à internet.

Je cherche à réaliser seulement la partie : Access point + redirection vers un portail.

L’interface que j’utilise est la wlan0 c’est d’ailleurs la seule présente, donc oui c’est du wifi

Je perds l’adresse IP 192.168.0.139 sur wlan0 lorsque je fais cela :

> [@libresurf](#):
>
> gateway 192.168.0.139

---

<div class="post-metadata">

**Author:** ![libresurf](https://www.debian-fr.org/user_avatar/www.debian-fr.org/libresurf/32/5259_2.png) [@libresurf](https://www.debian-fr.org/u/libresurf)\
**Post date:** [Mai 1, 2017, 5:38 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/4 "2017-05-01T17:38:31Z")

</div>

OK, mais dans ce cas, je ne comprends pas comment tu n’arrives pas à récupérer tout le trafic de tes postes clients.

Sur tes postes clients, est-ce que le pi zero est bien défini comme passerelle par défaut ?  
En _root_, faire :  
# route  
normalement, tu devrais obtenir quelque chose de la forme suivante :  
Table de routage IP du noyau  
Destination Passerelle Genmask Indic Metric Ref Use Iface  
default 192.168.0.139 0.0.0.0 UG 1024 0 0 wlan0  
localnet \* 255.255.255.0 U 0 0 0 wlan0

Si c’est le cas, c’est que tout le trafic de tes postes clients passent bien sur ton pi zero.

Après, peut-être as-tu besoin de redéfinir les règles **Netfilter** sur ton pi zero en utilisant les commandes _iptables_, car sur ton pi zero, les paquets passent alors dans la table **FORWARD** et ne sont donc pas interceptés par tes programmes qui n’écoutent que sur la table **INPUT**.

Il y a une manipulation à faire, mais je ne saurais pas te l’expliquer, ne l’ayant jamais mise en place par moi-même.

---

<div class="post-metadata">

**Author:** ![Su4p](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/57b2e6/32.png) [@Su4p](https://www.debian-fr.org/u/Su4p)\
**Post date:** [Mai 1, 2017, 5:47 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/5 "2017-05-01T17:47:49Z")

</div>

Sur les postes clients la passerelle se mets bien automatiquement sur 192.168.0.139. J’imagine que c’est le rôle de hostapd.  
La commande #route (sur le serveur/routeur) me renvoie :

```
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 302 0 0 wlan0

```

J’ai lu qu’il suffisait de saisir address=/#/192.168.0.139 dans dnsmasq.conf mais cela ne semble pas fonctionner, je ne sais pas pourquoi. Il y aurait aussi une méthode avec iptable. Malheureusement mes copier-coller ne semblent pas venir à bout du problème et mes connaissances admin sys sont limitées 😊

---

<div class="post-metadata">

**Author:** ![libresurf](https://www.debian-fr.org/user_avatar/www.debian-fr.org/libresurf/32/5259_2.png) [@libresurf](https://www.debian-fr.org/u/libresurf)\
**Post date:** [Mai 1, 2017, 6:43 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/6 "2017-05-01T18:43:23Z")

</div>

Ton routeur n’étant pas connecté à internet n’a pas de destination par défaut.

Du coup, comment se fait la résolution DNS ?  
Tes clients interrogent le serveur DNS de ton pi zero, mais comment ton pi zero sait à son tour résoudre les noms de domaines s’il n’est pas lui même connecté à un serveur DNS sur internet ?

En d’autres termes, comment se fait une résolution du nom de domaine de ton exemple “[google.fr](http://google.fr)” ?

Si tu as un poste client sous linux, que donne :  
$ host [google.fr](http://google.fr)

---

<div class="post-metadata">

**Author:** ![Su4p](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/57b2e6/32.png) [@Su4p](https://www.debian-fr.org/u/Su4p)\
**Post date:** [Mai 1, 2017, 6:51 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/7 "2017-05-01T18:51:59Z")

</div>

J’ai espéré peut être naïvement que ça pouvait donner 192.168.0.139 ou au moins rediriger vers… (Grâce à la fameuse ligne /#/ dans le dnsmasq.)

J’ai vu qu’il existait [https://calomel.org/dns\_spoof.html](https://calomel.org/dns_spoof.html)

Mais dans l’absolu j’aimerai plutôt une redirection.

---

<div class="post-metadata">

**Author:** ![chartpack](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/fbc32d/32.png) [@chartpack](https://www.debian-fr.org/u/chartpack)\
**Post date:** [Août 1, 2018, 8:48 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/8 "2018-08-01T20:48:01Z")

</div>

bonjour sup4p, je me lance dans le même projet que celui que tu décris, as tu au final réussi à obtenir l’effet escompté ?

---

<div class="post-metadata">

**Author:** ![jweber](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/e95f7d/32.png) [@jweber](https://www.debian-fr.org/u/jweber)\
**Post date:** [Août 2, 2018, 4:47 UTC](https://www.debian-fr.org/t/creation-dun-access-point-wifi-avec-un-portail-captif/73354/9 "2018-08-02T16:47:34Z")

</div>

des pistes ?

> [I Challenge Thee](https://wiki.debian.org/HowTo/dnsmasq)

> [https://brennanhm.ca/knowledgebase/2016/10/raspberry-pi-access-point-and-captive-portal-without-internet/#Configure\_Dnsmasq](https://brennanhm.ca/knowledgebase/2016/10/raspberry-pi-access-point-and-captive-portal-without-internet/#Configure_Dnsmasq)
