1. They're expensive
2. Any of the worth while units need some form of expensive subscription (think UTM's / Spam filters)
3. I can't change them in any meaningful way.
So, I finally broke down and started building my own. My first appliance was a new Router / UTM. I wanted to stop as many issues at the UTM as possible so, here's what my requirements were:
1. Gateway Anti-virus
2. IDS/IPS
3. Gateway Anti-Spam
4. Logging/Content filtering Proxy
5. Updatable RBL's w/ custom Blacklist support
6. NAT and Port Forwarding
**I just added this next one**
7. GeoIP blocking
8. An easy to use interface
Endian Community Edition does everything on the list except the GeoIP blocking. So, that is a great distro if you need something quick and dirty that has an easy install, great interface, and is rock solid! I needed the GeoIP blocking and like the title says - I was re-purposing an old Barracuda Spam filter. The barracuda unit has a specialized board that controls the front panel Ethernet ports! The second you remove their O/S - the ports quit working! A little Internet research yielded that the front board is actually controlled by the parallel port. This isn't a big deal with any linux distro except Endian as it is a cut version of CentOS 5 and doesn't have any compiling tools or packages for parallel port control.
** Correction: It may be possible to compile lptout on a CentOS 5 machine and copy it to the Endian unit!
I ended up finally settling on NethServer and CentOS 6.8. I tried 7 but the HC isn't there and the network cards don't work. Additionally NethServer 7 doesn't have all the packages I needed (just like pFsense **sigh**) so, that was a bust. I ended up with CentOS 6.8 / NethServer 6.7 and it's running like a champ! Here's the process for a Barracuda 300/400 series:
1. Rip open the Barracuda and see which motherboard it has.
2. Go to MSI's website and grab the BIOS update for the motherboard
3. Create a DOS / bootable USB stick and put the BIOS upgrade software on it.
4. Grab yourself a copy of their BIOS passwords from here
5. Go into the BIOS and fix the boot options so that you can update the BIOS with the generic version you downloaded.
6. Create a CentOS USB Stick and use it to install the OS on your "new" UTM
7. You'll need to use the onboard NIC or if it doesn't have one just pop open the cover and unplug one of the NICs from the control board and plug in the Ethernet cable directly. Then follow these CentOS network setup instructions for your LAN connection.
** Note: I also purchased a Quad Server PCI-e x8 card and a PCI-e 8x Extension cable from ebay. These units have a slot in the back and it works like a champ! Just verify yours is new enough - otherwise you'll have to drop back to PCI if you need more ports.
** Only follow steps 8 - 9 If you have a unit with non-working front Ethernet ports and the funny control board. If you don't then skip ahead to Step 10. **
8. Follow these instructions to get the lptout program
9. After you have lptout compiled and tested (chmod +x lptout | lptout 0x3f should turn the ports on), do the following:
mkdir /scripts
cp lptout /scripts
chmod +x /scripts/lptout
echo /scripts/lptout 37f >>/etc/rc.d/rc.local
echo service network restart >>/etc/rc.d/rc.local
** Note: you may need to re-add the lptout and network restart after you install NethServer
10. Follow these NethServer Install Instructions
** Note: Skip down to the Install on Centos Section - Also, Substitute /nethserver-release-6.7.rpm instead of just nethserver-release-6.rpm
11. Install all the packages you need
12. Follow these instructions for adding the GeoIP stuff
Note: Scroll down through the comments section and follow the steps for fixing the Kernel module. Also, You'll need to add the extended config file in the /etc/e-smith/templates/etc/shorewall/rules - not the folder specified in the instructions. You can use expanded config files for almost everything in NethServer - I added a couple of squid rules too!
13. Optional - Kill IPv6 via these instructions. I had to do this to keep my connections working consistently.
That should get you a perfectly working UTM that'll smoke most commercial units! Good luck and as always - Google is your bff for this stuff.
--PD