Yesterday I installed OpenWRT on a Linksys WRT54GS while evaluating some technology for a potential client. After exploiting an overflow in Ping.asp I had
boot_wait set to on and was tftping White Russian RC3 to the box.
A few minutes later the WRT54GS began behaving like a router again and I SSHed in to it. I quickly ran
ipkg update and ipkg
install NoCatSplash. After that I edited
/etc/nocat.conf and the splash page HTML. Finally some NVRAM tweaks (don’t forget
nvram commit when you’re done) and a reboot and a cheap hunk of plastic was up to customer spec with a custom splash page including T&C and AUP agreement.
In the process of installing and configuring OpenWRT I was amazed at the quality and depth of the wikified OpenWRT documentation. OpenWRT also works on a wide range of newer hardware including a WRT54GS 2.1 that was purchased a few months ago and a WRT54 3.0 that a friend purchased not long ago. See TableOfHardware for a complete list of compatible hardware.
After such a positive experience yesterday I plopped OpenWRT on my WRT54G at home. It kept most of the settings from the NVRAM, I just had to tweak the SSID and some wireless settings before I could get back online via wi-fi.
If you want to enable SSH from the WAN port, just uncomment two lines in
/etc/firewall.user. I’ve also set up my box to update its clock via NTP by using these instructions. It also looks rather trivial to set up cron jobs.
I feel stupid for not installing OpenWRT sooner, as I’ve obviously been missing out on the fun for quite some time. The project has improved an amazing amount since I last looked at it. Now I feel like grabbing newer hardware with more storage space and hacking the crap out of it!
Update: There’s something satisfying about updating your firewall rules via SSH, hupping
/etc/init.d/S45firewall and having everything behave as it should.