openvpn/rc.openvpn

Thu, 04 Oct 2012 20:30:05 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Oct 2012 20:30:05 +0200
changeset 715
c10fb90893b9
permissions
-rw-r--r--

Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.

     1 #!@l_prefix@/bin/openpkg rc
     2 ##
     3 ##  rc.openvpn -- Run-Commands
     4 ##
     6 %config
     7     openvpn_enable="$openpkg_rc_def"
     8     openvpn_log_prolog="true"
     9     openvpn_log_epilog="true"
    10     openvpn_log_numfiles="10"
    11     openvpn_log_minsize="1M"
    12     openvpn_log_complevel="9"
    14 %common
    15     openvpn_etcdir="@l_prefix@/etc/openvpn"
    16     openvpn_vardir="@l_prefix@/var/openvpn"
    17     openvpn_signal () {
    18         [ -f $openvpn_vardir/$1.pid ] && kill -$2 `cat $openvpn_vardir/$1.pid`
    19     }
    21 %status -u @l_susr@ -o
    22     openvpn_usable="unknown"
    23     openvpn_active="yes"
    24     if rcService openvpn enable yes; then
    25         for cfgfile in $openvpn_etcdir/*.conf; do
    26             [ ".`grep '^disable' $cfgfile`" != . ] && continue
    27             name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'`
    28             openvpn_signal $name 0
    29             if [ $? -ne 0 ]; then
    30                 openvpn_active="no"
    31                 break
    32             fi
    33         done
    34     fi
    35     echo "openvpn_enable=\"$openvpn_enable\""
    36     echo "openvpn_usable=\"$openvpn_usable\""
    37     echo "openvpn_active=\"$openvpn_active\""
    39 %start -p 200 -u @l_susr@
    40     rcService openvpn enable yes || exit 0
    41     rcService openvpn active yes && exit 0
    42     if [ -f $openvpn_etcdir/openvpn.sh ]; then
    43         sh $openvpn_etcdir/openvpn.sh start || exit $?
    44     fi
    45     for cfgfile in $openvpn_etcdir/*.conf; do
    46         [ ".`grep '^disable' $cfgfile`" != . ] && continue
    47         name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'`
    48         if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then
    49             sh $openvpn_etcdir/$name.sh start || exit $?
    50         fi
    51         @l_prefix@/sbin/openvpn \
    52             --daemon "$name" \
    53             --log-append $openvpn_vardir/$name.log \
    54             --writepid $openvpn_vardir/$name.pid \
    55             --status $openvpn_vardir/$name.status 60 \
    56             --config $cfgfile \
    57             --cd $openvpn_etcdir || exit $?
    58     done
    60 %stop -p 800 -u @l_susr@
    61     rcService openvpn enable yes || exit 0
    62     rcService openvpn active no && exit 0
    63     for cfgfile in $openvpn_etcdir/*.conf; do
    64         [ ".`grep '^disable' $cfgfile`" != . ] && continue
    65         name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'`
    66         openvpn_signal $name TERM
    67     done
    68     sleep 1
    69     for cfgfile in $openvpn_etcdir/*.conf; do
    70         [ ".`grep '^disable' $cfgfile`" != . ] && continue
    71         name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'`
    72         if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then
    73             sh $openvpn_etcdir/$name.sh stop || true
    74         fi
    75     done
    76     if [ -f $openvpn_etcdir/openvpn.sh ]; then
    77         sh $openvpn_etcdir/openvpn.sh stop || true
    78     fi
    79     rm -f $openvpn_vardir/*.pid 2>/dev/null || true
    81 %restart -u @l_susr@
    82     rcService openvpn enable yes || exit 0
    83     rcService openvpn active no && exit 0
    84     rc openvpn stop start
    86 %reload -u @l_susr@
    87     rcService openvpn enable yes || exit 0
    88     rcService openvpn active no && exit 0
    89     for cfgfile in $openvpn_etcdir/*.conf; do
    90         [ ".`grep '^disable' $cfgfile`" != . ] && continue
    91         name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'`
    92         openvpn_signal $name USR1
    93         if [ -f $openvpn_etcdir/$name.sh ]; then
    94             sh $openvpn_etcdir/$name.sh reload || true
    95         fi
    96     done
    98 %daily -u @l_susr@
    99     rcService openvpn enable yes || exit 0
   100     for cfgfile in $openvpn_etcdir/*.conf; do
   101         [ ".`grep '^disable' $cfgfile`" != . ] && continue
   102         name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'`
   103         shtool rotate -f \
   104             -n ${openvpn_log_numfiles} -s ${openvpn_log_minsize} -d \
   105             -z ${openvpn_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \
   106             -P "${openvpn_log_prolog}" \
   107             -E "${openvpn_log_epilog}; rc openvpn reload" \
   108             $openvpn_vardir/$name.log
   109     done

mercurial