U odpojeného klienta:
- propouštíme do internetu DNS (ne všichni používají naše interní, přesměrovávat DNS požadavky na naše servery nechceme, VPN přes DNS není mnoho, takže toto minimální riziko mi taky nevadí)
- veškerý provoz na portu 80/tcp přesměrováváme na náš server
- veškerý ostatní provoz vč 443, udp, icmp... blokujeme
Webserver na každý dotaz posílá jednoduchou statickou HTML stránku a nastavuje hlavičky potlačující kešování. Ve stránce je meta refresh na url s infostránkou. Tím se zajistí, že na "aktivní" stránku, která se např. dívá do databáze, zaznamenává přístup... se dostane opravdu jen web browser, který interpretuje HTML kód (nedobývá se zde různý jiný provoz nad HTTP jako by se to mohlo stávat třeba u přesměrování v hlavičkách)
Problémy nastávají kvůli stále většího rozšíření HTTPS - klient má homepage google nebo seznam, přes HTTPS, k tomu ještě stále více webů nasazuje HSTS... takže klient stejně volá, že mu nejde internet. Zachránit nás můžou jen moderní operační systémy (win10 to umí, novější androidy většinou také) které "captive portal" detekují a zobrazí hlášku. Po kliknutí na hlášku se klient už na stránku dostane (otevře to prohlížeč s nějakou http url).