Version 1 (modified by rick, 12 years ago) ( diff )



Due to our strict constrains with regards to captive portals (low-memory, no-login needed, auto-update of content) we decided to make our own. The software we build WLPortal is based around 5 components:

  1. pf or ipfw firewall rules in the FreeBSD kernel.
  2. thttpd instance serving the captive portal CGI.
  3. The CGI script itself.
  4. The template files for making the entrance pretty.
  5. crontab entry to cleanup stale entries.


  1. The User get deflected to the Captive Portal by the firewall if it tries to reach an external site.
  2. The User reads the welcome pages and clicks OK.
  3. The MAC/IP of the device of the user gets whitelisted in the firewalll.
  4. The User get redirected to the specified website ( by default).
  5. The crontab entry deletes the user if he/she has been idle too long.

Template configurations

Note: this only holds true for nodes build in the iris-releng-9.0-ileiden branch, build after r10249 | rick | 2012-03-19 19:06:36 +0100 (Mon, 19 Mar 2012)

Warning: Make sure to only alter the cosmetics of the file and not the technical structure of the forms or submit url.

You can edit the config file at /usr/local/etc/wlportal/login.tmpl, please do mind that this file get lost after an reboot. If you like to store the edited file on a persistent place, make sure to place it at /cfg/local/wlportal/login.tmpl.

Note: See TracWiki for help on using the wiki.