Zur Manipulation des Paketfilters steht eine Reihe von Routinen zur Verfügung, mit deren Hilfe man Chains und Regeln hinzufügen und wieder löschen kann.
add_rule table chain rule comment ins_rule table chain rule position comment del_rule table chain rule commentwobei die Parameter folgende Bedeutung haben:
Fli4l konfiguriert den Paketfilter mit einem gewissen Standardregelsatz. Will man eigene Regeln einfügen, wird man diese in der Regel nach dem Standardregelsatz einfügen wollen. Ebenfalls wird man wissen wollen, was denn die vom Nutzer gewünschte Aktion beim Verwerfen eines Paketes ist. Diese Informationen bekommt man für die FORWARD und INPUT Chain durch Aufruf zweier Funktionen wie im folgenden gezeigt:
get_defaults FORWARD # get default actions for forward chain get_count FORWARD # get number of default rules for forward
Fli4l verwendet in den Paketfilterregeln die Syntax match:params, um zusätzliche Bedingungen an die Pakete zu stellen (siehe mac:, limit:, length:, prot:, ...). Will man zusätzliche Matches hinzufügen, wird das folgendermassen gemacht:
# extension is available
foo_p=yes
# the actual extension, adding matches to match_opt
do_foo ()
{
param=$1
get_negation $param
match_opt="$match_opt -m foo $neg_opt --fooval $param"
}
> cd opt/etc/rc.d
> sh test-rules.sh 'foo:bar ACCEPT'
add_rule filter FORWARD 'foo:bar ACCEPT'
iptables -t filter -A FORWARD -m foo --fooval bar -s 0.0.0.0/0 \
-d 0.0.0.0/0 -m comment --comment foo:bar ACCEPT -j ACCEPT
+FW_GENERIC_MATCH='foo:bar' : ''