My m0n0wall build (AKA monowall)

RogerX

Limp Gawd
Joined
Aug 2, 2004
Messages
212
Just wanted to toss this out there in case anyone was considering a build for themselves... it's an email I sent my friends, so I apologize for the "dumbed-down" nature! :)

I completed a networking project over the weekend that I thought you would be interested in. (I ended the sentence in a preposition. Sorry!)

I was having problems with my two broadband NAT Firewall/Router units. One has QoS to protect my Vonage VOIP traffic, but locked up every couple of hours. The other was a cheap, old Netgear which was stable but offtered no QoS, so my phone calls would get choppy or drop. I ended up building my own firewall with parts laying around my house and the free software found at http://m0n0.ch/wall/

I used:

* Old BabyAT motherboard with a Pentium 233MMX processor and 80MB memory (at least a Pentium 150 and 64megs memory is required, anything more is overkill)
* Old ATX power supply (board supports AT or ATX PSU)
* Two PCI NICs on the supported list at http://www.freebsd.org/releases/4.11R/hardware-i386.html - You can add more NICs if you want multiple LAN segments
* 8MB (or larger, but extra space is not used) Compact Flash card and CF->IDE adapter, or alternately any small IDE hard drive (diskless CF-based is fast and silent!)
* Keyboard, monitor, and video card to set up system (I used an old ISA video card)

I used the tools and disk images provided at http://m0n0.ch/wall/ (Generic PC image for Compact Flash) to flash the card, plugged it in, booted the system (embedded version of FreeBSD), detected the NICs for WAN and LAN interface, and rebooted. I then accessed the machine across the LAN interface through my web browser and was able to configure it. Just plugged my cable modem into the NIC that I identified as WAN, my switch into the LAN interface, and it was running. If you set the PC BIOS to ignore keyboard and video errors, you can disconnect the keyboard and video until you need console access again (hopefully never. :)

It's extremely easy to use the GUI to set up protected pipes and queues, set up multiple LAN segments (bridged or isolated), set up port forwarding, and all sorts of other firewall rules. At full tilt on my 6 megabit cable connection, I am using about 30 megabytes of memory and 20-30% of my 233MHz CPU. While I am using "all" of the bandwidth, I can still pick up the phone and make crystal clear phone calls, thanks to bandwidth prioritzation.

Since Pentium-class PCs and PCI NICs are a dime a dozen anymore, and a CF->IDE adapter is only a few dollars on eBay, you can put together a diskless system for under $40 that performs well better than any consumer-class hardware router out there (in my experience anyway). It's available anywhere on your LAN via a web browser, with multiple access control options. The only downside for me is the relative side compared to an integrated NAT device, but at least it's quiet and can use passive cooling. You can check out screenshots of the various m0n0wall functions here: http://m0n0.ch/wall/screenshots.php

Sorry for the lengthy and over-enthusiastic product endorsement, but this project was extremely easy to implement and the results have been astounding. Finally, some of the "really old junk" in my basement put to effective use! :)
---

Caveat: I did spend a couple of hours clearning up some hardware conflicts. I went through about 9 NICs before I found four that worked and allowed the system to boot and monowall to see them all at once. I ended up with 4 NICs, two as disabled "Optional" interfaces, but to get there I had to use an ISA video card, disable the secondary IDE, COM, and LPT ports on the motherboard to free up IRQs, and shuffle NICs until PnP allowed them all to get what they wanted. Now I'm very happy with the setup. If anyone wants a pic of the hardware, I will be happy to take one. Thanks!
 
Been using m0n0wall for a couple of year (since pb4) for both work and home. I love it. Just make sure you donate to keep the project alive.
 
I was just thinking that. Next paypal deposit i get, a chunk is going to them!
 
I tried IPCop and pfsense a few months ago. I believe IPCop is built on top of m0n0wall. Took an old small form factor Deskpro EN with a P3 833 or 866MHz or something, 256 megs of RAM. Onboard Intel NIC, slapped in a 3COM 905 for my secondary NIC.

Gave IPCop a whirl first. Easy install, setup, ran fine. Ran toe to toe with my Linksys RV082 router when it came to speedwise...allowing me to burst into the 60,000 range with Comcasts PowerBoost. Then downloaded and installed Copfilter..which adds proxy filtering, spamassasin, and clam antivirus scanning. Slowed down a bit when I had that enabled, consumed the RAM also. The adblocking feature doesn't work so well though...too many things don't show up correctly, especially forum related.

Tried pfsense after that...web admin looked a lot better...much richer QoS features.

Then stumbled across an Evo 510 small form factory...Pentium 4 2.4GHz with 512 megs. Intel chipset, same onboard Intel NIC as the EN...so I transferred my IPCop hard drive over from the older EN model...ran right off the bat.
 
YeOldeStonecat said:
I believe IPCop is built on top of m0n0wall.
IIRC, that's not quite right. IPCop is a fork from SmoothWall. I think the guy who does m0n0 used to work on IPCop or something. I could be way off on that last one though...
 
cool beans on utilitzing old hardware to get a better working setup for you

I use Smoothwall Express 2.0 with many mods installed at both work and home personally..that dont really matter tho ... it's making use of "extra" stuff and having fun doing it that counts
:)

 
wow guys another great post :D

i just found FreeNAS
so i have 3 64mbit flash cards and ordering in three ide adaptors. now i need to find a good free device i can use as a router. or willt his workd like a router if i wanna run a few things?

i have a 360 i'd liket or un pretty much outside any firewall but still accessiblef rom other pc's on my network?
 
MorfiusX said:
IIRC, that's not quite right. IPCop is a fork from SmoothWall. I think the guy who does m0n0 used to work on IPCop or something. I could be way off on that last one though...

My curiosity lead to some Googleing...which I found this...so I guess it "was" related some time ago..but no longer.

"Main Differences between Smoothwall and IPCop
IPCop is a complete Linux Distribution with a dedicated porpose (To run
a machine as a firewall).
Smoothwall is a Firewall program that must run on an existing Linux
Distribution.

As to the Firewall software itself. IPCop uses Shorewall (Shoreline
Firewall) which is a fork from Smoothwall c2001. The Smoothwall guy was
getting into hot water with his customers because of a bad attitude
which forced the fork. Until recently IPCop was running some other
software (Possibly Smoothwall)."
 
YeOldeStonecat said:
"Main Differences between Smoothwall and IPCop
IPCop is a complete Linux Distribution with a dedicated porpose (To run
a machine as a firewall).
Smoothwall is a Firewall program that must run on an existing Linux
Distribution.

That last quote is not true. Smoothwall (at least the GPL'd Express version) is also a complete Linux distribution for running a machine as a dedicated firewall. I'm not sure about how the commercial Smoothwall solution is made, though. Smoothwall Express and IPCop used to be almost identical in terms of features a few years ago.
 
and pfSense is a fork of m0n0 :) rc1 of pfSense was released earlier this month for those that are interested.
 
I built a monowall box out of a K6-II 500mhz I found in my friends motorhome. Though I have yet to figure out how to set up the thing, I plan on stess-testing it and seeing how it holds out to routing between two LAN segments. Probably wouldnt be too bad if I didnt have crappy NICs.
 
I can't complain 'bout my ipcop. Been running solid for around 6 months now, powering a GigE network.
 
I have two crappy NICs (Realtek and VIA) and two decent NICs (older 3com and Intel), and they all were detected and seem to work fine. As long as the chipset is on the list I linked in the starter post, it should work fine! :)
 
Was it easy to setup bandwidth prioritization in monowall? If so, where where did you look at for good documentation on it?
 
i got monowall running on my 400~mhz p2/256mb system.

using CD/floppy mode. despite claims that this may kill cd/floppy drive life, untrue, it only ever touches them on boot and is in memory from there on.
 
YeOldeStonecat said:
I tried IPCop and pfsense a few months ago. I believe IPCop is built on top of m0n0wall. Took an old small form factor Deskpro EN with a P3 833 or 866MHz or something, 256 megs of RAM. Onboard Intel NIC, slapped in a 3COM 905 for my secondary NIC.

Gave IPCop a whirl first. Easy install, setup, ran fine. Ran toe to toe with my Linksys RV082 router when it came to speedwise...allowing me to burst into the 60,000 range with Comcasts PowerBoost. Then downloaded and installed Copfilter..which adds proxy filtering, spamassasin, and clam antivirus scanning. Slowed down a bit when I had that enabled, consumed the RAM also. The adblocking feature doesn't work so well though...too many things don't show up correctly, especially forum related.

Tried pfsense after that...web admin looked a lot better...much richer QoS features.

Then stumbled across an Evo 510 small form factory...Pentium 4 2.4GHz with 512 megs. Intel chipset, same onboard Intel NIC as the EN...so I transferred my IPCop hard drive over from the older EN model...ran right off the bat.

I also run IPCop with copfilter. Spam assassin works extemely well to keep spam of my Exchange server. Copfilter really likes to have atleast 384+ mb of ram, or it tends to choke. I am running mine on a 1.4ghz Celeron with 512mb ram and got no slowdowns with copfilter.
 
About bandwidth allocation:

The how-to on m0n0.ch showed me how to set up protected bandwidth in about 30 seconds. It's extremely straightforward, first you set up the pips and what prioritization they get, then you set up the queues for which traffic goes on which pipe. Easy as pie. :)
 
Back
Top