If you want all that you could get your hands dirty and do the whole thing on one PC with FreeBSD or Ubuntu. The book
Absolute BSD will take you through getting all that you want up and running.
One of m0n0wall's strengths is that it is a very focused project. It does a small set of things very very well.