4 open source firewall/router projects, incl pfSense and m0n0wall

LinuxPlanet has a post with some background information of 4 great open source firewall/router projects. Two are Linux-based (endian and smoothwall) and the other two are based on FreeBSD (m0n0wall and pfSense):

pfSense

pfSense is a customized distribution of FreeBSD. It actually started in 2004 as a fork of the m0n0wallproject. However, it concentrates more towards full PC installations, where m0n0wall is more towards embedded hardware.

pfSense can be considered as a popular package, as it has more than 1 million downloads. It can be used in homes or in large corporations and organizations. It’s available as a Live CD, hard drive installation, or embedded.

pfSense has low system requirements; 100 MHz Pentium CPU and 128 MBs of RAM. The Live CD requires a CD-ROM drive and a USB flash drive or floppy drive for storing the configuration file. The hard drive installation requires a CD-ROM for the initial installation and at least 1 GB hard drive. The embedded version requires a serial port for console and at least a 128 MB Compact Flash card.

pfSense, of course, includes a powerful firewall, including the ability to filter based upon the passively detected operating system. Its state table can be finely customized. It can do Network Address Translation (NAT) and load balancing of multiple WAN connections. It has a DHCP server and relay functionality.

Other important features include redundancy and synchronization, captive portal, and the support of three VPN solutions: IPsec, OpenVPN, and PPTP.

pfSense includes great reporting and monitoring features. RRC graphs show historical values of CPU utilization, firewall states, throughput, and more. There are also SVG graphs showing the real-time throughput of interfaces.

m0n0wall

m0n0wall is also based from FreeBSD. This firewall project is designed for use with embedded x86-based PCs. However, it is possible to run m0n0wall on most standard desktop PCs.

m0n0wall officially supports the embedded net48xx/net55xx systems from Soekris Engineering and the ALIX platform from PC Engines. It requires at least a 16 MB Compact Flash (CF) card and they recommend using at least 64 MBs of RAM.

Getting m0n0wall running on an embedded system just takes downloading an image and writing it to a CF card. For desktop PCs, you can be write a disk image to a small IDE hard drive or CF card, or use the CD-ROM and floppy disk version. A VMware image is also available.

The entire system configuration is conveniently stored in one single XML text file, eliminating multiple text files parsed in a shell script. m0n0wall can completely boot up in less than 25 seconds after hitting the power button. On embedded platforms it provides a WAN to LAN TCP throughput of more than 50 Mbps (including NAT), and with newer PCs you can see 100+ Mbps.

The firewall provides stateful packet filtering and supports Network Address Translation (NAT). It also features a DHCP server and relay support. It supports VLANs and IPsec and PPTP VPNs. It even features wireless support for certain chipsets to create an access point (AP).

Other important features include a captive portal, SVG-based traffic graphing, SNMP agent, DynDNS client, and Wake on LAN client.” (full article)

Great to see the attention given by LinuxPlanet to FreeBSD based router/firewall projects. It would be nice if this was followed up by an in-depth review, comparison and benchmarking to help users decide which of the four is the best for their particular need.

PC-BSD Q&A in this Week’s DistroWatch Issue

Jesse Smith from DistroWatch recently asked DistroWatch readers to submit questions about PC-BSD.  The questions, with Dru Lavigne’s answers, can be read in this week’s issue of Distrowatch.

The questions asked were:

  • What is your opinion on the differences between the BSD license and the GPL, and how it works for how BSD does things? Why would a developer choose a license which allows a commercial entity to use their code and make money from it without giving anything back (i.e. OS X)?
  • Going back to the basics, it’d be interesting to know why one might choose a BSD operating system over a Linux distro, and vice versa. What is/are the core function(s) of BSD, and what sets it apart from Linux (other than the different licensing schemes)?
  • What are some of the philosophical differences between the BSD kernel and Linux kernel coders? And can things like drivers be shared between the two camps?
  • Could you please compare and contrast BSD Ports and Linux package management?
  • I would appreciate hearing your insight into the Oracle/Google lawsuit, Java and patent issues. I would also love to hear about your perspective on some of the new upstart BSD distros that include installers and GNOME/KDE (PC-BSD, GhostBSD, GNOBSD).
  • I would love to try a BSD distro, and I like the look of PC-BSD, but I don’t want to download the large DVD image. Are there plans for a live CD edition any time soon? Perhaps one with Xfce or LXDE instead of KDE?
  • It is already possible to install ZFS from the GUI installer of PC-BSD. In fact I was able to establish a functioning mirrored “rootpool” using the installer with a minimum of fuss. The problem is that there is no default (suggested) file system layout that is specifically tailored to zpools (like there is in OpenSolaris) and you have to create your own, unlike the default (or suggested) UFS layout provided by the PC-BSD installer. This puts a premium on user knowledge. So I was wondering if future installers will have an even more “user-friendly” approach to ZFS installation, where ideal partition layouts are recommended by the installer?
  • Will there be any attempt to improve on the power and flexibility of the BTX bootloader that PC-BSD uses? Is it even conceivable that PC-BSD might incorporate GRUB 2? Right now it is supposed to be possible to install GRUB on PC-BSD, but I think people have had a lot trouble doing this, with GRUB 2 at any rate.
  • I’ve tried to install PC-BSD, but if it’s not video issues on my new machine it’s boot issues on the old one. What can a relative computer Luddite like myself (who’ll try something but probably never dig that deep into getting it to work) do to encourage better hardware compatibility on future releases?
  • I have been using PC-BSD and plain FreeBSD (with KDE) for quite a while. With FreeBSD you have the option of using it in “rolling-release style” by upgrading your ports on a regular basis. But you can restrict your port upgrades and just upgrade those ports that have security vulnerabilities if you like. Just run portaudit and it will tell you what needs upgrading. Now, as you know, PC-BSD is not a rolling release (unless you use the ports system with it and want to constantly upgrade). But I have noticed that the number of “system updates” in PC-BSD are very few and far between. They seem even fewer then just the security patches provided by FreeBSD (i.e. the portupgrades applied only to the vulnerable ports). So my question is, in light of these fewer system updates, is PC-BSD more insecure then FreeBSD? (I am assuming that one is not using the ports system with PC-BSD.) I realize that a lot of the vulnerabilities that portaudit reports are only relevant if you are using a server, but this is not universally true, and I can’t shake the feeling that PC-BSD is significantly behind the curve when it comes to providing package updates that eliminate security problems. If PC-BSD has a flaw relative to FreeBSD (or most Linux distros) this might be it.
  • Is there anything else you’d like to add about the PC-BSD project or BSD in general?

Read the answers: Interview (by Jesse Smith)

FreeNAS 8 alpha snapshot ready for testing

Warner Losh from iXsystems announced the availability of a FreeNAS 8 alpha build today.

The iXsystems engineering team has moderized FreeNAS in a number of ways. We wanted a platform that was more extensible than the current m0m0wall-based framework allowed. We wanted to create a platform that could be expandable by modules (possibly not even written by us). We wanted to make it easier to upgrade the base FreeBSD release, as well as leverage more base FreeBSD technology that has been integrated into the system since FreeNAS was originally developed.

We’ve migrated the build to be NanoBSD based. This allows us to leverage the embedded work that has gone into NanoBSD. It also allows us to push some of the features that are important to FreeNAS back into the base FreeBSD distribution. NanoBSD gives us the flexibility that we need. Since we’re using the FreeBSD package system to add ports and packages, users will be able to add their own packages (we’ll likely expand the basics to use the PBI’s that PC-BSD produces for ease of installation). We’re using the normal rc.d system, so upgrading is easier as well. etc

It has taken some time to come to these builds but iXsystems has been working hard to move FreeNAS from a m0n0wall base to a nanoBSD base. This will upgrading the underlying FreeBSD base system go smoother, and the new design makes development of plugins easier. Imagine FreeNAS with the ability to import PBI plugins and updates. That would be cool.

Olivier as put some screenshots on the FreeNAS blog, including some hints on how to set the the disk(s) and services.

Happy testing.

FreeNAS is an embedded open source NAS (Network-Attached Storage) distribution based on FreeBSD, supporting the following protocols: CIFS (samba), FTP, NFS, TFTP, AFP, RSYNC, Unison, iSCSI (initiator and target) and UPnP. It supports Software RAID (0,1,5), ZFS, disk encryption, S.M.A.R.T/email monitoring with a WEB configuration interface

FreeBSD quick news and links (week 35)

Some FreeBSD related links and updates below:

New NVidia FreeBSD drivers 256.53

NVidia has updated its graphics drivers for FreeBSD. Some of the changes are:

  • Fixed a bug that prevented XvMC from initializing in most cases.
  • Added support for xorg-server video driver ABI version 8, which will be included in the upcoming xorg-server-1.9 series of releases.
  • Fixed a bug that caused extremely slow rendering of OpenGL applications on X screens other than screen 0 when using a compositing manager.
  • Fixed a regression introduced after 256.35 that caused stability problems on GPUs such as GeForce GT 240.
  • Fixed a slow kernel virtual address space leak observed whenstarting and stopping OpenGL, CUDA, or VDPAU applications.
  • Fixed a bug that left the system susceptible to hangs when running two or more VDPAU applications simultaneously.

BSD License Generator

One shouldn’t have to change too much text when adapting the BSD license, but for the lazy there a BSD License Generator.

Benchmarking HAProxy – Ubuntu vs FreeBSD

“HAProxy on Ubuntu, or HAProxy on FreeBSD? I couldn’t find any real benchmarks comparing the two out in the wild, so I decided to do my own.”

More: Benchmarking HAProxy – Ubuntu vs FreeBSD

Installing pfSense on a Nokia IP120 firewall

“I was recently toying with an old Nokia IP120 firewall and discovered that pfSense would run quite well on this old hardware.”

Here’s how to do it: Installing pfSense on a Nokia IP120 firewall

FreeBSD Stable Release Install Guide

There’s already the excellent FreeBSD Handbook, but here and there you can find other useful guides, for instance the FreeBSD Stable Release Install Guide.

Up to date, Step by Step, How-To, Instructional Guide to Installing FreeBSD from scratch, Specifically written with background information covering the why and how the different components are used together to create a home or small enterprise network for the new-be and inexperienced FreeBSD computer hobbyist. Not a General reference type of document, but a true learning aid containing details unique to the stable version of FreeBSD your installing: a1poweruser.com

The history of Unix on the PC: Exploring lesser-known variants

“When someone discusses the Unix operating system on a PC, many modern computer users think of Linux, a Unix work-alike first released by Linus Torvalds in 1991. Linux is a relative newcomer to the field; Unix and Unix-like operating systems have been released for Intel x86-based systems as far back as 1979. This article covers some lesser-known Unix variants for IBM PC-compatible systems, both those that survive today and the ones that were not long-lived or commercially successful:

The history of Unix on the PC: Exploring lesser-known variants

Bordeaux 2.0.8 for FreeBSD and PC-BSD released

The Bordeaux Technology Group released Bordeaux 2.0.8 for FreeBSD and PC-BSD today. Bordeaux 2.0.8 is a maintenance release that fixes a number of small bugs. With this release firefox and winetricks have been updated

Bordeaux 2.0.8 was built on FreeBSD 8, PC-BSD 8 and PC-BSD 7.1  A .sh installer is provided for FreeBSD and a .pbi installer for PC-BSD

Depending on sales, Bordeaux Software plans to add Pulse Audio to the next major BSD release. So if you would like to have Pulse Audio in Wine on FreeBSD and PC-BSD make a purchase. Help spread the word!

Full post: Bordeaux 2.0.8 for FreeBSD and PC-BSD Released

Purchase Bordeaux and help support Wineconf 2010 and FreeBSD

By purchasing Bordeaux you support further development of Bordeaux, but this month you will also indirectly support the FreeBSD Foundation as part of the revenues are shared: Purchase Bordeaux and help FreeBSD

PC-BSD 8.1 review by linuxbsdos

linuxbsdos has a fairly positive review of PC-BSD 8.1, though there is still room for improvement:

“PC-BSD 8.1 was released on July 20, 2010, roughly five months after version 8.0 was released. Some of the suggestions made in the review of PC-BSD 8.0 have been carried out in this latest release. In fact, the changes were made within one month of that review being published. It is an encouraging example of how some distro developers respond to suggestions (or critical reviews).

While I still think that PC-BSD is not yet ready for the masses, it is coming along very well. This review will offer another detailed look at some of the good and bad sides of this FreeBSD-based distribution, with the attendant recommendations and suggestions for improvement.

Let me begin by looking at the bright side of this distribution…. ”

Read more: PC-BSD 8.1 review

iXsystems’ FreeNAS 0.8 development snapshot

Back in December 2009 iXsystems ‘resued‘ the FreeNAS project. After a few months of porting over FreeNAS from a m0n0wall base to a nanobsd base, iXsystems released a development snapshot yesterday.

Yesterday, iXsystems upload a snapshot of their new FreeNAS release on the SVN.
The new FreeNAS is based on nanoBSD, then here are all the steps for generate the disk image of this release (from a FreeBSD 8.1 amd64).

Remember, this build is for developers and testing purposes only, as this snapshot  is not functionally complete yet, and there are likely many rough edges, bugs and problems.

To run and test this build, the instructions can be found in the readme file.

Read the whole post: iXsystems’ FreeNAS snapshot

FreeBSD events and conferences (KyivBSD, MeetBSD, EuroBSD)

Here is some info and details of upcoming FreeBSD related conferences and events.

KyivBSD 2010 Conference

On 25 Septempter the annual KyivBSD Conference will be held in Kiev, Ukraine. It’s mainly aimed at FreeBSD and PC-BSD users and developers.

More info: http://ru.kyivbsd.org.ua (RU) (EN translation) (via)

BSD-Day 2010

BSD-Day@2010 will be held at Eötvös Loránd University, Budapest, Hungary on 20 November 2010.

The purpose of this one-day event is to gather Central European developers of today’s open-source BSD systems, popularize their work, and provide a real-life communication interface between developers and users. There are no formalities, no papers, and no registration or participation fee, however the invited developers are encouraged to give a talk on their favorite BSD-related topic. The goal is to motivate potential future developers and users, especially undergraduate university students to work with BSD systems.

EuroBSDCon 2010 Travel Grants

The FreeBSD Foundation is now accepting travel grant applications for EuroBSDCon 2010 (Karlsruhe, Germany from October 8-10′. More details: EuroBSDCon 2010 Travel Grants.

For those interested in open source firewalls, there will be a pfSense tuturial at EuroBSDCon 2010.

pfSense is a free, open source customized distribution of FreeBSD tailored for use as a firewall and router. In addition to being a powerful, flexible firewalling and routing platform, it includes a long list of related features and a package system allowing further expandability without adding bloat and potential security vulnerabilities to the base distribution.

MeetBSD 2010 (California)

Registration is now open for MeetBSD 2010 (Mountain View, California, 5-6 November): www.meetbsd.com

NYCBUG presentation

Ivan Ivanov presented “Examples in Cryptography with OpenSSL”. Download/listen the MP3.

Usenix Security Symposium 2010 (Capsicum)

Robert Watson will present Capsicum (coming in FreeBSD 9.0) at Usenix Security Symposium.

Capsicum is a lightweight operating system capability and sandbox framework planned for inclusion in FreeBSD 9. Capsicum extends, rather than replaces, UNIX APIs, providing new kernel primitives (sandboxed capability mode and capabilities) and a userspace sandbox API. These tools support compartmentalisation of monolithic UNIX applications into logical applications, an increasingly common goal supported poorly by discretionary and mandatory access control. We demonstrate our approach by adapting core FreeBSD utilities and Google’s Chromium web browser to use Capsicum primitives, and compare the complexity and robustness of Capsicum with other sandboxing techniques.

These and other conferences can be found on my FreeBSD Events and Conferences Calandar.