Hi!
1.) Das Script tät ich an Deiner Stelle umstrukturieren, dass es dem Output von 'iptables -vL' folgt:
D.h. Als erstes alle Regeln für die INPUT-Chain, dann die FORWARD usw.
2.) Hast Du das Script bereits in den Startprozess eingebunden?
=> Startscript in /etc/init.d
=> Links in den Runlevels händisch anlegen.
Beispiel für SuSE:
Code:
#! /bin/sh
FIREWALL=/Pfad/zum/Firewallscript
IPTABLES=/usr/sbin/iptables
. /etc/rc.config
return=$rc_done
case "$1" in
start)
echo "Starting Firewall"
$FIREWALL
echo "Firewall aktiv" "$return"
;;
stop)
echo "Shutting down Firewall"
$IPTABLES -F # flush aller chains (Tabelle filter)
$IPTABLES -t nat -F # flush aller chains (Tabelle nat)
$IPTABLES -X # delete all userdefined chains
# (Tabelle filter)
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
echo "Default Policy DROP-ALL aktiviert" "$return"
;;
turnoff)
echo "Shutting down Firewall"
$IPTABLES -F # flush aller chains (Tabelle filter)
$IPTABLES -t nat -F # flush aller chains (Tabelle nat)
$IPTABLES -X # delete all userdefined chains
# (Tabelle filter)
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
echo "Default Policy ACCEPT-ALL aktiviert"
echo "DAS SYSTEM IST N I C H T GESCHUETZT!" "$return"
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|turnoff}"
exit 1
;;
esac