#!/bin/sh RCDLINKS="2,S41 3,S41 6,K41" # # The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V2.0 3/14/2003 # # This program is under GPL [http://www.gnu.org/copyleft/gpl.htm] # # (c) 1999,2000,2001,2002,2003,2004 - Tom Eastep (teastep@shorewall.net) # # On most distributions, this file should be called /etc/init.d/shorewall. # # Complete documentation is available at http://shorewall.net # # This program is free software; you can redistribute it and/or modify # it under the terms of Version 2 of the GNU General Public License # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA # # If an error occurs while starting or restarting the firewall, the # firewall is automatically stopped. # # Commands are: # # shorewall start Starts the firewall # shorewall restart Restarts the firewall # shorewall stop Stops the firewall # shorewall status Displays firewall status # #### BEGIN INIT INFO # Provides: shorewall # Required-Start: $network # Required-Stop: # Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Description: starts and stops the shorewall firewall ### END INIT INFO # chkconfig: 2345 25 90 # description: Packet filtering firewall # ################################################################################ # Give Usage Information # ################################################################################ usage() { echo "Usage: $0 start|stop|restart|status" exit 1 } start() { echo "Starting Shorewall Firewall" #If saved rules exist, load them if [ -e /etc/shorewall/restore ]; then mkdir -p /var/lib/shorewall mkdir -p /var/state/shorewall cp /etc/shorewall/restore /var/lib/shorewall/ exec /sbin/shorewall restore | tee /var/log/shorewallstartup.log else #create the rules and save them in the background exec /sbin/shorewall start |tee /var/log/shorewallstartup.log &&\ shorewall save && cp /var/lib/shorewall/restore /etc/shorewall/ & fi } ################################################################################ # E X E C U T I O N B E G I N S H E R E # ################################################################################ command="$1" mkdir -p /var/log touch /var/log/shorewall.log case "$command" in start) start ;; stop|status) exec /sbin/shorewall $@ ;; restart) #exec /sbin/shorewall $@ /sbin/shorewall $@ /sbin/shorewall save cp /etc/shorewall/restore /etc/shorewall/restore.bak cp /tmp/lib/shorewall/restore /etc/shorewall ;; *) usage ;; esac