Indice   FAQ  
Iscriviti  Login
Indice Networking & Software di geolocalizzazione Wireless - [802.11]

Piccola rete hotspot vs CaptiveNetworkSupport

Come progettare e costruire un'antenna, come creare un link punto-punto con semplici access point, come rinforzare la sicurezza &..

Piccola rete hotspot vs CaptiveNetworkSupport

Messaggioda giolad83 » dom 25 giu 2023, 7:50

Buon giorno a tutti,
questo post non vuole essere solo una richesta d'aiuto, ma anche un aiuto per altri utenti che si trovano nel mio stesso problema.

Lo scenario è quello di un chiosco nel sud italia, di fronte ad una bellissima spiaggia,
molto frequentata, senza possibilità di copertura nè telefonica ( niente telefono, fibra, adsl, etc) e
senza copertura cellulare ( nemmeno gsm o sos ).
Data la necessità di internet per le attività, il gestore del chiosco
ha chiuso un contratto con una piccola ditta locale che attraverso ponti radio gli garantisce
( a prezzi elevati ) una connessione internet.
Il proprietario del chiosco ha avuto l' idea di realizzare un hotspot legato alla consumazione di
pranzi o cene presso il suo locale, con un sistema che più consumi più
Giga di traffico internet hai.

Si è deciso di non fare grossi investimenti subito, ma di partire
con un piccolo investimento, vedere come procedeva la richiesta da parte dei consumatori e poi in futuro svilupparlo
a secondo di come funziona.

Il sistema è costituito da n. 1 hEX S, collegato via cavo al ponte radio ( WAN ) e
a n. 3 Cisco Aironet 3702i in autonomus mode, n. 1 PC Veriton N281G usato come logger.

Step 1
Conoscendo i problemi dei dispositivi Apple abbiamo impostato SSID
corto, senza spazi, numeri o caratteri speciali, rete aperta.
Sul mikrotik hex abbiamo attivato l' hotspot, radius, e User Manager
Il sistema prevede che è il gestore che registra gli utenti a sistema e gli assegna
un Profiles e li attiva.

Problemi riscontrati
Tantissimio dispositivi si agganciavano al wifi anche senza poi usare la rete,
tentativi di froza bruta su username e password dell' hotspot.
Problemi di connessione per Apple, android e windows

Step 2
Abbiamo impostato la rete con una chiave WPA2 TKIP , inserito nel
Hotspot.Walled_Garden una regola per la path /generate_204 ( dispositivi android)
Abbiamo cambiato il nome dns al Hotspot aggiungendo .lan finale ( chiosco -> chiosco.lan )

Problemi riscontrati
Nessun bruteforce alla pagina dell' hotspot, banda wifi libera e non più saturata.
Dispositivi android OK ( parte in automatico CPD ( captive portal detection ) e viene mostrata la pagina per richiede le credenzaili )
, apple e windows sempre con problemi ( la connessione alla rete wifi c'è , ma nessuna pagina web viene visualizzata ).

Step 3
Dopo avere passato una settimana a studiare i log di sistema ho visto che windows CPD tentata di accedere ai seguenti
url: /connecttest.txt, /canonical.html, *.msftncsi.com, *.msftconnecttest.com, /ncsi.txt, *.msedge.net e sè non li trova
accessibili direttamente blocca il traffico del Layer 3 , mentre il sistema ip e dns lavora correttamente.

Inseriti nel Hotspot.Walled_Garden finalmente anche le macchine windows riuscivano a connettersi!!

Android Ok, Windows OK ...Apple KO :(

Step 4
mi sono fatto prestare un ipad ed ho eseguito una serie di prove riscontrando i seguenti problemi:
Ios NON vuole la rete aperta con captive portal, non vuole TKIP , vuole solo WPA2 AES e WPA3 con poi captive portal, altrimenti la rete viene bloccata in fase di accesso al wifi.
Poi si attiva il CPD ( captive portal detection ), e quì tenta di comunicare con una serie di server attendendosi una risposta specifica.
Dopo varie prove ho inserito nel Hotspot.Walled_Garden i seguenti url /hotspot-detect.html , /success.html , /detect.html , *.apple.com, airport.us, itools.info .

Purtoppo ancora un 30% di diapositivi Apple aveva problemi ad accedere alla pagina del captive portal per autentificarsi.
Inoltre ho avuto feedback negativi da parte di persone con problemi di vista a cui il tema di default dell' hotspot creava problemi nel riconoscere la posizione dei campi da compilare con user e password

Step 5
Ho letto tutto quello che ho trovato in internet sul sistema dell' hotspot mikrotik, finchè analizzando il css presente ho trovato
la class "lite", ed è bastato cambiare con <body class="lite"> in tutti i file html per ottenere una pagina ad alto contrasto che andasse bene anche per chi ha problemi di vista.
Ho attivato i cookies MAC e impostati a 4 giorni.

Mi sono dedicato a capire come Apple ha implementato il sistema CPD, capendo alla fine che il vero problema non è il CPD,
ma la cache dns interna al dispositivo che viene aggiornata sempre più lentamente per i valori che rimangono stabili.
Provando con degli iPhone 13 di alcuni clienti ho visto che con venivano fatte richieste DNS alla rete, ma vi era tutta una serie di
connessioni a server come e6858.dscx.akamaiedge.net, captive-cidr.origin-apple.com.akadns.net, xxxxx.dsct.akamaiedge.net .
Non potendo agire sui dns, nemmeno sul device e nemmeno sul Hotspot.Walled_Garden, ho visto che quello che accomunava le richieste
era l' User-Agent che era sempre del tipo: "CaptiveNetworkSupport-407.0.1 wispr" , "CaptiveNetworkSupport/1.0 wispr", "CaptiveNetworkSupport-355.200.27 wispr",
"CaptiveNetworkSupport wispr", etc.

Ho deciso di modificare rlogin.html e login.html come segnalato in vecchi post

$(if user-agent == CaptiveNetworkSupport)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>
$(else)
.....
$(endif)

E finalmente su molti dispositivi recenti funziona!! .. ed ora una domanda:

Quale regex posso usare nell' if per matchare tutti i tipi di CaptiveNetworkSupport ?
ho provato con ^CaptiveNetworkSupport* ma non funziona ....


Grazie a tutti e susate per la lunghezza del post
Giorgio
giolad83
Mikrotik-User 10° Liv
Mikrotik-User 10° Liv
 
Messaggi: 22
Iscritto il: dom 25 giu 2023, 7:26
Uso routerOS dalla Versione: v4.x
Certificazioni Mikrotik: nessuna
Altre certificazioni: nessuna
Preferred Training Centre: nessuna


Torna a Wireless - [802.11]

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti