firefly(8)

NAME
firefly - IPTables firewall and QOS scheduling generator

SYNOPSIS
firefly [options] ...

DESCRIPTION
firefly generates iptables(8) firewalls from its configuration file. The configuration is cached and the firewall built in such a way that it can be rapidly rebuilt as a dial-up interface goes up and down (and the IP address changes).

Generally, firefly will be configured to run once at system-boot up to initially build the firewall. Then it will also be run whenever the dial-up interface connects. This can be accomplished with the /etc/ppp/ip-up file (or on some (better) distributions, the /etc/ppp/ip-up.d directory).

firefly also generates QOS trees (using HTB via tc(8) ).

Implemented in pure, unadulterated Python.

OPTIONS
All options are available as GNU-Style long options. Some also have short versions available.

--configfile file, -c file
    Use the specified configuration file. Defaults to /etc/firefly.cfg if not given.

--cache file
    Use the specified cache file. Defaults to /var/cache/firefly.cache if not given.

--extif iface
--intif iface
--iptables program
--ip program
--sysctlprogram
--tc program
    Overrides the value of the same name in the configuration file. See firefly.cfg(5) for more details. See the BUGS section too.

--initialize, -i
    Recreate all the tables. This option is invoked automatically on the first execution after booting.

--verbose, -v
    Be very verbose. For debugging.

--reload, -r
    Reread the configuration file and rebuild the cache, even though the cache is newer than the configuration file.

--showconfig, -s
    Display the configuration tree (as well as configuring).

--testrun, -t
    Don't actually change anything. Use this to test your configuration file (together with --showconfig).

--help, -h
    Display help/usage.

--version, -V
    Display version/licence.

FILES
/etc/firefly.cfg
    The default configuration file. See firefly.cfg(5) for further details.

DIAGNOSTICS
When parsing the configuration file, firefly will give the line number where the error occurred in square brackets (i.e. [23]) at the beginning of the error message. All errors are logged to stderr.

The error messages should be self-descriptive, and will always declare whether they are simply skipping the offending line or aborting.

BUGS
firefly is designed for (and only for) 2 interface routers. One interface is the (presumably dial-up in ZA) external Internet connection. The other is the internal LAN (using a reserved IP address range). Changing this would require a complete rewrite - are you brave enough to attempt this?

The command line options that override configuration-file values only have any affect if firefly is called with the --reload option.

There are almost certainly other bugs that I havn't found yet...

AUTHOR
Stefano Rivera <scripts `at' rivera `dot' za `dot' net>

http://www.rivera.za.net/software/scripts

SEE ALSO
firefly.cfg(5), iptables(8), tc(8), tc-htb(8), tc-sfq(8)