% Testing the script
$ for chain in INPUT OUTPUT FORWARD ; do echo $chain ; sudo iptables -L $chain -v | sort -u | wc -l ; sudo iptables -L $chain -v | wc -l ; done
INPUT
21
24
OUTPUT
14
17
FORWARD
3
3
sudo iptables -L INPUT -v | sort
/sbin/iptables -A INPUT -i lo -s localhost -d localhost -j ACCEPTn
/sbin/iptables -A INPUT -i lo -j ACCEPT
CONFIGURATION_USER_RULES_DIR=${CONFIGURATION_DIR}/rules.d
#...
####################################################
# Executes the user-defined rules
####################################################
fw_run_user_rules () {
local do_action
do_action=$1
if [ -d $CONFIGURATION_USER_RULES_DIR ]
then
for user_file in $(ls $CONFIGURATION_USER_RULES_DIR)
do
(
echo "$do_action user_file=$user_file"
#typeset -f | awk '/ \(\) $/ && !/^main / {print $1}'
awk '/^lfirewall_set_/{print $1}' "$CONFIGURATION_USER_RULES_DIR/${user_file}"
for function_name in `awk '/^lfirewall_set_/{print $1}' "$CONFIGURATION_USER_RULES_DIR/${user_file}"`
do
echo "$do_action $user_file > $function_name"
done
)
done
fi
}
# Inside fw_execute
#**************************************************************************#
# User Rules execution
#**************************************************************************#
# NOT YET ACTIVATED
#fw_run_user_rules $do_action
# In Makefile
config:
$(MKDIR) -p $(FIREWALL_ETC_DIR) $(FIREWALL_ETC_DIR)/rules.d