summarylogtreecommitdiffstats
path: root/vuurmuur.rc
blob: 3b4d3e99ecb9f8aafca3d06672d6748daa7a1bcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/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