#!/bin/bash # Firewall Script by Bernhard Tittelbach # ### BEGIN INIT INFO # Provides: firewall # Required-Start: $syslog $local_fs $network # Required-Stop: $syslog $local_fs $network # Should-Start: # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Firewall # Description: see above ### END INIT INFO PATH=/bin:/sbin:/bin:/usr/sbin:/usr/bin . /lib/lsb/init-functions IPTABLES=iptables IP6TABLES=ip6tables OUTPUT=$(mktemp) RC=0 FIREWALL_CONFIG=/flash/etc/firewall.conf runrule() { rule="$1" IPT=$IPTABLES if [ $(($2)) -eq 6 ]; then IPT=$IP6TABLES ipv=6 else ipv=4 fi $IPT $rule &> $OUTPUT rc=$? if [ $rc -ne 0 ] ; then RC=$rc logger -s -i -p daemon.err "Error running ipv${ipv} rule: $rule, error was $(cat $OUTPUT)" fi } ip4() { runrule "$*" 4 } ip6() { runrule "$*" 6 } finish() { rm -f $OUTPUT } . $FIREWALL_CONFIG case "$1" in start) log_daemon_msg "Starting " "firewall" start_firewall finish log_end_msg $RC ;; stop) log_daemon_msg "Stopping " "firewall" stop_firewall finish log_end_msg $RC ;; restart) log_daemon_msg "Restarting " "firewall" stop_firewall start_firewall finish log_end_msg $RC ;; *) log_action_msg "Usage: /etc/init.d/cron {start|stop|restart}" exit 2 ;; esac exit 0