pfSense WLAN hotspot – via Captive-Portal einen dauerhaften Internetzugang per registrierter MAC-Adresse realisieren

Wer ein offenes WLAN etwa für Gäste anbieten und per Captive-Portal realisieren möchte, der kann dies über die kostenfreie pfsense Firewall-Lösung einrichten. Dass Gäste nicht jedesmal die Vorschriften und rechtlichen Bestimmungen abnicken müssen, kann man durch Speicherung der MAC-Adresse des jeweiligen Clients erreichen.


Voraussetzungen wie in diesem Beispiel:

  • installierte pfSense Firewall mit aktiviertem Captive-Portal
  • erweiterte Kenntnisse einer Firewall-Konfiguration

Man kann zwar im Captive-Portal eine entsprechende Einstellung vornehmen; Diese nennt sich pass-through MAC automatic additions.
Dies bedeutet so viel, dass registrierte MAC-Adressen, weiterhin das Netz oder Gateway nutzen dürfen, ohne dass man sich mit dem zugehörigen Gerät ein weiteres Mal authentifizieren müsste.

enabled MAC-pass-through in einem pfsense captive-portal

Weiterhin muss man eine Datenbank angeben, in der die eingetragenen/registrierten MAC-Adressen gespeichert werden.

Backend Authentifizierung anhand lokaler Datenbank

In diesem Fall wurde auf eine Anmeldung im Captive-Portal nicht verzichtet, um den legitimierten Personenkreis enger zu halten, als es in einem gänzlich freien WLAN möglich wäre. Gerade in dicht besiedelten Wohngebieten kann dies nützlich sein, da die Bandbreite oftmals so weit begrenzt ist, dass man diese nicht mit einer unkontrollierten Anzahl an Endgeräten teilen möchte.

Selbst wenn wir also einen Benutzer samt Passwort erstellt haben, der dazu genutzt werden kann, die gewünschten Clients gegenüber dem Captive-Portal zu authentifizieren, würde dieser Login trotzdem weiterhin bei erneutem Verbinden mit dem Netzwerk (z. B. Wifi) abgefragt werden, obwohl keine Timeouts gesetzt wurden.

Um den Zustand zu erreichen, dass ein Mal gespeicherte MAC-Adressen bzw. Clients keiner weiteren oder späteren Authentifizierung bedürfen, fehlt es noch an einer Einstellung.

Wir setzen den Session-Timeout gegenüber der lokalen Datenbank auf den Wert = 0.

Lokale Datenbank: session timeout = 0

Dies ermöglicht eine einmalige Authentifizierung gegenüber der Firewall im Captive-Portal, sodass es nur einer Anmeldung bedarf und fortan, z. B. der Gateway für das Surfen im Internet von ein Mal registrierten Endgeräten genutzt werden kann.

Geeignete Hardware für kleinere Infrastrukturen könnte beispielsweise eine ZBox von Zotac sein, die schon zwei Netzwerkschnittstellen besitzt, für WAN/LAN bzw. Uplink und dessen NICs VLAN-Fähigkeit besitzen: