Kattive is a captive portal with an interesting interface, written in Perl and completely Web-based. It interacts with iptables or whatever you want. It's template-based.
It works as a transparent rule activator and as an Internet Point interface. It has many features like schools/classes administration. If used in a hotel, you can count the time for billing.