OPNSense: Captive Portal per API steuern (reloaded + HowTo)

Hallo in die Runde.
Ich mache mal einen neuen Thread auf, damit das Thema nicht irgendwo an 5126136. Stelle verschwindet.

Während unseres produktiven Wochenendes In Essen war ich unter anderem damit beschäftigt, unser Captive Portal auf die OPNSense umziehen zu lassen. Die Hintergründe dazu wurden schon vor längerer Zeit in diesen Threads diskutiert:

Es ist so: Wir betreiben unser Captive Portal so, dass der Zugriff sowohl mit freeRADIUS über den v7-Server oder wahlweise auch per Voucher möglich ist.

Dazu hatte @frithjof bereits im März '19 unter dem oben verlinkten Thread ein paar Scripte veröffentlicht, mit denen er die Voucher-Verwaltung auf der OPNSense per API steuert. Genau diese Scripte habe ich mir nochmal genauer angesehen und an unsere Verhältnisse angepasst.

Ich habe gerade alles neu zusammengestellt und ein 00_so_gehts.txt mit dazu gepackt. Nun regelt ein Cronjob auf dem v7-Server alles weitere: Zu vorgegebenen Zeiten wird immer ein aktuelles Voucher erzeugt und per rsync auf den moodle-Server hochgeladen. Dort finden alle LuL den Link im Kurs „Lehrerzimmer“ und können den gerade gültigen Code bei Bedarf an die Klasse herausgeben. Alternativ kann man das gerade gültige Voucher auch einfach in ein Samba-Share auf den v7-Server kopieren … da sind der Phantasie fast keine Grenzen gesetzt :slight_smile:

Wie immer gilt: Wer die Scripte gebrauchen kann: Bitte sehr → OPNSense_Voucher_API.zip (10,2 KB)

Ich übernehme selbstverständlich keinerlei Gewährleistung, wenn etwas schief geht. Programmiertechnisch ist auch sicher noch Luft nach oben … aber hey – "works for me!" :wink:

Und soviel kann ich verraten: Seitdem wir vom Unifi-Captive-Portal auf das OPNSense-Captive-Portal umgestellt haben, gibt es keinerlei Probleme mehr! Das Portal wird zuverlässig und fehlerfrei auf allen Geräteklassen geladen und die Anmeldung funktioniert tadellos (sofern man sich nicht vertippt hat).

Viele Grüße,
Michael

5 „Gefällt mir“

Hallo Michael!

Danke für dein Script, dafür von mir ein :heart: .
Wäre schön, wenn du das ins Community-Wiki übertragen könntest, denn dann geht es bestimmt nicht unter. :slight_smile:

Beste Grüße

Thorsten

PS: Mein Post bringt nicht die Lösung, sondern dient nur dazu den Thread als gelöst zu markieren.