Wie OpenVPN auf USB-Stick aus debug.cfg starten

odoll

Mitglied
Mitglied seit
10 Apr 2006
Beiträge
716
Punkte für Reaktionen
13
Punkte
18
Hallo,

dank einiger Anleitungen hier und auch den Tec-Channel-Artikel habe ich es hinbekommen openvpn auf meiner 7170 (29.04.40, seit heute 29.04.97-8853 Phone Labor) zum Laufen zu bringen. Und zwar habe ich alles auf einem USB-Stick abgelegt.

Gestartet bekomme ich das leider nur von Hand (telnet zur fbox). Durch die Einträge in der debug.cfg wird der Deamon allerdings nicht automatisch gestartet, obwohl ich die syntaktisch identischen Befehle zum Starten per Hand ausführe. Wahrscheinlich ein Newbe U*X Problem (ist der USB-Stick evt. zu dem Zeitpunkt noch nicht gemountet?).

Hier sind die Zeilen in der debug.cfg sind, die eigentlich den Deamon starten sollten:

Code:
# OpenVPN als Daemon starten
mknod /var/tmp/tun c 10 200
/var/media/ftp/USBMassStorage-Partition-0-1/OpenVPN/openvpn --config /var/media/ftp/USBMassStorage-Partition-0-1/OpenVPNserver.ovpn &

Hinweise zu Korrekturen, bzw. alternativen Startmöglichkeiten sind herzlich willkommen.
--
DuG
Oliver
 
Mit sehr hoher Wahrscheinlichkeit ist der USB-Stick noch nicht gemountet, wenn debug.cfg ausgeführt wird.

Eine Lösung ist eine Warteschleife, die auf den USB-Stick wartet. So in der Art, aber Vorsicht, nicht getestet.
Code:
(
while ! test -f /var/media/ftp/USBMassStorage-Partition-0-1/OpenVPN/openvpn; do
  sleep 1
done
mknod /var/tmp/tun c 10 200
/var/media/ftp/USBMassStorage-Partition-0-1/OpenVPN/openvpn --config /var/media/ftp/USBMassStorage-Partition-0-1/OpenVPNserver.ovpn &
) &
Wichtig sind die Klammern und das '&' am Ende.

Am Besten mal in eine Datei schreiben, diese Datei ohne USB-Stick starten und schauen, ob der Start nach Einstecken des USB-Stick funktioniert.
Wenn es nicht funktioniert, dann anpassen, erst wenn es geht in die debug.cfg schreiben.
 
Hallo zusammen,

ich habe derzeit einen 1GB-Stick an meiner Box, der allerding partitioniert ist.
Eine EXT2-Partition, bestückt mit den Mod's und einer FAT32-Partition zum Freigeben im Internet. ;)
Die Internet-Partition liegt bei mir auf USB_DISK-Partition-0-2.

In der debug.cfg habe ich deshalb noch diese Zeilen stehen:
Code:
# # # # # # # # # Warten bis USB-Stick gemountet ist
max=5
i=0
while [ $i -lt $max ]; do
	if mount | grep " on /var/media/ftp/" > /dev/null; then
		break
        fi
        let i=$i+1
        sleep 10
done
#
# # # # # # # # # ENDE USB-Stick Warteschleife

# # # # # # # # # Ext2-Partition mounten
mkdir /var/media/[COLOR="Green"]USB_DISK-Partition-0-1[/COLOR]
modprobe ext2
mount -t ext2 /dev/sda1 /var/media/[COLOR="Green"]USB_DISK-Partition-0-1[/COLOR]
#
# # # # # # # # # ENDE Ext2-Mounten
Die Warteschleife checkt also, unabhängig vom Hersteller des Sticks, ob überhaupt ein Stick eingesteckt ist.
Die im mount-Bereich grün markierten Bereiche müssen dann noch an die Herstellerdaten angepasst werden.

Dank des Hinweises von RalfFriedl (die Lösung mit dem Abfrage-Prozess im Hintergrund ist genial! :D ) werde ich wohl am Wochenende meine debug.cfg so umstricken, daß die Box ohne eingesteckten Stick normal ("jungfräulich") bootet und mit Stick die Mod's automatisch nachlädt.

Joe
 
Zuletzt bearbeitet:
ein Dank für Eure Hinweise! Durch
die Lösung mit dem Abfrage-Prozess im Hintergrund ist genial! :D
ist mir erst klar geworden, dass das ja asynchron ist und die Abarbeitung der debug.cfg nicht hier hängen bleibt. Ich hätte gedacht, man sollte es irgendwo da einklinkten, wo auch AVM trackt, ob ein USB-Gerät angesteckt ist/wird.

Ich werd's gleich mal ausprobieren.

BTW: die 26'er Binaries von "The Construct" hatte ich nicht zum Laufen bekommen.
 
OK, ich habe es heute morgen umgesetzt

Dazu habe ich wie empfohlen folgendes kleines Shell-Skript erstellt,
Code:
# cat /var/tmp/opvn.sh
#!/bin/sh
(
while ! test -f /var/media/ftp/USBMassStorage-Partition-0-1/OpenVPN/openvpn; do
  sleep 1
done
mknod /var/tmp/tun c 10 200
cd /var/media/ftp/USBMassStorage-Partition-0-1/OpenVPN
./openvpn --config server.ovpn &
) &

die fbox stromlos gemacht, den USB-Stick abgezogen und nach dem Booten der fbox das Skript per Hand gestartet.
Code:
# ps
  PID  Uid     VmSize Stat Command
    1 root        304 S   init
[...]
 2149 root        352 S   /bin/sh ./opvn.sh
 2240 root        232 S   sleep 1
 2241 root        340 R   ps

Nachdem ich den USB-Stick wieder angesteckt hatte, fand ich folgende Meldungen auf der Konsole
Code:
Oct 20 07:38:07 eventadd[2430]: EVENT(131): USB-Gerõt 002, Klasse 'storage', angesteckt
Oct 20 07:38:16 eventadd[2632]: EVENT(140): Partition unter USBMassStorage-Partition-0-1 eingebunden
mknod: /var/tmp/tun: File exists
Sat Oct 20 07:38:19 2007 us=370782 Current Parameter Settings:
Sat Oct 20 07:38:19 2007 us=372786   config = 'server.ovpn'
[...]
Sat Oct 20 07:38:19 2007 us=889116 Listening for incoming TCP connection on [undef]:1194
Oct 20 07:38:28 tr069starter[2649]: tr069starter: /var/media/ftp/USBMassStorage-Partition-0-1/tr069start.config not found - exit
und mit
Code:
# ps
  PID  Uid     VmSize Stat Command
    1 root        304 S   init
[...]
 2462 root            SWN [usb-storage]
 2645 root        296 S   ftpd -D -q -t 120 -m 15 -h FRITZ!Box Fon WLAN 7170 (U
 2655 root        712 S   ./openvpn --config server.ovpn
 2935 root        340 R   ps
würde ich mal sagen: tut!

Also das Ganze in die debug.cfg eingebaut und tut auch (nur Reboot, ohne Aus- bzw. Anstecken des Sticks).

Aber wenn ich mir die obige Meldung "tr069start.config not found" anschaue - hätte man das evt. nicht auch direkt auf dem Stick mit ablegen können? Sucht AVM per Default nach der Datei auf dem Stick und führt dessen Inhat analog der debug.cfg aus? Wenn ja, müßte man nur noch mit der Variable für die USB-Partition arbeiten. Dann hätte man es ziemlich generisch!?
 
Mit tr069start.config muß zunächst einmal TR069 aktiviert werden. Die Frage ist, ob man das überhaupt will.
Die nächste Frage ist, was man mit dieser Datei tr069start.config überhaupt machen kann. Nach dem Namen "config" zu urteilen könnte es gut sein, daß von dieser Datei nur Parameter eingelesen werden und keine Anweisungen. Vielleicht findest Du bei AVM eine Beschreibung was man damit tun kann.
Außerdem weiß man nicht, wie es auf anderen Firmwares aussieht (ältere, neuere, andere Hardware, anderes Branding, ...).

Ich persönlich finde die Idee einer Autostart-Datei auf externen Datenträgern nicht gut, weder bei Windows noch bei der FritzBox. Es mag manchmal bequem sein, aber es kann auch gefährlich sein, wenn ungefragt ein beliebiges Programm von einem externen Datenträger gestartet wird, nur weil er angeschlossen wird.

Wenn es Dir eher darum geht, daß das Verzeichnis, unter dem der USB-Stick erreichbar ist, auch anders heißen kann, dann kannst Du auch das "USBMassStorage-Partition-0-1" durch einen Stern "*" ersetzen. Das geht, solange keine zwei USB-Sticks mit einem Verzeichnis "OpenVPN" angeschlossen sind.
 
Autostart finde schon gut und bequem, ich teile allerdings vollkommen die Sicherheitsbedenken. M.E. sollte ein Autostart auf Datenträger beschränkt sein, die ich explizit dafür vorbereitet habe, und die sich gegenüber dem Rechner als berechtigt "ausweisen" können (z.B. im einfachsten Fall mit einem Shared Key, oder besser mit einem Zertifikat, das mit dem Key des Rechners signiert wurde).
 
Die nächste Frage ist, was man mit dieser Datei tr069start.config überhaupt machen kann. Nach dem Namen "config" zu urteilen könnte es gut sein, daß von dieser Datei nur Parameter eingelesen werden und keine Anweisungen. Vielleicht findest Du bei AVM eine Beschreibung was man damit tun kann.

Hat inzwischen jemand in Erfahrung bringen können, ob sich die tr069start.config irgendwie dazu verwenden lässt, automatisch ein Script auf dem angesteckten USB-Speicher zu starten?
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,067
Beiträge
2,245,472
Mitglieder
373,504
Neuestes Mitglied
andkel
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.