Technology from the trenches

Fixing Leopard’s Firewall

Leopard Apple’s new Mac OS X 10.5 operating system, a.k.a. “Leopard”, ships with not one, but two firewalls. By default, however, both of them are disabled, leaving it up to the user to secure their own systems. Some security experts have said that this move is a big step backwards for Apple, and I have to agree.

The new firewall in Leopard is what Apple calls an “Application Firewall”. It is configured in the Security pane of System Preferences, but as Heise points out, the GUI does not accurately reflect what is actually blocked and what isn’t. Here is the description of this new firewall from the manual that ships with 10.5 server:

This firewall is called an application firewall because it accepts or denies an incoming connection based on the particular application, service, or other software module that is trying to accept the connection. This firewall doesn’t control outgoing network traffic.

Thankfully, ipfw, the trustworthy IP firewall that came with 10.4 (Tiger), is still included with Leopard server and client. You can use it to selectively block or allow incoming or outgoing network traffic based on rules that you define. I recommend that Leopard users disable the new application firewall in the Security Preference pane, and configure ipfw according to their needs.

There is a free GUI program for configuring ipfw: the strangely named, WaterRoof. It comes with some basic predefined firewall rulesets, and makes it easy to add your own rules to customize them to suit your needs. Apple has helpfully published a list of well known TCP and UDP ports used by their products, to aid you in customizing your firewall rules. Since ipfw is open source software, and has been around for decades, there is plenty of documentation for it online.

I’m running Leopard on my laptop, and most of the time I’m not running any services on it. I do however need to allow some traffic, such as DHCP (my IP address constantly changes depending on my location) and I need a bunch of ports open to allow video conferencing with iChat. If you’re in a similar situation, you might find my ipfw rules useful. You can import the rules from WaterRoof’s Tools menu -> Rules Configuration -> Import rules from file.

Let me know if you find this article helpful, or have any questions!

Tags: , , , , ,

2 Responses to “Fixing Leopard’s Firewall”

  1. lance Says:

    hi- So, now I can have app-level FW, ipfw, and hardware firewall. Three is better than two, so maybe this is a step up? Tiger/Client firewall UI was always a dog when compared to the UI in Tiger/Server. Too bad they didn’t put the Tiger/Server firewall UI in the Leopard/Client. Of course, that is way to complex for consumers, but it was great to have it build ipfw rules.

    -lance

  2. Brent Says:

    Hi Lance,

    Little Snitch is a more advanced application firewall than the one that Apple ships with Leopard, and it lets you control outgoing traffic from applications on your system. Combine it with ipfw using Waterroof, then you’ve got both general network protection and fine-grained application-level control.

    As you say, every additional layer adds security, but it also ads inconvenience.

Leave a Reply