Using a more apples to apples comparison, pf is way simpler than iptables.
By bringing up UFW which is an iptables wrapper, you're not looking for a pf alternative so much as a pf wrapper. But it was the complexity of iptables that drove development of wrappers like UFW in the first place - pf doesn't really have the same level of need that iptables did.
Personally having used iptables and ipfilter I always thought pf was pretty simple.
I fully understand that Pf is equivalent to iptables, and is a lower level abstraction than UFW. But the question stands; Is there a simple foolproof utility for blocking ports on BSD with a single command? I just don't feel like whitelisting port 80 should require authoring a config file.
Yes. It is called pf.
block in on fxp0 proto tcp to any port { 25 80 }
... blocks incoming email and http connections on the fxp0 interface. That is all you need to put in pf.conf to do that. block in on egress proto tcp to port { 25, 80 } block all
pass proto tcp to port wwwMy current firewall [0] has two physical interfaces, 3 additional "virtual" (VLAN-tagged) interfaces, three RFC-1918 subnets, four IPv6 subnets (dual-stack of course, except for an IPv6-only subnet) with varying degrees of security between the subnets -- and I could not imagine maintaining it with anything but pf.
[0] https://github.com/cunnie/vain.nono.io-etc/blob/master/pf.co...
Are you really saying this[0] is more complex than this?[1][2]
If _anything_ I'm annoyed that linux doesn't have this.
[0]: https://git.drk.sc/darkscience/ds-salt/blob/master/security/...
[1]: https://git.drk.sc/darkscience/ds-salt/blob/master/security/...
[2]: https://git.drk.sc/darkscience/ds-salt/blob/master/security/...
It was a long time ago, though, and my memory may trick me. And if that tool really did exist, it might be unmaintained and outdated.
[0] I though it was called Firestarter, but that tool appears to be Linux/iptables-specific.