Problem beim Starten eines openvpn Client auf der Box

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Problem beim Starten eines openvpn Client auf der Box

      Hallo,
      ich habe ein Problem bei dem ich mit meinem Latein am Ende bin und auf eure Hilfe angewiesen bin. Damit meine Tochter auf mein NAS zugreifen kann, wollte ich auf ihrer DM800sev2 einen OpenVPN Client installieren. Soweit so gut. Starte ich den Client händisch mit



      openvpn --config /etc/openvpn/openvpn.conf &





      funktioniert auch alles. Jetzt habe ich das Autostartscript, welches problemlos auf der DM800sev2 meiner Mutter läuft, nach /etc/init.d kopiert, damit bei Neustart der Client automatisch gestartet wird. Nur leider startet der Client nicht. Vielleicht findet ihr den Fehler ja.
      Hier mal das Script:

      Shell-Script

      1. #!/bin/sh -e
      2. #
      3. # Original version by Robert Leslie
      4. # <rob@mars.org>, edited by iwj and cs
      5. # Modified for openvpn by Alberto Gonzalez Iniesta <agi@agi.as>
      6. # Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
      7. test $DEBIAN_SCRIPT_DEBUG && set -v -x
      8. DAEMON=/usr/sbin/openvpn
      9. CONFIG_DIR=/etc/openvpn
      10. test -x $DAEMON || exit 0
      11. test -d $CONFIG_DIR || exit 0
      12. start_vpn () {
      13. modprobe tun >/dev/null 2>&1 || true
      14. # $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
      15. # --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->"
      16. # echo -n " $NAME"
      17. openvpn --config /etc/openvpn/openvpn.conf &
      18. }
      19. stop_vpn () {
      20. # kill `cat $PIDFILE` || true
      21. # rm $PIDFILE
      22. killall openvpn
      23. }
      24. case "$1" in
      25. start)
      26. echo -n "Starting openvpn:"
      27. if test -z $2 ; then
      28. for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
      29. NAME=${CONFIG%%.conf}
      30. start_vpn
      31. done
      32. else
      33. if test -e $CONFIG_DIR/$2.conf ; then
      34. NAME=$2
      35. start_vpn
      36. else
      37. echo -n " No such VPN: $2"
      38. fi
      39. fi
      40. echo "."
      41. ;;
      42. stop)
      43. echo -n "Stopping openvpn:"
      44. if test -z $2 ; then
      45. for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
      46. NAME=`echo $PIDFILE | cut -c18-`
      47. NAME=${NAME%%.pid}
      48. stop_vpn
      49. echo -n " $NAME"
      50. done
      51. else
      52. if test -e /var/run/openvpn.$2.pid ; then
      53. PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null`
      54. NAME=`echo $PIDFILE | cut -c18-`
      55. NAME=${NAME%%.pid}
      56. stop_vpn
      57. echo -n " $NAME"
      58. else
      59. echo -n " No such VPN: $2"
      60. fi
      61. fi
      62. echo "."
      63. ;;
      64. # We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'.
      65. reload|force-reload)
      66. echo -n "Reloading openvpn:"
      67. for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
      68. NAME=`echo $PIDFILE | cut -c18-`
      69. NAME=${NAME%%.pid}
      70. # If openvpn if running under a different user than root we'll need to restart
      71. if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
      72. stop_vpn
      73. sleep 1
      74. start_vpn
      75. echo -n "(restarted)"
      76. else
      77. kill -HUP `cat $PIDFILE` || true
      78. # start-stop-daemon --stop --signal HUP --quiet --oknodo \
      79. # --exec $DAEMON --pidfile $PIDFILE
      80. echo -n " $NAME"
      81. fi
      82. done
      83. echo "."
      84. ;;
      85. restart)
      86. $0 stop $2
      87. sleep 1
      88. $0 start $2
      89. ;;
      90. *)
      91. echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2
      92. exit 1
      93. ;;
      94. esac
      95. exit 0
      96. # vim:set ai et sts=2 sw=2 tw=0:
      Display All

      The post was edited 5 times, last by MrWanton ().

    • Woher hast du das Script? Das sieht jedenfalls so ziemlich "gebastelt" aus ...
      Hast du ein Newnigm2 Image auf der Box? Funktioniert der vpn client vom feed nicht?

      Ist das Script ausführbar (Rechte 755 bzw -rwxr-xr-x)?
      Wenn du das script manuell ausführst, sollte eigentlich automatisch eine debugging Ausgabe erfolgen (gestartet durch die 1. Zeile "test $DEBIAN_SCRIPT_DEBUG && set -v -x")
      d.h. du müsstest den Fehler dann in der Konsole sofort finden, sofern es am script liegt

      Das script nur nach /etc/init.d zu kopieren ist auch zu wenig. Hast du es auch in die runlevel mit dem entsprechenden "Zeitstempel" verlinkt damit es beim starten, shutdown und reboot ausgeführt wird? Also entweder mit update-rc.d automatisch in die runlevel verlinkt oder die symlinks manuell gesetzt?
      Wenn du das script zu früh beim bootup startest, d.h. bevor das Netzwerk konfiguriert ist, wird das auch nicht funktionieren ...


      Starte das script mal manuell in der Konsole, das sollte schon mal Aufschluss geben
      Wenn das funktioniert aber nicht beim bootup, poste mal die Ausgaben von

      ls -al /etc/init.d/scriptname
      ls -al /etc/init.d/rc?.d/*scriptname*

      The post was edited 2 times, last by Fred Bogus Trumper ().

    • Fred Bogus Trumper wrote:

      Woher hast du das Script?
      Das Script ist hier aus dem Board, aber ich weiß nicht mehr aus welchem Thread.

      Fred Bogus Trumper wrote:

      Hast du ein Newnigm2 Image auf der Box?
      Ja natürlich, deswegen Frage ich ja auch hier. Aber ich weiß natürlich das hier auch Fragen zu anderen Images gestellt werden. Deswegen ist deine Frage natürlich berechtigt.

      Fred Bogus Trumper wrote:

      Ist das Script ausführbar (Rechte 755 bzw -rwxr-xr-x)?
      Ja die Rechte passen

      Fred Bogus Trumper wrote:

      Wenn du das script manuell ausführst.....
      ich führe ja nicht das Script manuell aus, sondern starte den Client manuell

      Für alle anderen Vorschläge müsste ich zu meiner Tochter fahren um diese dann auszuprobieren und das schaffe ich zeitlich nicht vor nächsten Samstag. Aber du hast mir damit schon weiter geholfen. Ich werde mich dann wohl nächstes WE wieder melden. Danke @Fred Bogus Trumper

      Edit:
      Es funktioniert scheinbar. Habe es mit update-rc.d <scriptname> defaults wohl zum Laufen bekommen. Nach reboot ist die Box auf meinem VPN Server immer noch zu sehen. Also gehe ich davon aus, dass es jetzt funktioniert.
      Danke nochmal @Fred Bogus Trumper für die Hilfe

      The post was edited 1 time, last by MrWanton ().

    • dachte mir schon dass die Verlinkung in die runlevels fehlten

      poste mal die Ausgabe von

      ls -al /etc/init.d/rc?.d/*scriptname*


      das update-rc.d <scriptname> defaults funktioniert nicht immer zuverlässig, vor allem da die Angabe der defaults im init startscript fehlen.
      Vermutlich wurde das script in den runlevel 3 mit 10 verlinkt, also nach /etc/rc3.d/S10scriptname - das könnte zu früh im Bootvorgang sein
    • ls: /etc/init.d/rc?.d/S90openvpn: No such file or directory ......................komisch

      Edit:
      in rc3.d ist es mit S20 verlinkt.
      Jetzt verstehe ich auch das Sxx vor dem Namen. Hatte damals den Namen aus dem Post übernommen. Deswegen heisst es bei mir S90openvpn. In rc3.d heisst es jetzt S20S90openvpn.......sieht echt komisch aus

      The post was edited 1 time, last by MrWanton ().

    • das Edit in post #5 hätte ich fast übersehen, das macht keinen Sinn einen Beitrag so spät zu editieren - das hat sich mit meinen Post überschnitten

      S20S90openvpn macht keinen Sinn, da ist etwas daneben gegangen, hieß das script ursprünglich /etc/init.d/S90openvpn ?

      Aber es war auch mein Fehler! Ich habe schon lange nicht mehr mit einem init system gearbeitet und habe scheinbar nicht mehr mehr alle wichtigen Pfade korrekt im Kopf ...
      die symlinks in die runlevel liegen in /etc/rc?.d und nicht in /etc/init.d/rc?.d
      sorry dafür

      bitte nochmal

      ls -al /etc/init.d/*vpn*
      ls -al /etc/rc?.d/*vpn*
    • Fred Bogus Trumper wrote:

      ls -al /etc/init.d/*vpn*

      -rwxr-xr-x1 root root2479 Sep7 08:47 /etc/init.d/S90openvpn


      Fred Bogus Trumper wrote:

      ls -al /etc/rc?.d/*vpn*


      lrwxrwxrwx1 root root20 Sep8 13:47 /etc/rc0.d/K20S90openvpn -> ../init.d/S90openvpn
      lrwxrwxrwx1 root root20 Sep8 13:47 /etc/rc1.d/K20S90openvpn -> ../init.d/S90openvpn
      lrwxrwxrwx1 root root20 Sep8 13:47 /etc/rc2.d/S20S90openvpn -> ../init.d/S90openvpn
      lrwxrwxrwx1 root root20 Sep8 13:47 /etc/rc3.d/S20S90openvpn -> ../init.d/S90openvpn
      lrwxrwxrwx1 root root20 Sep8 13:47 /etc/rc4.d/S20S90openvpn -> ../init.d/S90openvpn
      lrwxrwxrwx1 root root20 Sep8 13:47 /etc/rc5.d/S20S90openvpn -> ../init.d/S90openvpn
      lrwxrwxrwx1 root root20 Sep8 13:47 /etc/rc6.d/K20S90openvpn -> ../init.d/S90openvpn


      Fred Bogus Trumper wrote:

      hieß das script ursprünglich /etc/init.d/S90openvpn ?
      ja genau. Hatte, weil ich davon keine Ahnung hatte, den Namen einfach aus dem Post übernommen und jetzt den Namen zu ändern.......ach lieber nicht
    • schön ist das nicht, aber funktionieren müsste es
      openvpn wird gleichzeitig mit dem nfsserver gestartet, d.h. das netzwerk müsste bereits laufen, sonst kannst du den Wert in /etc/rc3.d auch auf S50 oder höher erhöhen

      wenn es korrekt sein soll:
      die Verlinkung in die runlevels wieder entfernen

      update-rc.d S90openvpn remove

      und /etc/init.d/S90openvpn in /etc/init.d/openvpn umbenennen und mit update-rc.d openvpn defaults neu in die runlevels einfügen,
    • Du hast mich überzeugt. Ich habe das Script umbenannt und die Verlinkung der Runlevels entfernt. Ich musste aber
      update-rc.d -f S90openvpn remove
      benutzen, damit alles entfernt wird. Anschließend die Runlevels wieder eingefügt. Jetzt sieht es so aus wie es soll. Danke nochmals für deine Hilfe