Let me just say first off that I'm not a ChilliSpot expert, but I've been using the system for about 2 years now. Hopefully my input is helpful.
I see your firewall script is the default included with ChilliSpot, except for the PREROUTING lines. These make sense since you're running your web server on port 8080. As far as I can tell, this configuration should be preventing all but authenticated users from gaining access. That is unless there's an issue with your FreeRADIUS configuration. I know this sounds obvious, but have you tried authenticating from a test client with a bad username and/or password, to check this part of the setup?
One possibility is that your uamsecret password is insecure. Is it shorter than 16 characters or does it include dictionary words? This part of a ChilliSpot setup is open to a dictionary attack with an insecure uamsecret password, due to the nature of the CHAP protocol. (See the ChilliSpot FAQ entry: "http://www.chillispot.info/FAQ.html#mozTocId967226".) Also, if this password is as short as 6 characters, even if random, it can easily be brute-forced. It's possible this unauthenticated user has used a dictionary or brute-force attack to determine this password and gain access. This is just a guess. I'd recommend using a password greater than 16 characters and preferably random, if you're not already.
Another possibility that came to mind does involve the firewall. Is your firewall script set up to run on server startup, or do you have to run it manually? If the latter, it's possible your firewall has opened up due to a server reboot. Many Linux distros have a default iptables policy that allows all traffic through on the INPUT, OUTPUT & FORWARD chains, and this would be in effect in that case.
Good luck with tracking this down.
Does anyone else see a problem with this configuration that could have let an unauthorized user through? Another set of eyes would be helpful.
Regards,
Will