Something I should point out, as this post comes across a bit negative. All of those below I found to be wonderful examples of what FOSS manages to achieve and they all do have a very useful set of functionality (there were others I played with that really were quite bad and so I didn't comment on those), but none were particularly viable replacements for a firewall.
One thing i've wanted for a while (especially in the age of virtualisation) is a router/firewall combo that could produce the basics of what these devices should do. To me, if your going to build such an appliance it should be:
- Web controlled
- Under 200mb
- Be able to add and remove interfaces and configure simply
- have a single login (well, multiple users, but one user database)
- It should be able to to firewall things ( from ip, to ip, drop accept, you know)
- Routing - (I mean OSPF, BPG, RIP, etc) Protocol based routing abilities.
- VPN - either point-to-point between firewalls and/or road warrior type things.
- Load balancing - Do i really need to explain that one?
- IDS - Intrusion detection is nice when it works
- Packet accounting - Tell me how much traffic is going where and when.
- HA - a simple heartbeat failover between two routers.
- Proxy/HTTP filtering
- QOS - I want that link going slow!
- VLAN support - one interface will do me thanks!
An install for such a beast should go:
- insert cd
- Answer 3 questions -
- Which interface should I use for management?
- Whats its ip? (netmask, gateway, dns)
- What harddrive do you want to install onto?
- Go to web interface and configure the rest.
- Install "normal" distro (ubuntu, fedora, etc)
- Install webmin
Coyote/Wolverine - requires a IDE hd... seriously? what century are we in again? But really quite good
- Both have a nice simple install
- Both required you to configure a WAN and LAN interface on startup, but you couldn't choose what interface was what it just uses eth0 and eth1 - was very bizarre.
- Does a reasonable mix of things - vlans, NAT, firewall, QOS, VPN (only wolverine does VPN)
- Firewall rules are simple, but overly so, you cant get "complex".
- Seems to be a bit spurty in terms of dev - big gaps between activity.
IPCop - Sadly not too bad actually. Where it fell apart
- had to choose from a list of possible network interface config's during install (strange naming convensions) and couldn't add another interface later on (at least, not through the gui)
- Seems more interested in working for little home-router style configs
- Had to choose 3 passwords during the install, one for web admin, one for console (root) and one for backup. One password is enough thanks!
- Has the whole Red, Green, Orange, etc interface notation of last century.
- The "install" was a nightmare, and im really not sure if I made it all the way through or not
- The documentation is ... not good
- The install is so terribly convoluted it really was far FAR too complex
- The install on this one was great
- The thing is sadly still beta - but quite impressive none the less.
- The firewall interface for adding rules was heavily complex, way more then what is needed - what it could have been is simple "src ip/iprange", "dest ip/iprange", "interface - if specified", "src/dst ports" and "accept, drop, etc" with an "advanced" button for those tricky things - this is primarily what a firewall needs to do
- Does a firewall/router really need IMAP, POP, Kerberos, etc?
- Interface config was fantastic, supporting vlan's.
- Some things were complex, some things were dead straight-forward
Smoothwall - Again with IDE? But very decent.
- Required an IDE harddrive - or at least, didnt understand VMWare's SCSI harddisks.
- Based off the same IPCop install and its very annoying
- Had 4 network interfaces (choose 3 during install), couldnt add interfaces after initial install
- Has a really nice web interface
- Did alot of the "nice to haves" listed above
- Firewall rules config was great.
- Its not a firewall, its an everything.
- Based off ubunt/debian with the same installer - its HUGE. Leave aside an hour just for the install.
- Does lots of things and not really useful as simply a firewall/router replacement (i.e. filesharing, chat, dhcp, the words).
- If you want a box that does almost everything you could want on a lan, this is it.
- Not bad at all for what its aiming to be - its well worth having a play with.
- Firewall configuration interface is "annoying"
- Same annoying config as ipcop/smoothwall/etc - interface sets defined at install.
- Web interface is very complex in places.
- Its not english - or its english in places, but not enough to get whats going on.
- im sure its great if your brazilian....
- The isntallation is quite odd - you go through and setup the interfaces after booting the cdrom and you can do alot there, or you can go to the web interface - which then forces you to do it all again. I dont understand why they dont choose one of the other. forces you to configure a wan and lan interace (at a minumum) then forces you to do the same again on the website.... very bizare.
- Firewall rules border on over-complex but its still quite good.
- Web interface can be a little confusing in places - menu's could be better organised, and items could do with more text.
- Supports VPN's, Firewalling, multiple interfaces, vlan's, load balancing, rip
- All in all, its pretty complete.
Untangle - Didn't get very far
- Takes FOREVER to install
- Forces you to create an account on untangle (i didnt do this)
- uses that eternal/internal/dmz network interface config for seemingly no reason (does detect extra cards, calls them "ethx" etc which is fine by me)
- im sure its nice for someone, that someone is not me, and its not a firewall/router replacement. Its trying to be an "everything" server a soho might want.
- Install was nice and straight forward, but thats where the good times kinda ended
- After install, trying to get to the web interface was a nightmare - had to keep logging onto the console of the box and dropping its iptables - why cant i get to the interface from inside???
- Can define what "group" an interface belongs to - i.e. "internal", "external"
- Sadly, had the same idea of "incoming" and "outgoing" in that you'd say "let port 80 in" rather the allowing a useful firewall config - i.e. allow connections from a to b on port x
- Does vpn'ing and ids
- Is another "does all these things, so im really a single-box soho".
- Community edition doesnt do 1-to-1 natting (how bizare, its not like linux doesnt it do it out of the box)
- The interface was quite nice, but still not really what we're looking for in this blog post.
- Not a great install, but not bad.. The thing boots straigh to linux login prompt and you sit there going "ok, and now..?"... then you run install-system and sit there again going "ok, and now...?" - that could be done much nicer than that.
- Has both a cli and web, which is nice, the cli has obviously had some input from cisco-types. Cisco people wont immediately know how to use it though
- Has this annoying vyatta logo on the vt which means when you do something like "ifconfig -a |more" the screen pager loses the top 2 lines - frustrating!
- Runs on a NORMAL web port (i.e. port 80 and 443) with ssl. For some reason, alot of routers do not do this - dont ask me why, its very bizare.
- The web gui isnt fantastic... All things considered, i'd say the navigation of it is incredibly tedious, but the amount of required info for doing any one action is suitable.. i.e configuring an interface you have to dig down several layers of menu, then the main interface page is simple... you can then configure more things on the interface is deeper menus rather then having to do it all on one page.
- The firewall part of the interface (i.e. where you set rules) is truely horrible, your forever digging forther and further into the interface. Was the only truely tragic part of the interface really.
- The interface is very raw, like someone had an xml config file and decided to wrap a gui around it as a side-though. Like, if you go to an interface and click on "vif", all you get is a dialog that says "vif:
"... then if you type in an invalid ip address it says "this is not of type uint32"... right, good ol uint32. - Supports almost everything a router/firewall replacement should support - Firewall, vpn (multiple types), bridging, vrrp, vip's, load balancing, OSPF, RIP, BGP, clustering, ipv6, some services (proxy for eg).
- The interface does have this little yellow ball thing that tells you were you might have problems, and that was quite nice.
And that is pretty much all of them.. see now why i say standard distro + webmin is actually an improvement on most of them? the iptables interface in webmin is actually not bad at all. Its a pity too cause linux and bsd both have such strong networking backbones, with alot of support software. But if you want to replace an old router, or perhaps just add one into a testing system its either get fedora 12 or ubuntu 9.10 (or any other current distro) and hit the webmin install button, you'll be much better off really.