Een captive portal is de techniek achter de gastwifi die je gebruikers eerst naar een inlog- of acceptatiepagina stuurt voordat ze echt internettoegang krijgen. Dit wordt veel gebruikt in cafés, winkels, hotels en op werkplekken om gebruik te controleren, compliance te waarborgen en extra services (bijv. marketing, vouchers) aan te bieden.
In dit artikel leggen we concreet uit hoe een captive portal werkt, welke componenten je nodig hebt, hoe je er één opzet met populaire systemen (UniFi, pfSense), hoe je veelvoorkomende problemen oplost en hoe je het veilig en GDPR-conform houdt. Direct toepasbare stappen en testprocedures inbegrepen.
Wat gebeurt er technisch bij een captive portal?
Basisstappen van het proces:
- Device verbindt met gast-SSID en krijgt een IP via DHCP.
- DNS-queries of HTTP-verkeer worden onderschept door de gateway (AP, controller of firewall).
- Gebruiker wordt doorgestuurd naar een lokale of externe portalpagina (HTTP redirect of DNS intercept).
- Na succesvolle authenticatie/acceptatie krijgt het apparaat een regel in de firewall of controller om toegang toe te staan.
Belangrijke componenten en rollen
- Access Point (AP): ondersteunt captive portals en kan redirect-beleid toepassen of verkeer naar een controller sturen.
- Controller / Gateway (UniFi Controller, Meraki cloud, pfSense, RouterOS): beheert captive portal regels, vouchers, en firewall.
- DHCP & DNS: verzorgen IP-adressen en namen; DNS-intercept is veelgebruikt voor redirects.
- Authenticatie (optioneel): interne vouchers, RADIUS (voor zakelijke integratie), social login of e-mail/SMS verificatie.
- Walled Garden: lijst met toegestane domeinen (bijv. Apple update-servers, inlogpagina resources).
Redirectmethodes: wat je moet kiezen
Keuzes en gevolgen:
- HTTP Redirect: werkt eenvoudig, maar moderne browsers en HSTS/HTTPS maken het lastig. Gebruik het alleen als je captive portal resources via HTTP laadt en browser-detectie meeneemt.
- DNS Intercept: verandert DNS-antwoord voor alle hosts naar de portal-IP. Effectief, maar vereist walled gardens voor noodzakelijk domeinen (OTA, captive detect endpoints).
- Layer 2 Intercept / Proxy: AP of controller blokkeert verkeer tot authenticatie; meestal stabieler en veiliger.
Stap-voor-stap: captive portal opzetten met UniFi (snelreferentie)
- Maak of update je UniFi Controller en zorg dat APs adopt zijn en up-to-date.
- Maak een nieuwe SSID en kies “Guest” als type.
- Activeer “Guest Portal” > kies “External” of “Hotspot Manager” of “No authentication” + redirect URL.
- Konfigureer “Guest Policies”: client isolation, bandwidth limits, session timeout.
- Voeg “Walled Garden” entries toe: captive portal detection endpoints (connectivitycheck.gstatic.com, captive.apple.com, msftconnecttest.com) en domeinen die altijd bereikbaar moeten zijn.
- Test: verbind met SSID, open browser, indien portal niet verschijnt: gebruik http://neverssl.com of open een niet-HTTPS site.
Stap-voor-stap: captive portal met pfSense
- Installeer pfSense op je gateway en configureer LAN/Guest interfaces.
- Ga naar Services > Captive Portal: activeer op de guest-interface.
- Kies authenticatiemethode: local users, RADIUS of vouchers. Activeer HTTPS als je een certificaat hebt.
- Upload of maak de portalpagina; voeg logo en walled garden-entries toe voor captive-detection-domains.
- Firewallregels: sta DNS (UDP/53) en HTTP/HTTPS naar portal toe; blokkeer overige verkeer tot authenticatie.
- Test: gebruik incognito, controleer DHCP lease en traceroute naar portal IP; los eventuele DNS leaks op via walled garden.
Authenticatie-opties en wanneer te gebruiken
- Open met acceptatie: snel voor cafés en winkels, laagdrempelig.
- Vouchers: ideaal voor tijd- of datalimieten in hotels of evenementen.
- RADIUS/802.1X: bedrijfsnetwerken met individuele credentials en logging.
- Social login / e-mail / SMS: nuttig voor marketing en lead capture, maar let op GDPR en verificatiebetrouwbaarheid.
Security & privacy: concrete checks
- Zorg voor HTTPS op je portalpagina met een geldig certificaat om mixed-content en browser-blokkades te voorkomen.
- Voorkom dat gevoelige bedrijfsnetwerken bereikbaar zijn via gast-SSID (vlan-segregatie).
- Beperk logging tot wat nodig is voor veiligheid en facturatie; documenteer bewaartermijnen voor GDPR.
- Gebruik session timeouts en periodic reauthentication voor langdurige verbindingen.
Veelvoorkomende issues en snelle oplossingen
- Portal verschijnt niet op iOS: controleer walled garden voor captive-detect endpoints en gebruik https-certificaat. Test met safari naar http://neverssl.com.
- HTTPS redirect faalt: browsers blokkeren HTTPS redirect; zorg dat initial assets van portal via HTTPS beschikbaar zijn en gebruik DNS intercept of captive-detect fallback.
- Clients blijven in “beperkte toegang”: verwijder eerder opgeslagen captive portal detectie (ios: wifi netwerk ‘vergeet’; Android: clear captive portal app data of probeer incognito).
- Vouchers werken niet: controleer RADIUS tijden, tijdzone op controller en anti-replay instellingen.
Testplan: stap-voor-stap testen (must-do)
- Verbind een ongekend apparaat met het gast-SSID.
- Open browser; als portal niet verschijnt, navigeer naar http://neverssl.com.
- Probeer social login / voucher / guest acceptatie en controleer of internettoegang mogelijk is.
- Controleer firewallregels op controller/gateway: vóór authenticatie alleen DNS+HTTP(S) naar portal toestaan.
- Visualiseer logs in controller/pfSense: DHCP lease, portal hits en RADIUS accept/deny messages.
- Herhaal test op iOS, Android en Windows—elk OS gedraagt zich anders bij captive detect.
Configuratievoorbeeld: minimale firewall rules (concreet)
Op guest VLAN / interface:
- Allow: DHCP (UDP 67/68) tussen client en DHCP-server.
- Allow: DNS (UDP/TCP 53) naar interne DNS of captive DNS.
- Allow: HTTP/HTTPS (80/443) naar portal server ip.
- Block: alle overige uitgaande toegang naar internet vóór authenticatie.
- After auth: allow any (of per beleid: limit naar 80/443 & specifieke services), plus QoS policies.
Aanbevolen hardware & software opties
- Voor kleinere bedrijven: Ubiquiti UniFi (gebruiksvriendelijk en betaalbaar).
- Voor grotere omgevingen: Cisco Meraki, Ruckus (schaalbaar, geavanceerd beheer).
- Voor volledige controle: pfSense + CoovaChilli of Nodogsplash (open-source, flexibel).
- RADIUS-integratie: FreeRADIUS voor interne auth, of cloud RADIUS voor eenvoudige management.
Monitoring, onderhoud en beleidsregels
- Plan maandelijkse audits: certificaatvervaldata, walled garden updates en voucher-voorraad.
- Activeer alerts voor RADIUS-fouten en hoge sessie-aantallen.
- Voer penetratietests uit op de captive portal (SQL injection, XSS op inlogvelden).
- Documenteer gebruikersvoorwaarden en plaats die zichtbaar op de portalpagina.
Concrete checklist voor oplevering (direct toepasbaar)
- SSID actief en gescheiden VLAN ingesteld.
- DHCP & DNS correct geconfigureerd en getest.
- Portalpagina bereikbaar via HTTPS met geldig certificaat.
- Walled garden bevat captive detect endpoints en noodzakelijke services.
- Firewallregels blokkeren verkeer vóór auth en staan na auth toe volgens beleid.
- Test uitgevoerd op iOS/Android/Windows en bewijs van succesvolle login en logging aanwezig.
Laatste praktische tip: voer altijd eerst één volledige test met een complete nieuwe client zonder cache (incognito of ‘vergeet netwerk’) en documenteer exact welke URL of app de captive portal triggerde—als dat niet consistent werkt, is het meestal een walled garden of HTTPS-certificaatprobleem dat je binnen 10 minuten oplost.