Captive Portal: Diverse Fragen

Started by TheExpert, March 01, 2026, 02:53:04 PM

Previous topic - Next topic
    Hallo zusammen,

    nachdem ich nun auch das Captive Portal am Laufen habe, stellen sich mir ein paar Fragen:

    • Gibt es eine Möglichkeit, dass man statt Benutzernamen und Passwort einfach nur einen Code eingeben muss, den man als Voucher erzeugt hat? Die Eingabe eines kryptischen Benutzernamens und eines kryptischen Passwortes ist schon recht umständlich - für ein Gäste-WLAN zu umständlich. Bei den Grandstream Access Points benötigt man nur einen Zahlencode, den man als Voucher erstellt.
    • Ich betreibe die OPNsense als HA-Cluster. Das Portal reagiert aber nur auf die physikalische IP im Gast-Netz und nicht auf die CARP-IP. Ist das normal und ist das sinnvoll? Beim Failover muss man sich ja dann ggf. an der physikalischen IP-Adresse des zweiten Knotens anmelden.
    • Und daran schließt sich auch schon die nächste Frage an: Die Einstellungen des Captive Portal werden auf den Backup-Knoten synchronisiert, aber die Voucher nicht. D. h. es kann sich niemand mit den ihm bekannten Vouchern im Gäste-Netz anmelden, wenn ein Failover erfolgt ist. Ist das per Design so gewollt? Das macht doch eigentlich keinen Sinn, oder?

    Klar kann man jetzt sagen, dass das Gäste-Netz nicht so wichtig ist und daher keine Ausfallsicherheit erfordert, aber dennoch fände ich es gut, wenn sich die Gäste mit den bekannten Vouchern auch am Backup-Knoten authentifizieren können.

    Vielen Dank und viele Grüße

Quote from: TheExpert on March 01, 2026, 02:53:04 PMGibt es eine Möglichkeit, dass man statt Benutzernamen und Passwort einfach nur einen Code eingeben muss, den man als Voucher erzeugt hat?
Hast du versucht, im Authentication Server die Benutzernamenslänge auf 0 zu setzen?

Quote from: TheExpert on March 01, 2026, 02:53:04 PMIch betreibe die OPNsense als HA-Cluster. Das Portal reagiert aber nur auf die physikalische IP im Gast-Netz und nicht auf die CARP-IP.
Was meinst du mit "reagiert auf die physikalische IP?

Die Client-Anfragen werden einfach auf die Interface IP umgeleitet (oder der Client erhält die IP schon vom DHCP). Welche das ist, sollte doch egal sein.
Wenn die Backup-Box Master ist, dann werden die Clients eben auf deren IP umgeleitet.

Quote from: TheExpert on March 01, 2026, 02:53:04 PMDie Einstellungen des Captive Portal werden auf den Backup-Knoten synchronisiert, aber die Voucher nicht.
Hast du die Synchronisation der Authentication Server aktiviert?

Nein, die Länge des Benutzernamens auf 0 zu setzen, habe ich nicht getestet. Ist das nun lediglich ein Vorschlag zum Testen oder ist bekannt, dass das funktioniert?

IP-Adresse: Nein, es ist nicht egal, welche IP-Adresse genommen wird, denn im HA muss die CARP-IP genommen werden. Anderenfalls ist ja kein HA für das Captive-Portal möglich. Mit physikalischer IP meine ich die IP des OPNsense-Knotens im Gäste-VLAN anstelle der virtuellen CARP-IP.

Synchronisation: Ja, die Authentication Server werden in meiner HA-Konfiguration ebenfalls synchronisiert. Das Verhalten, dass die Voucher nicht synchronisiert werden, ist hier im Forum schon mindestens seit 2021 bekannt und offenbar ist das bisher noch nicht gefixt worden (siehe z. B. https://forum.opnsense.org/index.php?topic=24239.0).

Wenn man als Länge für den Benutzernamen "0" eingibt, erscheint folgende Fehlermeldung:

Die folgenden Eingabefehler wurden entdeckt:
  • Benutzernamenlänge muss eine Zahl oder leer für den Standardwert sein.

Das funktioniert also schon mal nicht :-(.

Quote from: TheExpert on March 02, 2026, 08:27:16 AMWenn man als Länge für den Benutzernamen "0" eingibt, erscheint folgende Fehlermeldung:

Die folgenden Eingabefehler wurden entdeckt:
    • Benutzernamenlänge muss eine Zahl oder leer für den Standardwert sein.
    [/list]
    Das war ein Vorschlag, es zu versuchen.
    Aber wahrscheinlich hatte ich das selbst schon getan und dieselbe Erfahrung gemacht, jedoch vergessen. Die Fehlermeldung brachte mir ein Déjà-vu.

    Okay, nicht synchronisiert werden die offenen Vouchers. Also man kann sich mit dem genutzten Voucher bei einem Wechsel auf die Backkup-Box nicht wieder anmelden.

    Das Problem mit der Interface IP verstehe ich aber nicht. Das einzige, was in CP angegeben werden kann ist der Hostname, auf den die Webanfragen umgeleitet werden. Dieser kann per DNS an die CARP-IP gebunden sein, kann aber auch an ein anderes Gerät gebunden oder es kann auch die CARP IP selbst sein.
    Aber das CARP Service selbst wird ja nicht an eine IP gebunden.
    Ich frag mich daher, was da nicht funktioniert.

    March 02, 2026, 06:17:26 PM #5 Last Edit: March 02, 2026, 06:21:43 PM by TheExpert
    Quote from: viragomann on March 02, 2026, 09:18:23 AMAber das CARP Service selbst wird ja nicht an eine IP gebunden.

    Du meinst vermutlich das Captive Portal und nicht CARP Service, oder? Denn CARP ist an Schnittstellen und IP-Adressen gebunden. Ich lege lediglich fest, für welche Netzwerke, aber in der Tat nicht, über welche IP-Adresse das Captive Portal erreichbar sein soll.

    Quote from: viragomann on March 02, 2026, 09:18:23 AMIch frag mich daher, was da nicht funktioniert.

    Wenn man die URL des Captive Portal mit http://<CARP-IP-Adresse>:8000/ aufruft, kommt ein Timeout. Wenn man http://<IP-Adresse des HA-Knotens>:8000/ aufruft, dann erscheint das Captive Portal.

    Quote from: TheExpert on March 02, 2026, 06:17:26 PMDu meinst vermutlich das Captive Portal und nicht CARP Service, oder?
    Ja, sorry.

    Quote from: TheExpert on March 02, 2026, 06:17:26 PMWenn man die URL des Captive Portal mit http://<CARP-IP-Adresse>:8000/ aufruft, kommt ein Timeout. Wenn man http://<IP-Adresse des HA-Knotens>:8000/ aufruft, dann erscheint das Captive Portal.
    Eigentlich sollte nichts davon funktionieren. Der Port 8000 ist für https gedacht. Mit http müsste der Aufruf fehlschlagen.

    Wenn das aber ein Schreibfehler ist oder der Browser automatisch unbemerkt auf https gewechselt ist, würde das heißen, die Webseite ist nur an die Interface-Adresse gebunden.

    Ich verstehe aber immer noch nicht, weswegen es die CARP IP sein muss. Ebenso gut kannst du die IP der Backup-Node in den URL reinsetzen und die Webseite sollte auch aufgehen.
    Wie oben geschrieben, wenn CP synchronisiert wird, sollte auf der Backup die Loginseite ebenso auf der Interface IP bereitstehen.
    Also wenn diese Master ist, macht sie eben die Umleitung auf ihre Interface IP. Dem Client sollte das egal sein.

    Wenn du es aber dennoch auf der CARP VIP haben möchtest, dann leite die Anfragen eben auf die Interface-Adresse weiter.
    Also eine Destination NAT Regel am jeweiligen Interface erstellen mit der CARP VIP als Destination und Port 8000 (f. Zone 0) und als Redirect Target die Interface Adresse (die vordefinierte Variable, damit die Regel auch auf der Backup funktioniert) und Port 8000.
    Dies ist für https. Für http wäre noch eine Regel mit Zielport 9000 nötig.

    March 03, 2026, 06:42:31 AM #7 Last Edit: March 03, 2026, 06:45:24 AM by TheExpert
    Quote from: viragomann on March 02, 2026, 08:59:55 PMWenn das aber ein Schreibfehler ist

    Nein, das ist kein Schreibfehler.

    Quote from: viragomann on March 02, 2026, 08:59:55 PMIch verstehe aber immer noch nicht, weswegen es die CARP IP sein muss. Ebenso gut kannst du die IP der Backup-Node in den URL reinsetzen und die Webseite sollte auch aufgehen.

    Weil ich einen HA-Cluster habe! Und ja, der Aufruf funktioniert auch mit der IP-Adresse des Backup-Knotens - deshalb hatte ja auch allgemein geschrieben: Wenn man http://<IP-Adresse des HA-Knotens>:8000/ aufruft, dann erscheint das Captive Portal.

    Quote from: viragomann on March 02, 2026, 08:59:55 PMWenn du es aber dennoch auf der CARP VIP haben möchtest, dann leite die Anfragen eben auf die Interface-Adresse weiter.
    Also eine Destination NAT Regel am jeweiligen Interface erstellen mit der CARP VIP als Destination und Port 8000 (f. Zone 0) und als Redirect Target die Interface Adresse (die vordefinierte Variable, damit die Regel auch auf der Backup funktioniert) und Port 8000.
    Dies ist für https. Für http wäre noch eine Regel mit Zielport 9000 nötig.

    OK. Aber das macht natürlich nur Sinn, wenn auch die Voucher im Cluster synchronisiert würden.

    Quote from: viragomann on March 02, 2026, 08:59:55 PMPort 8000.
    Dies ist für https. Für http wäre noch eine Regel mit Zielport 9000 nötig.

    Ich habe HTTPS für das Captive Portal noch nicht aktiviert. Wenn ich http://<IP-Adresse des HA-Knotens>:9000/ aufrufe, wird auf http://<IP-Adresse des HA-Knotens>:8000/ umgeleitet.


    Es ruft aber doch niemand das CP direkt auf. Jemand gibt www.heise.de in den Browser ein und wird auf das CP umgeleitet. Ist der Primary aktiv, auf den Primary, ist der Standby aktiv, auf den Standby. Oder verstehe ich das CP falsch?
    Deciso DEC750
    People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

    Quote from: TheExpert on March 03, 2026, 06:42:31 AMOK. Aber das macht natürlich nur Sinn, wenn auch die Voucher im Cluster synchronisiert würden.
    Ich nutze CP und HA nur getrennt. Kann daher nicht sagen, ob Vouchers synchronisiert werden. Ich hätte angenommen, dass es so wäre, vorausgesetzt die Synchronisation dafür ist aktiviert.

    Quote from: TheExpert on March 03, 2026, 06:42:31 AMIch habe HTTPS für das Captive Portal noch nicht aktiviert. Wenn ich http://<IP-Adresse des HA-Knotens>:9000/ aufrufe, wird auf http://<IP-Adresse des HA-Knotens>:8000/ umgeleitet.
    Ja, richtig. Wenn kein Zertifikat eingerichtet ist, bedient 8000 http und 9000 wird dahin umgeleitet. Hatte ich soweit noch nicht untersucht.

    Quote from: Patrick M. Hausen on March 03, 2026, 08:33:17 AMEs ruft aber doch niemand das CP direkt auf. Jemand gibt www.heise.de in den Browser ein und wird auf das CP umgeleitet. Ist der Primary aktiv, auf den Primary, ist der Standby aktiv, auf den Standby. Oder verstehe ich das CP falsch?

    Ja, das Captive Portal sollte automatisch erscheinen, wenn man eine URL aufruft und noch nicht authentifiziert ist. Mir ist nur nicht klar wie das im HA-Cluster funktioniert, wenn nicht die CARP-IP des Clusters aus dem VLAN für das Captive Portal verwendet wird.

    Ich bin noch im parallelen Aufbau der OPNsense, migriere von der Sophos UTM. Das ist recht zeitaufwendig, so dass ich noch nicht sagen kann, wie das funktioniert, wenn alles mal produktiv ist.

    Quote from: viragomann on March 03, 2026, 11:29:03 AMIch nutze CP und HA nur getrennt. Kann daher nicht sagen, ob Vouchers synchronisiert werden. Ich hätte angenommen, dass es so wäre, vorausgesetzt die Synchronisation dafür ist aktiviert.

    Interessant. Du hast also ein externes Captive Portal? Was setzt Du ein? Ich wollte ja eigentlich auch beim Captive Portal meiner Grandstream Access Points bleiben, aber die Access Points funktionieren nicht ganz so, wie es sein soll und jetzt muss ich sie wg. einem angeblichen Defekt (gleich zwei Access Points mit dem gleichen Defekt lt. Support?) wieder zurückgeben und wahrscheinlich werde ich mir andere Access Points besorgen. Die haben aber meistens kein Captive Portal mit Voucher. Deshalb habe ich mir das Captive Portal der OPNsense angesehen.

    Ich hatte gemeint, ich betreibe zwar HA und CP, jedoch nicht zusammenhängend. Also auf unterschiedlichen Installationen.

    Was meinst du, was ich wo einsetze? Beim Hostnamen?
    Da verwende ich einen ebensolchen, also einen Domainnamen, der übers Public DNS auf die WAN IP der OpenSense auflöst.

    Dafür habe ich auch ein LE Zertifikat. Könnte also auch https nutzen, wenn nötig. Das ist aber auch erst im Aufbau und bislang noch nicht umfangreich getestet.

    Ich traue dem CP auf OPNsense eher als einem auf einem AP, so jedenfalls wenn der AP im LAN hängt. Damit würdest du diesem die Kontrolle überlassen, dass die Gast-Nutzer tatsächlich ausschließlich ins Internet verbinden dürfen, nicht lokal, was wahrscheinlich gewünscht ist. Das habe ich lieber auf der Firewall.

    Warum bist du so sehr von dem Gedanken besessen, dass die CARP VIP für CP genutzt werden müsste?
    Der Service steht auf beiden Nodes zur Verfügung und kann ebenso gut über die Interface IP genutzt werden.

    Die CARP VIP soll es für Services sein, die man auf den Clients fest mit einer IP konfiguriert.
    Für CP wird nichts am Client eingerichtet. Der Client versucht einfach eine Verbindung ins Internet aufzubauen. Ja, die geht auf die CARP VIP (als Upstream Gateway) und wird auf OPNsense umgeleitet auf die Interface IP. Der Client sollte damit kein Problem haben, denke ich.

    Quote from: viragomann on March 03, 2026, 07:36:10 PMWas meinst du, was ich wo einsetze? Beim Hostnamen?

    Ich meinte welches Produkt Du verwendest. Das hat Du aber im Satz zuvor beantwortet. Wenn ich Dich richtig verstehe, dann hast Du eine weitere OPNsense für das Captive Portal am laufen.

    Nein, die beiden Installationen sind an verschiedenen Standorten. Die haben nichts miteinander zu tun.

    Die Hostadresse zeigt auf die eigene WAN IP.