Handleiding

Hotspot: een inlogpagina voor bezoekers

Bezoekers krijgen pas internet nadat ze zich hebben aangemeld, met een eigen account en een eigen limiet.

Een hotspot zet een inlogpagina tussen de bezoeker en internet. Wie op het netwerk komt krijgt wel een adres, maar nog geen verbinding: zijn browser wordt naar een portaal gestuurd waar hij een gebruikersnaam en wachtwoord invult. Pas daarna gaat het verkeer door.

Dat is niet altijd wat je nodig hebt. Gaat het je er alleen om dat bezoek internet heeft zonder bij je eigen spullen te kunnen, dan is een gasten-SSID met een wachtwoord eenvoudiger en betrouwbaarder; zie Voorbeeld: een gastennetwerk. Een hotspot wordt pas interessant als je per persoon wilt uitdelen en intrekken: een hotelgast die drie dagen heeft, een bezoeker die twee uur krijgt, een account dat na 2 GB stopt.

Waar het staat

In de wizard is er een rol Hotspot / gastportaal. Die zet twee VLANs klaar, 10 voor je eigen netwerk en 20 voor de hotspot op 10.5.50.1/24, met isolatie tussen de VLANs aan, en vraagt daarna vier dingen: de interface, het adres, de snelheidslimiet en de accounts.

In geavanceerd heet het onderdeel Hotspot, PPPoE-server, RADIUS. Die drie staan bij elkaar omdat ze dezelfde accountadministratie kunnen delen. Het onderdeel staat standaard uit.

De interface

De belangrijkste keuze van dit hoofdstuk. De hotspot draait op één interface en alles wat daarachter zit moet inloggen. Kies bij voorkeur een eigen gast-VLAN. Kies je je bridge of je LAN, dan krijgen ook je eigen laptop, je printer en je NAS een inlogscherm, en dat merk je pas als je al geplakt hebt.

Het adres dat je invult hoort bij die interface. Had die VLAN in het VLAN-onderdeel al een ander adres, dan waarschuwt de configurator: er komt dan een tweede adres bovenop, en dat is bijna nooit de bedoeling. Maak ze gelijk.

De rest volgt uit adres en prefix: een pool met de adressen boven dat van de router, een DHCP-server met een lease van een uur, en een DHCP-netwerk waarin de router zelf gateway en DNS is. Die DNS is geen detail: de hotspot vangt DNS-verzoeken af om de browser naar het portaal te kunnen sturen.

Het gebruikersprofiel

Alle accounts delen één profiel, hs-default. Daarin staan de limieten die voor iedereen gelden:

  • Snelheidslimiet per gebruiker, standaard 5M/20M: upload voor de schuine streep, download erna. Dit is per ingelogde gebruiker, niet voor de hotspot als geheel.
  • Gelijktijdige logins per account, standaard 1. Op 1 kan een account maar op één apparaat tegelijk. Voor een gedeeld account, bijvoorbeeld een vergaderruimte, zet je dit hoger.
  • Maximale sessieduur, standaard een dag, en de idle timeout, standaard tien minuten. Na de idle timeout wordt iemand die weg is uitgelogd, zodat zijn plek vrijkomt.

Accounts

In de tabel Gebruikers zet je de accounts. Er staat er standaard één klaar, guest met wachtwoord guest; die hoort niet zo op een apparaat terecht te komen. De knop naast het wachtwoordveld genereert er een.

De derde kolom is een limiet per account, en die leest de generator streng. Een tijd schrijf je als een getal met een letter, bijvoorbeeld 4h, 30m of 7d: dat wordt limit-uptime. Een hoeveelheid data schrijf je als getal plus K, M of G, bijvoorbeeld 2G: dat wordt limit-bytes-total. Iets als "2 GB" of "vier uur" herkent hij niet, en dan krijgt dat account gewoon geen limiet.

Inlogmethoden en de walled garden

Standaard staan HTTP CHAP en cookie aan: inloggen met naam en wachtwoord, en daarna een cookie zodat dezelfde browser niet elk uur opnieuw hoeft. Verder kun je kiezen voor MAC (een apparaat mag erop zonder in te loggen), MAC cookie en Trial. Trial geeft elk apparaat gratis tijd zonder account, standaard een half uur.

De walled garden is de lijst met hosts die ook zonder inloggen bereikbaar zijn. De standaardinhoud is geen sierlijst: telefoons en laptops controleren bij Apple, Google en Microsoft of ze echt internet hebben, en pas als dat antwoord binnenkomt poppen ze het inlogscherm vanzelf op. Haal je die regels weg, dan werkt de hotspot nog steeds, maar moet iedereen zelf een website intypen om het portaal te zien.

HTTPS en de certificaatvraag

Kies je HTTPS als inlogmethode, dan verschijnt de schakelaar voor een zelfondertekend certificaat. Zet je die aan, dan maakt het script een eigen CA en daarmee een certificaat op de portaalnaam, en koppelt dat aan het hotspotprofiel.

Wees eerlijk over wat dat oplevert. Zelfondertekend betekent dat elke bezoeker een waarschuwing van zijn browser krijgt, en op een gastennetwerk is dat precies het verkeerde signaal. Een publiek vertrouwd certificaat voor een portaalnaam die alleen binnen jouw netwerk bestaat kan niet. Het Let's Encrypt-veld bij Diensten en tools lost dit niet op: dat certificaat gaat naar WebFig, niet naar het portaal. In de praktijk kiezen de meeste mensen HTTP CHAP, en laten ze HTTPS staan voor een opstelling met een echte hostnaam en een eigen CA op de apparaten.

RADIUS

Met RADIUS-client haalt de router de accounts niet uit zijn eigen lijst maar bij een centrale server. Je vult het adres en het shared secret in, en vinkt aan waarvoor hij geldt: hotspot, ppp, login voor beheerders, wireless of dhcp. Staat hotspot aangevinkt, dan zet de generator use-radius=yes in het hotspotprofiel. Incoming CoA laat de server een sessie tijdens het gebruik aanpassen of afbreken, op poort 3799.

De configurator schrijft alleen de client. De server zelf, of dat nu MikroTik's User Manager op dit apparaat is of een FreeRADIUS ergens anders, moet je zelf installeren en vullen.

Wat er in het script komt

  • /ip address, /ip pool met de naam hs-pool en /ip dhcp-server met de naam hs-dhcp, tenzij de interface dat adres al heeft.
  • /ip hotspot profile hsprof1 met de portaalnaam, de inlogmethoden en eventueel het certificaat.
  • /ip hotspot user profile hs-default met de limieten, en /ip hotspot user per account.
  • /ip hotspot hotspot1 op de gekozen interface.
  • /ip hotspot walled-garden met één regel per host.

Firewallregels voor het portaal zelf staan er niet bij, en dat klopt: RouterOS maakt die zelf zodra de hotspot draait.

De grenzen

Dit is geen portaalproduct. De configurator zet het RouterOS-portaal aan met de standaard inlogpagina's van MikroTik. Er is geen veld voor een logo, geen eigen huisstijl, geen voorwaardenpagina en geen knop om een stapel vouchers te genereren of te printen: accounts zet je er één voor één in. Wil je een eigen portaal, dan pas je de bestanden in de map hotspot op het apparaat zelf aan, of zet je er een leverancier voor.

Er is ook maar één hotspot per apparaat. Twee portalen voor twee doelgroepen kan de tool niet maken.

Hotspot is een van de functies die RouterOS achter device-mode kan houden. Staat hotspot op no, dan accepteert het apparaat de regels en doet er niets mee. De controles boven het script wijzen je hierop; controleer met /system/device-mode/print.

Als het niet werkt

  • Het inlogscherm komt niet vanzelf. Bijna altijd de walled garden of DNS. Controleer of de detectie-hosts erin staan en of de client de router als DNS heeft gekregen.
  • Geen adres. Kijk met /ip dhcp-server print of hs-dhcp op dezelfde interface staat als de hotspot.
  • Wie is er ingelogd? /ip hotspot active print toont de lopende sessies, /ip hotspot host print de apparaten die nog niet ingelogd zijn.
  • Gasten kunnen niet bij de printer. Dat is de isolatie van het VLAN die zijn werk doet. Wil je daar een uitzondering op, dan maak je die in Firewall, bewust.

Verder lezen: Voorbeeld: een gastennetwerk, VLANs en PPPoE-server en RADIUS.

Meteen proberen? Open de configurator