}
abonneren

Captive portal instellen voor je gastnetwerk

Eerder las je bij ons hoe je met behulp van OPNsense een gastnetwerk op kunt zetten. Wil je een mooie 'landingspagina' voor gasten die inloggen, dan kun je een zogeheten captive portal instellen. Lees hier hoe.

Tot nu toe hebben we gewoon een eenvoudig gastnetwerk gemaakt waar de clients maar het wachtwoord van je draadloos toegangspunt hoeven te weten om toegang tot internet te krijgen. In de firewall hebben we al het een en ander dichtgetimmerd, maar voor de rest is het een vrij klassieke oplossing. Hoe zat het ook alweer? Lees daarvoor het artikel Gastnetwerk opzetten en beheren met OPNsense.

De volgende stap is dat we een ‘captive portal’ gaan activeren: een webinterface die de gebruikers te zien krijgen nadat ze met het draadloze netwerk verbonden zijn. Ook dat is ingebouwd in OPNsense.

Zone configureren

Vink de standaard aangevinkte interface LAN bij Interfaces uit en vink GASTNET in de plaats aan. Vink voorlopig bij de authenticatiemethode Local Database uit, want we gaan het eerst zonder authenticatie uitproberen. Vink eventueel Concurrent user logins uit als je niet wilt dat gebruikers op meerdere apparaten tegelijk kunnen inloggen. Geef tot slot als beschrijving Gastnetwerk en sla de zone op. Klik daarna op Apply om de captive portal op het gastnetwerk toe te passen.

Als je nu je smartphone opnieuw met je gastnetwerk laat verbinden, dan heeft die geen internettoegang meer. Je wordt dan immers doorverwezen naar een portaalpagina van OPNsense. Gebeurt dat niet, dan kun je de portaalpagina ook altijd oproepen door in je webbrowser http://192.168.200.1:8000 te bezoeken. Klik op Sign in om aan te melden. Daarna is internet beschikbaar. In de webinterface van OPNsense vind je de sessies van alle gebruikers op de pagina Services / Captive Portal / Sessions.

In het tabblad Templates van het beheer van je captive portal kun je zelf html-sjablonen toevoegen die OPNsense dan gebruikt voor je portaalpagina. Je begint het beste van een bestaand sjabloon, zoals dat van t4skforce op GitHub. Download het zip-bestand, voeg dan een sjabloon toe in het tabblad Templates, selecteer het zip-bestand en geef het sjabloon een naam. Kies bij je zone als Custom template voor je sjabloon, sla je wijziging op en klik op Apply.

Bekijk zeker de code van dit sjabloon eens, dan zie je hoe je o.a. gebruiksvoorwaarden toevoegt en een teller die de gebruiker tijdens een actieve sessie toont hoe lang zijn dagpas nog geldig is.

Dagpassen aanmaken en beheren

Het aanmelden is in dit geval dus beperkt tot op een knopje klikken, omdat we geen authenticatiemethode ingevuld hebben. Je kunt nu lokale gebruikers en een bijbehorend wachtwoord voor iedere gast aanmaken, maar dat is niet zo overzichtelijk, zeker niet als het bijvoorbeeld voor een bed and breakfast is waar je elke week andere gebruikers hebt.

Maar ook hier heeft OPNsense een oplossing voor: de dagpassen (‘vouchers’). Ga naar System / Access / Servers en klik bovenaan rechts op Add. OPNsense ondersteunt diverse types toegangsservers. Voor dit artikel kies je als type Voucher. Geef als beschrijving iets als Gastpassen en sla je server op.

Als je nu naar Services / Captive Portal / Vouchers gaat, kun je met een klik op Create vouchers rechtsonder nieuwe dagpassen aanmaken. Standaard staat de geldigheid op vier uur, voor een dagpas maak je daar uiteraard een dag van. Je kunt ook Expires in instellen: daarmee voorkom je dat iemand die ver in de toekomst ongebruikte dagpassen te pakken krijgt nog op het netwerk kan inloggen. Zet dat bijvoorbeeld op drie maanden. Je moet dan elke drie maanden nieuwe dagpassen genereren. Tot slot kies je hoeveel dagpassen je wilt en geef je een naam aan de groep dagpassen. Klik op Generate.

Je krijgt nu een csv-bestand om te downloaden, waarin de gegenereerde gebruikersnamen en bijbehorende wachtwoorden staan. De wachtwoorden worden overigens niet op de OPNsense-machine opgeslagen, alleen een hash ervan die nodig is om de authenticatie uit te voeren. Aan iedereen die je nu een dag toegang tot je gastnetwerk wilt geven, geef je een gebruikersnaam en bijbehorend wachtwoord uit deze lijst.

Je kunt deze bijvoorbeeld met Microsoft Office of LibreOffice in een brief opnemen waarin je je gasten welkom heet. Vergeet hier uiteraard ook niet het ssid en wachtwoord van je gastnetwerk op te vermelden!

Dan rest ons nog één ding: de toegang tot het gastnetwerk authentiseren via de dagpassen. Ga weer naar Services / Captive Portal / Administration en klik op het potloodicoontje om de zone van je gastnetwerk te bewerken. Verander bij Authenticate using de waarde Nothing selected naar Gastpassen, sla je wijziging op en klik op Apply.

Ga nu naar Services / Captive Portal / Sessions en verwijder eventuele actieve sessies. Verbind op je smartphone weer met het gastnetwerk. In het aanmeldvenster van de captive portal dien je nu een gebruikersnaam en wachtwoord in te voeren. Als dit overeenkomt met een van de dagpassen, kan de gebruiker online; anders niet.

Onder Services / Captive Portal / Sessions krijg je voor elke aangemelde gebruiker op het gastnetwerk een sessie te zien. De gebruikersnaam, het mac-adres, ip-adres en het moment van aanmelden zie je hier allemaal. Met een klik op het icoontje van de vuilnisbak rechts verbreek je de verbinding van de verbonden client.

In Services / Captive Portal / Vouchers krijg je dan weer alle dagpassen te zien: vanaf wanneer ze geldig zijn (de ongebruikte vanaf het huidige moment), tot wanneer en op welk moment hun geldigheid sowieso verstrijkt (dat hebben we op drie maanden ingesteld). Je kunt ook zien of een dagpas nog geldig is of nog niet gebruikt. Met de knopjes onderaan kun je ook dagpassen ongeldig maken of verstreken dagpassen uit de lijst verwijderen voor wat meer overzicht.

Flexibele oplossing

De captive portal van OPNsense is een heel flexibel systeem die ook complexe opstellingen mogelijk maakt. Als je bijvoorbeeld meerdere gastnetwerken wilt aanmaken (op elke interface van de OPNsense-machine kunnen we een afzonderlijk gastnetwerk aanmaken), kun je kiezen om die allemaal dezelfde zone te laten delen of om voor elk gastnetwerk een eigen zone met eigen instellingen aan te maken.

In de instellingen van de zone kun je nog allerlei opties aanpassen waar we nog geen aandacht aan besteed hebben. Zo kun je een time-out instellen: het aantal minuten inactiviteit of (voor een harde time-out) duur van de sessie voordat de sessie afgebroken wordt. En als je deze oplossing in een productieomgeving gaat gebruiken, moet je hier zeker ook een certificaat instellen, zodat de communicatie met je portaalpagina over https verloopt.

Geschreven door: Koen Vervloesem op

Category: Workshop, Netwerk

Tags: netwerk, opnsense

Laatste Vacatures

Uitgelicht: Technisch Applicatiebeheerder - CGI