elsewhere in the forum there is another similar thread... keep in mind that firehol and shorewall are just front ends to iptables(8), the kernel packet filter.
there are plenty of example iptables scripts out there, and it really does give you almost infinite flexibility (within the scope of iptables of course).
Oskar Andreasson's tutorial is one of the best I have seen, and as long as you have a basic knowledge of tcp/ip, you can follow along.
And just remember, if you break it, you've got LiSH to save the day.