forked from extern/shorewall_code
124 lines
2.4 KiB
Bash
124 lines
2.4 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
SRWL=/sbin/shorewall
|
||
|
WAIT_FOR_IFUP=/usr/share/shorewall/wait4ifup
|
||
|
# Note, set INITLOG to /dev/null if you do not want to
|
||
|
# keep logs of the firewall (not recommended)
|
||
|
INITLOG=/var/log/shorewall-init.log
|
||
|
|
||
|
test -x $SRWL || exit 0
|
||
|
test -x $WAIT_FOR_IFUP || exit 0
|
||
|
test -n $INITLOG || {
|
||
|
echo "INITLOG cannot be empty, please configure $0" ;
|
||
|
exit 1;
|
||
|
}
|
||
|
|
||
|
if [ "$(id -u)" != "0" ]
|
||
|
then
|
||
|
echo "You must be root to start, stop or restart \"Shorewall firewall\"."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo_notdone () {
|
||
|
|
||
|
if [ "$INITLOG" = "/dev/null" ] ; then
|
||
|
"not done."
|
||
|
else
|
||
|
"not done (check $INITLOG)."
|
||
|
fi
|
||
|
|
||
|
}
|
||
|
|
||
|
not_configured () {
|
||
|
echo "#### WARNING ####"
|
||
|
echo "the firewall won't be started/stopped unless it is configured"
|
||
|
if [ "$1" != "stop" ]
|
||
|
then
|
||
|
echo ""
|
||
|
echo "please configure it and then edit /etc/default/shorewall"
|
||
|
echo "and set the \"startup\" variable to 1 in order to allow "
|
||
|
echo "shorewall to start"
|
||
|
fi
|
||
|
echo "#################"
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
# parse the shorewall params file in order to use params in
|
||
|
# /etc/default/shorewall
|
||
|
if [ -f "/etc/shorewall/params" ]
|
||
|
then
|
||
|
. /etc/shorewall/params
|
||
|
fi
|
||
|
|
||
|
# check if shorewall is configured or not
|
||
|
if [ -f "/etc/default/shorewall" ]
|
||
|
then
|
||
|
. /etc/default/shorewall
|
||
|
if [ "$startup" != "1" ]
|
||
|
then
|
||
|
not_configured
|
||
|
fi
|
||
|
else
|
||
|
not_configured
|
||
|
fi
|
||
|
|
||
|
# wait an unconfigured interface
|
||
|
wait_for_pppd () {
|
||
|
if [ "$wait_interface" != "" ]
|
||
|
then
|
||
|
for i in $wait_interface
|
||
|
do
|
||
|
$WAIT_FOR_IFUP $i 90
|
||
|
done
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# start the firewall
|
||
|
shorewall_start () {
|
||
|
echo -n "Starting \"Shorewall firewall\": "
|
||
|
wait_for_pppd
|
||
|
$SRWL start >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
# stop the firewall
|
||
|
shorewall_stop () {
|
||
|
echo -n "Stopping \"Shorewall firewall\": "
|
||
|
$SRWL stop >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
# restart the firewall
|
||
|
shorewall_restart () {
|
||
|
echo -n "Restarting \"Shorewall firewall\": "
|
||
|
$SRWL restart >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
# refresh the firewall
|
||
|
shorewall_refresh () {
|
||
|
echo -n "Refreshing \"Shorewall firewall\": "
|
||
|
$SRWL refresh >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
start)
|
||
|
shorewall_start
|
||
|
;;
|
||
|
stop)
|
||
|
shorewall_stop
|
||
|
;;
|
||
|
refresh)
|
||
|
shorewall_refresh
|
||
|
;;
|
||
|
force-reload|restart)
|
||
|
shorewall_restart
|
||
|
;;
|
||
|
*)
|
||
|
echo "Usage: /etc/init.d/shorewall {start|stop|refresh|restart|force-reload}"
|
||
|
exit 1
|
||
|
esac
|
||
|
|
||
|
exit 0
|