Package: openvpn
Version: 2.3.4-3
Severity: important
Justification: Lose user settings / don't autostart

Dear maintainer

Using jessie, after upgrading to openvpn 2.3.4-3 from 2.3.2-9, openvpn
does not start anymore.

This is the relevant part of the log file from
/var/log/unattended-upgrades/unattended-upgrades.log
2014-11-05 07:49:18,942 INFO Initial blacklisted packages:
2014-11-05 07:49:18,950 INFO Initial whitelisted packages:
2014-11-05 07:49:18,950 INFO Starting unattended upgrades script
2014-11-05 07:49:18,951 INFO Allowed origins are: ['origin=Debian']
2014-11-05 07:51:49,194 WARNING Package 'openvpn' has conffile prompt
and needs to be upgraded manually
2014-11-05 07:52:29,050 INFO package 'openvpn' not upgraded
2014-11-05 07:52:48,335 INFO Packages that will be upgraded: cron
extlinux geoclue-2.0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0
gnome-orca gstreamer1.0-plugins-base gstreamer1.0-plugins-base:i386
gstreamer1.0-x iceweasel kbd libbrlapi0.6 libfribidi0
libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-0:i386
libgstreamer1.0-0 libgstreamer1.0-0:i386 libharfbuzz-dev
libharfbuzz-gobject0 libharfbuzz-icu0 libharfbuzz0b libhttpcore-java
libpipeline1 libsvn1 libvlc5 libvlccore8 lintian python-simplejson
python-sqlparse python3-brlapi python3-sqlparse subversion syslinux
syslinux-common vlc vlc-data vlc-nox vlc-plugin-notify vlc-plugin-pulse
xbrlapi
2014-11-05 07:52:48,336 INFO Writing dpkg log to
'/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'
2014-11-05 07:55:33,936 INFO All upgrades installed

After upgrading manually openvpn with aptitude, and rebooting, openvpn
did not start.

# service openvpn status
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; disabled)
   Active: inactive (dead)

Starting openvpn manually does work, though I can't specify which
tunnel I want to start anymore, like the arguments of init script are
being ignored. Default "AUTOSTART" tunnels can be started that way. I
can start non default tunnels using the command line with --daemon --cd
--config options, and stop them using kill, but this is quite anoying.

I can see from that bug report that it says I modified
/etc/init.d/openvpn, but I don't think so.
I also tried "aptitude reinstall openvpn", but reportbug still says I
have a non-default init script, and I can't see any ".dpkg-dist" nor
".dpkg-new" I could fix it from.


-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (990, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages openvpn depends on:
ii  debconf [debconf-2.0]  1.5.53
ii  initscripts            2.88dsf-57
ii  iproute2               3.16.0-2
ii  libc6                  2.19-12
ii  liblzo2-2              2.08-1
ii  libpam0g               1.1.8-3.1
ii  libpkcs11-helper1      1.11-2
ii  libssl1.0.0            1.0.1j-1

Versions of packages openvpn recommends:
ii  easy-rsa  2.2.2-1

Versions of packages openvpn suggests:
ii  openssl     1.0.1j-1
ii  resolvconf  1.76

-- Configuration Files:
/etc/default/openvpn changed:
AUTOSTART="IPredator-CLI-Password"
OPTARGS=""
OMIT_SENDSIGS=0

/etc/init.d/openvpn changed:
. /lib/lsb/init-functions
test $DEBIAN_SCRIPT_DEBUG && set -v -x
DAEMON=/usr/sbin/openvpn
DESC="virtual private network daemon"
CONFIG_DIR=/etc/openvpn
test -x $DAEMON || exit 0
test -d $CONFIG_DIR || exit 0
AUTOSTART="all"
STATUSREFRESH=10
OMIT_SENDSIGS=0
if test -e /etc/default/openvpn ; then
  . /etc/default/openvpn
fi
start_vpn () {
    if grep -q '^[       ]*daemon' $CONFIG_DIR/$NAME.conf ; then
      # daemon already given in config file
      DAEMONARG=
    else
      # need to daemonize
      DAEMONARG="--daemon ovpn-$NAME"
    fi
    if grep -q '^[       ]*status ' $CONFIG_DIR/$NAME.conf ; then
      # status file already given in config file
      STATUSARG=""
    elif test $STATUSREFRESH -eq 0 ; then
      # default status file disabled in /etc/default/openvpn
      STATUSARG=""
    else
      # prepare default status file
      STATUSARG="--status /run/openvpn/$NAME.status $STATUSREFRESH"
    fi
    # tun using the "subnet" topology confuses the routing code that wrongly
    # emits ICMP redirects for client to client communications
    SAVED_DEFAULT_SEND_REDIRECTS=0
    if grep -q '^[[:space:]]*dev[[:space:]]*tun' $CONFIG_DIR/$NAME.conf && \
       grep -q '^[[:space:]]*topology[[:space:]]*subnet'
$CONFIG_DIR/$NAME.conf ; then
        # When using "client-to-client", OpenVPN routes the traffic
itself without
        # involving the TUN/TAP interface so no ICMP redirects are sent
        if ! grep -q '^[[:space:]]*client-to-client'
$CONFIG_DIR/$NAME.conf ; then
            sysctl -w net.ipv4.conf.all.send_redirects=0 > /dev/null
            # Save the default value for send_redirects before disabling it
            # to make sure the tun device is created with send_redirects
disabled
            SAVED_DEFAULT_SEND_REDIRECTS=$(sysctl -n
net.ipv4.conf.default.send_redirects)
            if [ "$SAVED_DEFAULT_SEND_REDIRECTS" -ne 0 ]; then
              sysctl -w net.ipv4.conf.default.send_redirects=0 > /dev/null
            fi
        fi
    fi
    log_progress_msg "$NAME"
    STATUS=0
    start-stop-daemon --start --quiet --oknodo \
        --pidfile /run/openvpn/$NAME.pid \
        --exec $DAEMON -- $OPTARGS --writepid /run/openvpn/$NAME.pid \
        $DAEMONARG $STATUSARG --cd $CONFIG_DIR \
        --config $CONFIG_DIR/$NAME.conf || STATUS=1
    [ "$OMIT_SENDSIGS" -ne 1 ] || ln -s /run/openvpn/$NAME.pid
/run/sendsigs.omit.d/openvpn.$NAME.pid
    # Set the back the original default value of send_redirects if it
was changed
    if [ "$SAVED_DEFAULT_SEND_REDIRECTS" -ne 0 ]; then
      sysctl -w
net.ipv4.conf.default.send_redirects=$SAVED_DEFAULT_SEND_REDIRECTS >
/dev/null
    fi
}
stop_vpn () {
  start-stop-daemon --stop --quiet --oknodo \
      --pidfile $PIDFILE --exec $DAEMON --retry 5
  if [ "$?" -eq 0 ]; then
    rm -f $PIDFILE
    [ "$OMIT_SENDSIGS" -ne 1 ] || rm -f
/run/sendsigs.omit.d/openvpn.$NAME.pid
    rm -f /run/openvpn/$NAME.status 2> /dev/null
  fi
}
case "$1" in
start)
  log_daemon_msg "Starting $DESC"
  # first create /run directory so it's present even
  # when no VPN are autostarted by this script, but later
  # by systemd [email protected]
  mkdir -p /run/openvpn
  # autostart VPNs
  if test -z "$2" ; then
    # check if automatic startup is disabled by AUTOSTART=none
    if test "x$AUTOSTART" = "xnone" -o -z "$AUTOSTART" ; then
      log_warning_msg " Autostart disabled."
      exit 0
    fi
    if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
      # all VPNs shall be started automatically
      for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
        NAME=${CONFIG%%.conf}
        start_vpn
      done
    else
      # start only specified VPNs
      for NAME in $AUTOSTART ; do
        if test -e $CONFIG_DIR/$NAME.conf ; then
          start_vpn
        else
          log_failure_msg "No such VPN: $NAME"
          STATUS=1
        fi
      done
    fi
  #start VPNs from command line
  else
    while shift ; do
      [ -z "$1" ] && break
      if test -e $CONFIG_DIR/$1.conf ; then
        NAME=$1
        start_vpn
      else
       log_failure_msg " No such VPN: $1"
       STATUS=1
      fi
    done
  fi
  log_end_msg ${STATUS:-0}
  ;;
stop)
  log_daemon_msg "Stopping $DESC"
  if test -z "$2" ; then
    for PIDFILE in `ls /run/openvpn/*.pid 2> /dev/null`; do
      NAME=`echo $PIDFILE | cut -c14-`
      NAME=${NAME%%.pid}
      stop_vpn
      log_progress_msg "$NAME"
    done
  else
    while shift ; do
      [ -z "$1" ] && break
      if test -e /run/openvpn/$1.pid ; then
        PIDFILE=`ls /run/openvpn/$1.pid 2> /dev/null`
        NAME=`echo $PIDFILE | cut -c14-`
        NAME=${NAME%%.pid}
        stop_vpn
        log_progress_msg "$NAME"
      else
        log_failure_msg " (failure: No such VPN is running: $1)"
      fi
    done
  fi
  log_end_msg 0
  ;;
reload|force-reload)
 log_daemon_msg "Reloading $DESC"
  for PIDFILE in `ls /run/openvpn/*.pid 2> /dev/null`; do
    NAME=`echo $PIDFILE | cut -c14-`
    NAME=${NAME%%.pid}
    if egrep '^[[:blank:]]*user[[:blank:]]' $CONFIG_DIR/$NAME.conf >
/dev/null 2>&1 ; then
      stop_vpn
      start_vpn
      log_progress_msg "(restarted)"
    else
      kill -HUP `cat $PIDFILE` || true
    log_progress_msg "$NAME"
    fi
  done
  log_end_msg 0
  ;;
soft-restart)
 log_daemon_msg "$DESC sending SIGUSR1"
  for PIDFILE in `ls /run/openvpn/*.pid 2> /dev/null`; do
    NAME=`echo $PIDFILE | cut -c14-`
    NAME=${NAME%%.pid}
    kill -USR1 `cat $PIDFILE` || true
    log_progress_msg "$NAME"
  done
  log_end_msg 0
 ;;
restart)
  shift
  $0 stop ${@}
  $0 start ${@}
  ;;
cond-restart)
  log_daemon_msg "Restarting $DESC."
  for PIDFILE in `ls /run/openvpn/*.pid 2> /dev/null`; do
    NAME=`echo $PIDFILE | cut -c14-`
    NAME=${NAME%%.pid}
    stop_vpn
    start_vpn
  done
  log_end_msg 0
  ;;
status)
  GLOBAL_STATUS=0
  if test -z "$2" ; then
    # We want status for all defined VPNs.
    # Returns success if all autostarted VPNs are defined and running
    if test "x$AUTOSTART" = "xnone" ; then
      # Consider it a failure if AUTOSTART=none
      log_warning_msg "No VPN autostarted"
      GLOBAL_STATUS=1
    else
      if ! test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
        # Consider it a failure if one of the autostarted VPN is not defined
        for VPN in $AUTOSTART ; do
          if ! test -f $CONFIG_DIR/$VPN.conf ; then
            log_warning_msg "VPN '$VPN' is in AUTOSTART but is not defined"
            GLOBAL_STATUS=1
          fi
        done
      fi
    fi
    for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
      NAME=${CONFIG%%.conf}
      # Is it an autostarted VPN ?
      if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
        AUTOVPN=1
      else
        if test "x$AUTOSTART" = "xnone" ; then
          AUTOVPN=0
        else
          AUTOVPN=0
          for VPN in $AUTOSTART; do
            if test "x$VPN" = "x$NAME" ; then
              AUTOVPN=1
            fi
          done
        fi
      fi
      if test "x$AUTOVPN" = "x1" ; then
        # If it is autostarted, then it contributes to global status
        status_of_proc -p /run/openvpn/${NAME}.pid openvpn "VPN
'${NAME}'" || GLOBAL_STATUS=1
      else
        status_of_proc -p /run/openvpn/${NAME}.pid openvpn "VPN
'${NAME}' (non autostarted)" || true
      fi
    done
  else
    # We just want status for specified VPNs.
    # Returns success if all specified VPNs are defined and running
    while shift ; do
      [ -z "$1" ] && break
      NAME=$1
      if test -e $CONFIG_DIR/$NAME.conf ; then
        # Config exists
        status_of_proc -p /run/openvpn/${NAME}.pid openvpn "VPN
'${NAME}'" || GLOBAL_STATUS=1
      else
        # Config does not exist
        log_warning_msg "VPN '$NAME': missing $CONFIG_DIR/$NAME.conf file !"
        GLOBAL_STATUS=1
      fi
    done
  fi
  exit $GLOBAL_STATUS
  ;;
*)
  echo "Usage: $0
{start|stop|reload|restart|force-reload|cond-restart|soft-restart|status}"
>&2
  exit 1
  ;;
esac
exit 0


-- debconf information:
  openvpn/create_tun: false


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to