115 lines
2.7 KiB
Bash
115 lines
2.7 KiB
Bash
#!/bin/bash
|
|
# vi: ft=sh
|
|
|
|
. /etc/rc.conf
|
|
. /etc/rc.d/functions
|
|
|
|
# PID file
|
|
VUURMUURPID='/run/vuurmuur.pid'
|
|
VUURMUURLOGPID='/run/vuurmuur_log.pid'
|
|
case $1 in
|
|
start)
|
|
# initialize
|
|
stat_busy "Starting Vuurmuur Firewall"
|
|
STATUS="ok"
|
|
|
|
# check if vuurmuur is configured
|
|
IFNUM=`/usr/bin/vuurmuur_script --list --interface any | wc -l`
|
|
if [ $IFNUM = 0 ]; then
|
|
stat_busy "Please configure Vuurmuur first by defining at least one interface."
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
|
|
# load modules
|
|
. /etc/vuurmuur/modules.conf
|
|
for MODULE in `echo $MODULES_TO_LOAD`; do
|
|
/sbin/modprobe $MODULE &>/dev/null
|
|
if [ $? != 0 ]; then
|
|
stat_busy "Error when loading module $MODULE. Check log files."
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
# start vuurmuur daemon
|
|
if [ ! -f $VUURMUURPID ]; then
|
|
/usr/bin/vuurmuur -l
|
|
if [ $? != 0 ]; then
|
|
stat_busy "Error when starting Vuurmuur daemon. Check log files."
|
|
STATUS="failed"
|
|
fi
|
|
else
|
|
PID=`cat $VUURMUURPID | cut -d " " -f 1`
|
|
stat_busy "Error when starting Vuurmuur daemon. Already running at pid $PID."
|
|
STATUS="failed"
|
|
fi
|
|
|
|
# start vuurmuur log parsing daemon
|
|
if [ ! -f $VUURMUURLOGPID ]; then
|
|
/usr/bin/vuurmuur_log
|
|
if [ $? != 0 ]; then
|
|
stat_busy "Error when starting Vuurmuur log parsing daemon. Check log files."
|
|
STATUS="failed"
|
|
fi
|
|
else
|
|
PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
|
|
stat_busy "Error when starting Vuurmuur log parsing daemon. Already running at pid $PID."
|
|
STATUS="failed"
|
|
fi
|
|
|
|
# finalize
|
|
if [ $STATUS = "ok" ]; then
|
|
add_daemon vuurmuur
|
|
stat_done
|
|
else
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
;;
|
|
|
|
stop)
|
|
# initialize
|
|
stat_busy "Stopping Vuurmuur Firewall"
|
|
STATUS="ok"
|
|
|
|
# stop vuurmuur log parsing daemon
|
|
PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
|
|
if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
|
|
rm -f $VUURMUURLOGPID
|
|
else
|
|
stat_busy "Error when stopping Vuurmuur log parsing daemon. Check log files."
|
|
STATUS="failed"
|
|
fi
|
|
|
|
# stop vuurmuur daemon
|
|
PID=`cat $VUURMUURPID | cut -d " " -f 1`
|
|
if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
|
|
rm -f $VUURMUURPID
|
|
else
|
|
stat_busy "Error when stopping Vuurmuur daemon. Check log files."
|
|
STATUS="failed"
|
|
fi
|
|
|
|
# finalize
|
|
if [ $STATUS = "ok" ]; then
|
|
rm_daemon vuurmuur
|
|
stat_done
|
|
else
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
;;
|
|
|
|
restart)
|
|
$0 stop
|
|
$0 start
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart}" >&2
|
|
exit 1
|
|
|
|
esac
|
|
exit 0
|