Managing a firewall is hard. Designing an abstraction layer on top of a firewall is even harder. Not only do you need to understand networking and your operating system, but you need to figure out a way to map common operations on firewalls to specific implementation rules. And you’ll need a way to manage firewalls across a fleet of machines. If this sales pitch hasn’t encouraged you to buy a hardware firewall yet… enter the Chef Firewall cookbook.