Configuration Lighttpd pour contenir le trafic vers detectportal.firefox.com¶

Voici une configuration pour Lighttpd couplée à Pi-hole afin de prévenir tout accès à ce domaine, tout en faisant croire aux appareils que la connexion est bien établie.

Pré-requis¶

Du côté du système, nous aurons besoin d’installer ce paquet :

sudo apt install lighttpd-modules-lua

Configuration¶

Lighttpd¶

Nous utiliserons le mod magnet pour arriver Ă  nos fins.

Configurons un nouveau site web :

/etc/lighttpd/conf-available/16-detectportal.conf¶
$HTTP["host"] == "detectportal.firefox.com" {
    magnet.attract-raw-url-to = ( "/etc/lighttpd/scripts/200-success.lua" )
}
server.modules += ( "mod_magnet" )

Il va falloir activer ce nouveau site web, puis créer le dossier pour stocker le script Lua qui contiendra la logique de traitement de la requête :

sudo ln -s \
    /etc/lighttpd/conf-available/16-detectportal.conf \
    /etc/lighttpd/conf-enabled/16-detectportal.conf \
    && sudo mkdir -p /etc/lighttpd/scripts

Le script Lua en question :

/etc/lighttpd/scripts/200-success.lua¶
lighty.r.resp_body.set({'success\n'})
lighty.r.resp_header["Content-Type"] = "text/html"
return 200

Enfin, relancer Lighttpd :

sudo systemctl restart lighttpd

Pi-hole¶

  • Rendez-vous dans le menu Local DNS ‣ DNS Records ;

  • Ajouter le domaine detectportal.firefox.com avec l’adresse IP de Pi-hole (par exemple 192.168.2.12) ;

  • Cliquer sur « Add ».

Test¶

Exemple de sortie console lorsque tout est correctement en place :

$ curl -v detectportal.firefox.com¶
* Host detectportal.firefox.com:80 was resolved.
* IPv6: 2600:1901:0:38d7::
* IPv4: 192.168.2.12
*   Trying 192.168.2.12:80...
* Connected to detectportal.firefox.com (192.168.2.12) port 80
> GET / HTTP/1.1
> Host: detectportal.firefox.com
> User-Agent: curl/8.5.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: text/html
< Accept-Ranges: bytes
< Content-Length: 8
< Date: Tue, 09 Jan 2024 18:39:58 GMT
< Server: lighttpd/1.4.69
< 
success
* Connection #0 to host detectportal.firefox.com left intact

📜 Historique¶

2024-01-27

Déplacement de l’article depuis le blog.

2024-01-09

Premier jet.