[gelöst] openvpn - rc.openvpn editieren - freetz-1.1.2

mali2008

Neuer User
Mitglied seit
23 Feb 2008
Beiträge
90
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

habe einen openvpn server auf der 7270 per freetz 1.1.2 laufen.

Ich möchte den Start von openvpn in der /mod/etc/rc.openvpn so einstellen, dass beim Starten im Pfad/xy/ die datei openvpn.conf ( ist meine eigens erstellte ) sucht und openvpn im Falle des Findes mit dieser Konfiguration ausführt.
Sollte meine Konfiguration nicht gefunden werden, dann soll das Skript seinen Standardverlauf nehmen.

Hat jmd Hilfe für mich parat? Meine beschränkten Kenntnisse reichen nicht ganz aus.

Auszug aus der rc.openvpn

PHP:
...start() {
	if [ ! -e "/tmp/flash/static.key" ]; then
		echo "Creating static.key"
		openvpn --genkey --secret /tmp/flash/static.key
		/usr/bin/modsave flash
	fi
	
	if exist /var/media/ftp/uStor01/${DAEMON}/server/${DAEMON}.conf;
	then cat /var/media/ftp/uStor01/${DAEMON}/server/${DAEMON}.conf > /mod/etc/${DAEMON}.conf
	
	elif [ -x "/tmp/flash/${DAEMON}_conf" ]; then
		/tmp/flash/${DAEMON}_conf /mod/etc/${DAEMON}.conf
	else
		/mod/etc/default.${DAEMON}/${DAEMON}_conf /mod/etc/${DAEMON}.conf
	fi

	if [ -r "/tmp/flash/${DAEMON}.extra" ]; then
		cat /tmp/flash/${DAEMON}.extra >> /mod/etc/${DAEMON}.conf
	fi

	echo -n "Starting $DAEMON ... "

	$DAEMON --config /mod/etc/${DAEMON}.conf --writepid /var/run/${DAEMON}.pid...
 
Zuletzt bearbeitet:
[...]
Ich möchte den Start von openvpn in der /mod/etc/rc.openvpn so einstellen, dass beim Starten im Pfad/xy/ die datei openvpn.conf ( ist meine eigens erstellte ) sucht und openvpn im Falle des Findes mit dieser Konfiguration ausführt.
[...]
Hast Du im Verzeichnis "/var/media/ftp/uStor01/openvpn/server" eine "openvpn.conf"-Datei?
 
Die letzte Zeile reicht für dich schon aus. Dort wird
[codfe]
/mod/etc/${DAEMON}.conf
[/code]
als Configfile genutzt. Ein anderer Pfad sollte reichen. Evtl kannst du noch per

Code:
if  [ -f /pad/zu/deiner/config ]; then
#hier den Aufruf mit deiner Config
else
#hier den originalen Aufruf
fi
einbauen.
(Und ja, ich habe für den Lerneffekt absichtlich nicht alles komplett ausgeschrieben, das lässt sich aber _wirklich_ einfach nachstellen.)
 
Hast Du im Verzeichnis "/var/media/ftp/uStor01/openvpn/server" eine "openvpn.conf"-Datei?

Ja dort hab ich die Datei.

Die letzte Zeile reicht für dich schon aus. Dort wird
[codfe]
/mod/etc/${DAEMON}.conf
[/code]
als Configfile genutzt. Ein anderer Pfad sollte reichen. Evtl kannst du noch per

Code:
if  [ -f /pad/zu/deiner/config ]; then
#hier den Aufruf mit deiner Config
else
#hier den originalen Aufruf
fi...[/QUOTE]

merci, hat geklappt!!!

Hier der korrekte Auszug:

[PHP]echo -n "Starting $DAEMON ... "

	if [ -f /var/media/ftp/uStor01/openvpn/server/${DAEMON}.conf ]; then
		$DAEMON --config /var/media/ftp/uStor01/openvpn/server/${DAEMON}.conf --writepid /var/run/${DAEMON}.pid
                exitval=$?
	else
		$DAEMON --config /mod/etc/${DAEMON}.conf --writepid /var/run/${DAEMON}.pid
                exitval=$?
	fi
	[/PHP]

Warum hat es eigentlich nicht oben geklappt?
 
Zuletzt bearbeitet:
Gibt es "exist"?
 
Nein, glaub nicht. Das "exist" resultiert noch aus meiner Modifikation ( in DOS gabs das ^^ ).
Ich habe die orig. rc.openvpn verwendet und nur meinen zuletzt genannten Auszug der orig. Datei angepasst.
 
Es gab schon Lösungsvorschläge, ggf. wäre ein alternativer ansatz
via autorun.sh und FreetzMount schön.

Quasi OpenVpn on demand:
autorun.sh
Code:
#!/bin/sh

mydir="$(dirname "$0")"
/usr/sbin/openvpn --config "$mydir"/openvpn.config

Steck der Stick beim Booten drin oder du steckst ihn nachtraeglich ein startet OpenVpn.

Du musst freetz nicht patchen, was die evtl ein sorgenärmeres späteres Upgrade ermöglicht.
 
... und noch eine Möglichkeit:

Eigentlich sollte deine Anfrage hier (wie in vielen rc-files) über den gleichen Mechanismus laufen:
Wenn "/tmp/flash/${DAEMON}_conf" existiert, wird die statt der default Datei zum Generieren der Config genutzt, und so kann man die Dienste mit einer eigenen Config starten.
In vielen "rc"-s gibt es dazu was in der Art:
Code:
if [ -x "/tmp/flash/${DAEMON}_conf" ]; then
        /tmp/flash/${DAEMON}_conf /mod/etc/${DAEMON}.conf

Damit sollte eine /tmp/flash/openvpn_conf diser Art helfen, ganz ohne irgendwelche anderen Änderungen ;-)

Code:
#!/bin/sh

DAEMON=openvpn
# Da man nicht immer genau weiss, wie der Mountname heisst ...
MY_CONF=$(find /var/media/ftp/*/openvpn/server -name ${DAEMON}.conf 2> /dev/null)

if [ $MY_CONF ]; then
	cat $MY_CONF > /mod/etc/${DAEMON}.conf
else
	/mod/etc/default.${DAEMON}/${DAEMON}_conf /mod/etc/${DAEMON}.conf
fi


Jörg
 
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.