Fernwartung Download starten

OPNsense Captive Portal: Gäste-WLAN mit Voucher-System und RADIUS einrichten

OPNsenseNetzwerkSecurity
OPNsense Captive Portal: Gäste-WLAN mit Voucher-System und RADIUS einrichten

Gäste, Besucher und externe Dienstleister brauchen oft Internetzugang — aber keinen Zugriff auf das interne Netzwerk. Ein Captive Portal auf OPNsense löst dieses Problem elegant: Gäste verbinden sich mit dem WLAN und werden auf eine Anmeldeseite weitergeleitet, wo sie sich mit einem Voucher-Code oder eigenen Zugangsdaten authentifizieren. Der Zugang ist zeitlich begrenzt, bandbreitenlimitiert und vollständig vom Produktivnetz isoliert.

Architektur des Gäste-Netzes

Ein professionelles Gäste-WLAN besteht aus vier Komponenten:

  1. VLAN für Gäste: Eigenes Netzwerksegment, isoliert vom Produktivnetz
  2. Access Point: WLAN mit dedizierter SSID, die in das Gäste-VLAN bridged
  3. Captive Portal: Anmeldeseite, die Authentifizierung erzwingt
  4. Firewall-Regeln: Erlauben nur Internet-Traffic, blockieren alles Interne

Netzwerk-Topologie

Internet

┌───┴───┐
│OPNsense│──── VLAN 20: Server (10.0.20.0/24)
│Firewall│──── VLAN 30: Clients (10.0.30.0/24)
│        │──── VLAN 70: Gäste  (10.0.70.0/24) ◄── Captive Portal
└───┬───┘

 Managed Switch (802.1Q Trunk)

 Access Point
    ├── SSID: Firma-Intern → VLAN 30
    └── SSID: Firma-Gast   → VLAN 70

Schritt 1: VLAN für Gäste einrichten

Falls noch kein Gäste-VLAN existiert, erstellen Sie es auf OPNsense:

  1. Navigieren Sie zu Interfaces → Other Types → VLAN
  2. Klicken Sie auf + und konfigurieren Sie:
    • Parent: Das physische Interface zum Switch (z.B. igc1)
    • VLAN Tag: 70
    • Description: Gaeste_VLAN
  3. Unter Interfaces → Assignments weisen Sie das neue VLAN einem Interface zu
  4. Konfigurieren Sie das Interface:
    • IPv4: Static, 10.0.70.1/24
    • Enable: Aktiviert

DHCP für Gäste-VLAN

Unter Services → DHCPv4 → Gaeste_VLAN:

  • Range: 10.0.70.100 – 10.0.70.250
  • DNS: 10.0.70.1 (OPNsense als DNS, für DNS-Filtering)
  • Lease Time: 3600 (1 Stunde — kurz, da Gäste nur temporär sind)
  • Gateway: 10.0.70.1

Schritt 2: Firewall-Regeln für das Gäste-VLAN

Die Regeln folgen dem Prinzip Deny by Default — nur explizit freigegebener Traffic wird zugelassen.

Gaeste_VLAN-Regeln (Reihenfolge beachten):

Nr.AktionQuelleZielPortBeschreibung
1AllowGaeste_VLAN netGaeste_VLAN address53 (TCP/UDP)DNS über OPNsense
2AllowGaeste_VLAN netGaeste_VLAN address8443 (TCP)Captive Portal Zugriff
3BlockGaeste_VLAN netRFC1918 networks*Kein Zugriff auf private Netze
4AllowGaeste_VLAN net*80, 443HTTP/HTTPS ins Internet
5BlockGaeste_VLAN net**Alles andere blockieren

Regel 3 ist entscheidend: Sie blockiert den Zugriff auf alle privaten IP-Bereiche (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), sodass Gäste weder Server, Clients noch andere VLANs erreichen können.

Schritt 3: Captive Portal aktivieren

Navigieren Sie zu Services → Captive Portal → Administration:

  1. Klicken Sie auf + um eine neue Zone zu erstellen:

    • Enabled: Aktiviert
    • Interfaces: Gaeste_VLAN
    • Authenticate using: Voucher / Local Database / RADIUS (je nach Bedarf)
    • Idle timeout: 30 Minuten (automatisches Abmelden bei Inaktivität)
    • Hard timeout: 480 Minuten (maximale Sitzungsdauer: 8 Stunden)
    • Concurrent logins: 1 (ein Voucher = ein Gerät)
    • SSL certificate: Wählen Sie ein gültiges Zertifikat (z.B. von Let’s Encrypt)
  2. Unter Allowed addresses fügen Sie Ausnahmen hinzu, die ohne Authentifizierung erreichbar sein sollen (z.B. die eigene Website).

Schritt 4: Voucher-System einrichten

Voucher sind Einmal-Codes, die an Gäste ausgegeben werden. Jeder Code hat eine definierte Gültigkeit und kann nur einmal verwendet werden.

Unter Services → Captive Portal → Vouchers:

  1. Erstellen Sie eine Voucher-Gruppe:

    • Name: Tagesvoucher
    • Validity: 480 (Minuten = 8 Stunden)
    • Quantity: 50
  2. Voucher generieren: Klicken Sie auf „Generate” — OPNsense erstellt 50 einmalige Codes

  3. Voucher exportieren: Die Codes können als CSV exportiert und ausgedruckt werden. Typisches Format für den Empfang:

╔═══════════════════════════════╗
║   Firma GmbH - Gäste-WLAN    ║
║                               ║
║   SSID: Firma-Gast            ║
║   Code: A7X9-K2M4-P8L1       ║
║   Gültig: 8 Stunden           ║
╚═══════════════════════════════╝

Voucher-Typen für verschiedene Szenarien

TypGültigkeitBandbreiteEinsatz
Tagespass8 Stunden20 Mbit/sBesucher, Meetings
Wochenpass7 Tage50 Mbit/sExterne Berater
Event-Pass4 Stunden10 Mbit/sKonferenzen, Schulungen
Lieferanten2 Stunden5 Mbit/sKurzbesuche

Schritt 5: RADIUS-Anbindung (Optional)

Für größere Umgebungen ist eine RADIUS-Anbindung sinnvoller als lokale Voucher. RADIUS ermöglicht zentralisierte Authentifizierung und detailliertes Accounting.

FreeRADIUS auf OPNsense installieren

  1. Unter System → Firmware → Plugins installieren Sie os-freeradius
  2. Navigieren Sie zu Services → FreeRADIUS → General: Aktivieren Sie den Dienst
  3. Unter Users erstellen Sie Benutzer:
    • Username: gast_mueller
    • Password: (sicheres Passwort)
    • Session-Timeout: 28800 (8 Stunden)
    • Max-Bandwidth-Down: 20000000 (20 Mbit/s in Bit/s)

Captive Portal mit RADIUS verbinden

  1. Unter System → Access → Servers erstellen Sie einen RADIUS-Server:

    • Type: RADIUS
    • Hostname: 127.0.0.1
    • Shared Secret: (starkes Secret)
    • Authentication Port: 1812
    • Accounting Port: 1813
  2. Im Captive Portal ändern Sie Authenticate using auf den RADIUS-Server.

RADIUS-Accounting

RADIUS-Accounting protokolliert jede Sitzung mit Start- und Endzeit, übertragenem Datenvolumen und IP-Adresse. Das ist wichtig für:

  • Compliance: Nachweis, wer wann im Netz war
  • Störerhaftung: Dokumentation der Nutzung
  • Kapazitätsplanung: Auswertung der Bandbreitennutzung

Schritt 6: Bandbreitenlimits konfigurieren

Ohne Bandbreitenlimits kann ein einzelner Gast die gesamte Leitung beanspruchen. OPNsense bietet dafür Traffic Shaping über Pipes.

Pipe-Konfiguration

Unter Firewall → Shaper → Pipes:

  1. Download-Pipe:

    • Bandwidth: 20 Mbit/s
    • Mask: source (pro Client)
    • Description: Gaeste_Download
  2. Upload-Pipe:

    • Bandwidth: 5 Mbit/s
    • Mask: source (pro Client)
    • Description: Gaeste_Upload

Shaper-Regeln

Unter Firewall → Shaper → Rules:

  1. Download-Regel:

    • Interface: Gaeste_VLAN
    • Direction: in
    • Target: Gaeste_Download Pipe
    • Source: any
    • Destination: Gaeste_VLAN net
  2. Upload-Regel:

    • Interface: Gaeste_VLAN
    • Direction: out
    • Target: Gaeste_Upload Pipe
    • Source: Gaeste_VLAN net
    • Destination: any

Mit der Mask: source-Einstellung erhält jeder Client sein eigenes Limit — 20 Mbit/s Down und 5 Mbit/s Up pro Gerät.

Schritt 7: Custom Landing Page

Die Standard-Anmeldeseite funktioniert, aber eine gebrandete Seite hinterlässt einen professionelleren Eindruck.

Unter Services → Captive Portal → Templates:

  1. Laden Sie das Standard-Template herunter
  2. Bearbeiten Sie die HTML/CSS-Dateien:
    • Firmenlogo einbinden
    • Farben anpassen
    • Nutzungsbedingungen hinzufügen
    • Willkommensnachricht formulieren

Beispiel-Struktur der Landing Page:

<div class="login-container">
    <img src="logo.png" alt="Firma GmbH" class="logo">
    <h1>Willkommen im Gäste-WLAN</h1>
    <p>Bitte geben Sie Ihren Zugangscode ein:</p>
    <form method="post" action="$PORTAL_ACTION$">
        <input type="text" name="auth_voucher" placeholder="Voucher-Code">
        <button type="submit">Verbinden</button>
    </form>
    <div class="terms">
        <p>Mit der Nutzung akzeptieren Sie unsere
        <a href="/nutzungsbedingungen">Nutzungsbedingungen</a>.</p>
    </div>
</div>
  1. Packen Sie die bearbeiteten Dateien als ZIP und laden Sie das Template hoch

DNS-Filtering für Gäste

Zusätzlich zum Captive Portal empfiehlt sich DNS-basiertes Content-Filtering über Unbound DNS auf OPNsense:

  1. Installieren Sie das Plugin os-unbound-plus-dnsbl (falls nicht vorhanden)
  2. Unter Services → Unbound DNS → Blocklist aktivieren Sie Blocklisten:
    • Malware-Domains
    • Phishing-Domains
    • Optional: Werbe-Domains
  3. Stellen Sie sicher, dass das Gäste-VLAN nur den OPNsense-DNS nutzen kann (Firewall-Regel 1 erlaubt DNS nur zur OPNsense-Adresse)

Monitoring und Logging

Aktive Sitzungen überwachen

Unter Services → Captive Portal → Sessions sehen Sie alle aktiven Gäste-Sitzungen:

  • Benutzername / Voucher-Code
  • IP-Adresse und MAC-Adresse
  • Verbindungsdauer
  • Übertragenes Datenvolumen
  • Manuelles Trennen einzelner Sitzungen

Syslog-Integration

Captive-Portal-Events können an einen zentralen Syslog-Server gesendet werden. Relevante Events:

  • Login-Versuche (erfolgreich und fehlgeschlagen)
  • Session-Timeouts
  • Manuelle Disconnects
  • Voucher-Verbrauch

Häufige Probleme und Lösungen

ProblemUrsacheLösung
Portal-Seite erscheint nichtDNS-Redirect fehltCaptive Portal DNS über OPNsense erzwingen
HTTPS-Warnung im BrowserUngültiges ZertifikatLet’s Encrypt-Zertifikat für Portal-Hostname
Gast kommt nicht ins InternetFirewall-Regel fehlt oder falsche ReihenfolgeRegeln prüfen: DNS → Block RFC1918 → Allow HTTP/S
Voucher funktioniert nichtZeitzone falsch oder Voucher abgelaufenSystemzeit und Voucher-Gültigkeit prüfen
Langsame VerbindungTraffic Shaper zu restriktivPipe-Bandbreite erhöhen

Fazit

Ein professionelles Gäste-WLAN mit OPNsense Captive Portal bietet Sicherheit durch VLAN-Isolation, kontrollierte Zugangsdauer über Voucher oder RADIUS, Bandbreitenlimits pro Client und DNS-Filtering. Die Einrichtung erfordert etwas Aufwand, aber das Ergebnis ist ein Gastnetz, das sowohl sicher als auch benutzerfreundlich ist. Gäste erhalten unkomplizierten Internetzugang, während das Produktivnetz vollständig isoliert bleibt.

Mehr zu diesen Themen:

IT-Beratung gewünscht?

Kontaktieren Sie uns für eine unverbindliche Beratung zu Proxmox, OPNsense, TrueNAS und mehr.

Jetzt Kontakt aufnehmen