I started a small new Google project for a new script I wrote called LFS. It stands for Linux Firewall Script.
I run a small Linux box as an internet router that doubles as a firewall. The firewall is configured using iptables. In my opinion, iptables is not the easiest tool to use and may have a steep learning curve for people new to it.
The goal of LFS is to provide an easier interface to iptables. It also adds some features that by default are not or difficult to setup using only iptables. The most important additional feature is the use of objects and groups. Object groups can be used to make a single rule affect multiple hosts, networks or services.
LFS uses a single configuration file which contains the firewall rules. Rules look like this:
nat 192.168.1.0/24 220.127.116.11 eth0 port_forward 18.104.22.168 22.214.171.124 80/tcp 8080/tcp
Or by using variables:
nat "$INTERNAL_NETWORK" "$EXTERNAL_IP" "$NAT_INTERFACE" port_forward "$EXTERNAL_IP" "$INTERNAL_HTTP_SERVER" "80/tcp" "8080/tcp"
Please visit the project page for some examples.