milis/talimatname/genel/vuurmuur/vuurmuur_servis.rc

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