VPNTunnel.de mit Freetz openVPN

Andii

Mitglied
Mitglied seit
24 Jun 2005
Beiträge
364
Punkte für Reaktionen
3
Punkte
18
Hallo,
habe es nun geschafft das Freetz Trunk mit openVPN zu installieren.
Brauche aber nun bitte Eure Hilfe um das openVPN für das VPNTunnel.se zu konfigurieren.
Habe von VPNTunnel.se die "openvpn.conf" und die "ca.crt" erhalten.
Können diese 2 Dateien über die Freetz Web-Oberfläche eingefügt werden und ist es damit schon getan?
 
...habe nun mal versucht herauszubekommen wo diese zwei ("openvpn.conf" und die "ca.crt") Dateien im Freetz auf der FritzBox hingehören.
Habe mir die Verzeichnisse auf der FritzBox einmal mit ftp angeschaut.
Eine "openvpn.conf" und die "ca.crt" scheint es noch nicht zu geben.
Es gibt dort "etc/default.openvpn" dort liegen einige Dateien drin wie z.b. eine "openvpn.cfg usw. kommen dort die "openvpn.conf" und die "ca.crt" mit rein?
 
...
Habe mir die Verzeichnisse auf der FritzBox einmal mit ftp angeschaut.
Eine "openvpn.conf" und die "ca.crt" scheint es noch nicht zu geben.
...
Mit telnet und cat kannst Du auf der Box mehr sehen als mit ftp. Du musst auch nicht auf deine Box, um zu sehen, wann und wo es die "openvpn.conf" bzw. "ca.crt" gibt. Das kannst Du in deinem Build-System oder auf dem freetz-Server sehen. Schau dir mal die Datei "rc.openvpn" an:
Code:
if [ -r "/tmp/flash/openvpn/own_${DAEMON}.conf" ]; then
		cp /tmp/flash/openvpn/own_${DAEMON}.conf /mod/etc/${DAEMON}.conf 
	else
		if [ -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
	fi

	$DAEMON --config /mod/etc/${DAEMON}.conf --writepid /var/run/${DAEMON}.pid
 
hier meine "rc.openvpn"
Code:
#!/bin/sh

scriptname=$0
DAEMON=${scriptname##*/rc.}
. /etc/init.d/modlibrc

mypidof() {
	ps -w | sed -n "/\/m[o]d\/etc\/${1}.conf/ s/^[ ]*\([0-9]*\)[ ].*/\1/ p"
}

# TODO: Remove compat section in future
compat () {
mkdir -p /tmp/flash/openvpn
for x in $(find /tmp/flash/ -name ca.crt -o -name box.crt -o -name box.key -o -name dh.pem -o -name crl.pem -o -name static.key ); do
	mv $x /tmp/flash/openvpn/$(echo $x | sed 's%^.*flash/\(openvpn_\)*%%'| tr '/' '_')
	echo "moved $x to /tmp/flash/openvpn/$(echo $x | sed 's%^.*flash/\(openvpn_\)*%%'| tr '/' '_')"
done
rmdir /tmp/flash/openvpn_* 2> /dev/null
/usr/bin/modsave flash >/dev/null
}

if [ ! -e /var/tmp/.openvpnfirstrun ]; then
	touch /var/tmp/.openvpnfirstrun
	/mod/etc/default.openvpn/openvpn_dynamic_conf
	[ -r /var/tmp/flash/openvpn/static.key ] || compat
fi
[ -x /mod/sbin/$DAEMON ] || ln -s /usr/sbin/openvpn /mod/sbin/$DAEMON

case $1 in
	""|load|start|restart)
		modlib_addgroup openvpn
		modlib_adduser openvpn -G openvpn -s /bin/false -H -D -g "OpenVPN account"
		mkdir -p /tmp/openvpn/etc
		cp -f /etc/resolv.conf /tmp/openvpn/etc
		;;
esac

start() {
	echo -n "Starting $DAEMON ... "
	if [ -n "$(mypidof $DAEMON)" ]; then
		echo "already started."
		return 1;
	fi

	if [ ! -e "/tmp/flash/openvpn/static.key" ]; then
		echo -n "creating static.key ... "
		openvpn --genkey --secret /tmp/flash/openvpn/static.key
		/usr/bin/modsave flash >/dev/null
	fi

	if [ -r "/tmp/flash/openvpn/own_${DAEMON}.conf" ]; then
		cp /tmp/flash/openvpn/own_${DAEMON}.conf /mod/etc/${DAEMON}.conf 
	else
		if [ -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
	fi

	$DAEMON --config /mod/etc/${DAEMON}.conf --writepid /var/run/${DAEMON}.pid
	exitval=$?
	if [ "$exitval" -eq 0 ]; then
		echo 'done.'
	else
		echo 'failed.'
		exit $exitval
	fi
	# if we have brctl, then try to add tap to "lan" if requestet (ignore errors)
	if [ $(which brctl) ] && TAP=$(grep "#Helperline" /mod/etc/${DAEMON}.conf | grep -o tap[0-9] ); then
		brctl addif lan $TAP 2> /dev/null
	fi
}

stop() {
	echo -n "Stopping ${DAEMON} ... "
	PID=$(mypidof $DAEMON)

	if [ -z "$PID" ]; then
		echo "not running."
		return 1
	fi

	kill $PID > /dev/null 2>&1
	exitval=$?

	if [ "$exitval" -eq 0 ]; then
		echo 'done.'
	else
		echo 'failed.'
		exit $exitval
	fi

	rm -f /mod/etc/${DAEMON}.conf
	rm -f /var/run/${DAEMON}.pid
}

case $1 in
	""|load)
		if [ "$DAEMON" = "openvpn" ]; then
			modreg cgi 'openvpn' 'OpenVPN'
			modreg daemon openvpn
			modreg file openvpn 'box_crt' 'Box Cert' 0 "box_crt"
			modreg file openvpn 'box_key' 'Private Key' 0 "box_key"
			modreg file openvpn 'ca_crt' 'CA Cert' 0 "ca_crt"
			modreg file openvpn 'crl_pem' 'CRL' 0 "crl_pem"
			modreg file openvpn 'dh_pem' 'DH Param' 0 "dh_pem"
			modreg file openvpn 'static_key' 'Static Key' 0 "static_key"
		fi
		d_BU="$DAEMON"
		as="${OPENVPN_AUTOSTART#*#}"
		for d in $(echo "openvpn${OPENVPN_CONFIG_NAMES#*DEFAULT#}" | sed 's/#/ openvpn_/g' ); do
			if [ "${as%%#*}" != "yes" ]; then
				echo "$d is disabled" 1>&2
			else
				DAEMON="$d"
				start
			fi
			as=${as#*#}
		done
		DAEMON="$d_BU"
		;;
	unload)
		stop
		if [ "$DAEMON" = "openvpn" ]; then
			modunreg file openvpn
			modunreg daemon openvpn
			modunreg cgi openvpn
		fi
		;;
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		stop
		sleep 1
		start
		;;
	reload)
		if [ -r "/var/run/${DAEMON}.pid" ]; then
			kill -HUP $(cat /var/run/${DAEMON}.pid)
		fi
		;;
	status)
		if [ -z "$(mypidof $DAEMON)" ]; then
			echo 'stopped'
		else
			echo 'running'
		fi
		;;
	*)
		echo "Usage: $0 [load|unload|start|stop|restart|reload|status]" 1>&2
		exit 1
		;;

esac

exit 0

Da ich wenig Ahnung von Linux habe hilft mir das nicht wirklich weiter.

Es gibt bei vpntunnel.se eine Anleitung.
https://www.vpntunnel.se/howto/linux.pdf

Da steht das man unter " /etc/openvpn" ein directory "keys" anlegen muss und dort rein die "ca.crt" kopieren soll.
Die openvpn.conf kommt dort nach " /etc/openvpn"
 
Im freetz-IF gibt es doch config-Seiten auf denen die ganzen keys eingetragen werden können.
 

Anhänge

  • Auswahl_001.png
    Auswahl_001.png
    5.1 KB · Aufrufe: 139
  • Auswahl_003.png
    Auswahl_003.png
    13.5 KB · Aufrufe: 131
Zuletzt bearbeitet von einem Moderator:
Da steht das man unter " /etc/openvpn" ein directory "keys" anlegen muss und dort rein die "ca.crt" kopieren soll.
Die openvpn.conf kommt dort nach " /etc/openvpn"
OpenVPN aus Freetz ist so konzipiert, dass es auch mit anderen Pfaden zurecht kommt. Wichtig ist der Inhalt von "openvpn.conf" und "ca.crt".
 
Ja OK.
Wo muss ich nun die "openvpn.conf" und "ca.crt" hinkopieren?
Oder ist das alles von der Web-Oberfläche machbar?
Die "openvpn.conf" sieht so aus:
Code:
float
client
dev tap
proto udp
nobind

; Cert
ca /etc/openvpn/keys/ca.crt
ns-cert-type server
cipher BF-CBC	#Blowfish

;Vpn server

remote-random
remote melissa.vpntunnel.se 1194
remote melissa.vpntunnel.se 10010
remote melissa.vpntunnel.se 10020


;Auth
auth-user-pass #passwd

persist-key
persist-tun

; Logging
comp-lzo
verb 1
 
...
Wo muss ich nun die "openvpn.conf" und "ca.crt" hinkopieren?
Oder ist das alles von der Web-Oberfläche machbar?
...
Ja. Siehe Beitrag #5 von colonia. Der maintainer von OpenVPN für Freetz, hat für die Konfiguration ein WEB-IF gemacht.;)
 
Da muss ich nun die Zeilen aus der openvpn.conf in der Web-Oberfläche unterbringen.
Die Zuordnung wo kommt was hin ist auch nicht gerade leicht.
Vieleicht kann mir doch jemand sagen wo bei Freetz die openvpn.conf hingehört?
Danke
 
Danke.
Dann werd ich das mal so versuchen anzupassen...
 
Ich werds wohl nicht schaffen...
Alles was ich nach "/mod/etc/" kopiere ist nach einen Neustart der Box wieder weg.
 
...
Alles was ich nach "/mod/etc/" kopiere ist nach einen Neustart der Box wieder weg.
Die "rc.openvpn" sagt dir warum das so ist:
Code:
...
			cat /tmp/flash/${DAEMON}.extra >> /mod/etc/${DAEMON}.conf
Mach die Änderungen im Buildsystem, bevor Du das Freetz-Image kompilierst. Mit dem Freetz-Image bekommst Du dann deine Änderungen auf die Box.
 
Irgendwie habe ich ein Deja-Vu, das Thema gab es doch schon mehrmals?!?
Ach ja, falls es dir die Suche nicht liefert, solltest du hier, oder hier was dazu finden.

In Kürze: Speichere das Cert als "CA-Zertifikat" mit den "normalen" OpenVPN-Einstellungen auf deiner Box, dann liegt es unter "/tmp/flash/openvpn/ca.crt". Abspeichern einer "eigenen Config" kannst du z.B. mit der Trunk-Version recht einfach erreichen, indem du die Datei als "/tmp/flash/openvpn/own_openvpn.conf" ablegst (danach mit "modsave" resetfest sichern). Dann werden die GUI-Einstellungen ignoriert und nur diese Datei wird genutzt...

Jörg
 
Zuletzt bearbeitet:
Danke!
Soweit erst mal OK.
Wie muss ich den Benutzernamen und das Passwort angeben?
Der Eintrag in der openvpn.conf sieht so aus:

;Auth
auth-user-pass #passwd
 
So wie immer bei OpenVPN in der Console beim Starten, oder (mit Dateinamen dahinter) in der Datei, sagt die Dokumentation ;-)
Code:
[B]--auth-user-pass [up][/B]
    Authenticate with server using username/password. 
    [B]up[/B] is a file containing username/password on 2 lines 
    (Note: OpenVPN will only read passwords from a file if it has been built 
    with the [B]--enable-password-save[/B] configure option, or on Windows 
    by defining ENABLE_PASSWORD_SAVE in config-win32.h).

    If [B]up[/B] is omitted, username/password will be prompted from the console.
    The server configuration must specify an[B] --auth-user-pass-verify [/B]script 
    to verify the username/password provided by the client.
 
Habe nun alles nach besten Wissen konfiguriert.
1. Freetz Trunk mit openvpnn installiert
2.openvpn.conf in own_openvpn.conf umbenannt und nach /tmp/flash/openvpn kopiert
meine openvpn.conf sieht so aus:
Code:
float
client
dev tap
proto udp
nobind

; Cert
ca /tmp/flash/openvpn/ca.crt
ns-cert-type server
cipher BF-CBC	#Blowfish

;Vpn server

remote-random
remote melissa.vpntunnel.se 1194
remote melissa.vpntunnel.se 10010
remote melissa.vpntunnel.se 10020


;Auth
auth-user-pass /tmp/flash/openvpn/meine.txt

persist-key
persist-tun

; Logging
comp-lzo
verb 1
mit "Modsave" gespeichert.
2.Passwortdatei angelegt auch nach /tmp/flash/openvpn kopiert.
"meine.txt" ist die Passwortdatei und sieht so aus
Code:
BenutzerXXX
Passwxxx
3. in der Web Oberfläche von Freetz openVPN die "ca.crt" als Text reinkopiert.
Code:
-----BEGIN CERTIFICATE-----
MIIDeDCCAuGgAwIBAgIJANuc2Vh7gcepMA0GCSqGSIb3DQEBBQUAMIGFMQswCQYD
VQQGEwJTRTELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzEVMBMG
A1UEChMMRm9ydC1GdW5zdG9uMRgwFgYDVQQDEw9Gb3J0LUZ1bnN0b24gQ0ExITAf
BgkqhkiG9w0BCQEWEm1lQG15aG9zdC5teWRvbWFpbjAeFw0wOTA0MDYxNjM0MTFa
Fw0xOTA0MDQxNjM0MTFaMIGFMQswCQYDVQQGEwJTRTELMAkGA1UECBMCQ0ExFTAT
BgNVBAcTDFNhbkZyYW5jaXNjbzEVMBMGA1UEChMMRm9ydC1GdW5zdG9uMRgwFgYD
VQQDEw9Gb3J0LUZ1bnN0b24gQ0ExITAfBgkqhkiG9w0BCQEWEm1lQG15aG9zdC5t
eWRvbWFpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuPJ8Rim4azRKjCKU
900yoyzWGxYN5KqDaeDyF7/M2al9bGmPQ/ZFfh/O9g7O+YfyIGM5ia3y8XwSuHQe
2k1pwhYeIpwzxZNDlgUjtSZMdEpaaakZO3vxqGmqK+DewC/H2cNGBI1IOX4uapzd
qOVvyFN1ArdKC6HVpvJAWP7kWV8CAwEAAaOB7TCB6jAdBgNVHQ4EFgQUPaQwCEOf
FHjwVxTGcEnkepprGAQwgboGA1UdIwSBsjCBr4AUPaQwCEOfFHjwVxTGcEnkeppr
GAShgYukgYgwgYUxCzAJBgNVBAYTAlNFMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM
U2FuRnJhbmNpc2NvMRUwEwYDVQQKEwxGb3J0LUZ1bnN0b24xGDAWBgNVBAMTD0Zv
cnQtRnVuc3RvbiBDQTEhMB8GCSqGSIb3DQEJARYSbWVAbXlob3N0Lm15ZG9tYWlu
ggkA25zZWHuBx6kwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBocS5D
+wddso+z+OPUpHCDZNGy9t85ZS+mt58ouSy36+G9GYvFFqq3zihHxm3Xs3Bi/Rh7
QqerdZAmE09ehb5s3G2+ZSEORKHjlgYc7o29J6c1BgB2JXAiT+yieICYXh/kNG0K
sWAGuKGSrAaJkeN7E7vCwjttm0BdAkjH4MJfZg==
-----END CERTIFICATE-----

Nun auf der Web-Oberfläche openvpn gestartet.
Es kommt keine Fehlermeldung, geht aber nicht.
Es wird keine Verbindung aufgebaut.

Was mache ich falsch?
Gibt es eine log Datei im Freetz für openvpn?

Danke!
 
Zuletzt bearbeitet:
Log: Rufe das "händisch" auf, und sieh ;-)(ggf. den Wert für "verb" noch hochsetzen).
openvpn /tmp/flash/openvpn/own_openvpn.conf

Damit es "selbsttätig im Hintergrund läuft" solltest du dann später noch ein "daemon" hinzufügen...

Jörg
 
Danke Jörg!
Hier mal die Log Datei, kann nicht deuten was da nicht stimmt.
Code:
Use --help for more information.
root@fritz:/var/mod/root# openvpn /tmp/flash/openvpn/own_openvpn.conf
Mon Mar 28 16:09:56 2011 OpenVPN 2.1.4 mipsel-linux [SSL] [LZO2] [EPOLL] [MH] [P                                                                            F_INET6] built on Mar 20 2011
Mon Mar 28 16:09:56 2011 WARNING: file '/tmp/flash/openvpn/meine.txt' is group o                                                                            r others accessible
Mon Mar 28 16:09:56 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or hig                                                                            her to call user-defined scripts or executables
Mon Mar 28 16:09:56 2011 LZO compression initialized
Mon Mar 28 16:09:56 2011 RESOLVE: NOTE: melissa.vpntunnel.se resolves to 9 addre                                                                            sses
Mon Mar 28 16:09:56 2011 UDPv4 link local: [undef]
Mon Mar 28 16:09:56 2011 UDPv4 link remote: [AF_INET]178.73.212.230:10010
Mon Mar 28 16:09:56 2011 WARNING: this configuration may cache passwords in memo                                                                            ry -- use the auth-nocache option to prevent this
Mon Mar 28 16:09:57 2011 [server] Peer Connection Initiated with [AF_INET]178.73                                                                            .212.230:10010
Mon Mar 28 16:09:59 2011 TUN/TAP device tap0 opened
Mon Mar 28 16:09:59 2011 /sbin/ifconfig tap0 178.73.209.152 netmask 255.255.255.                                                                            0 mtu 1500 broadcast 178.73.209.255
Mon Mar 28 16:09:59 2011 NOTE: unable to redirect default gateway -- Cannot read                                                                             current default gateway from system
Mon Mar 28 16:09:59 2011 Initialization Sequence Completed
 
Das liegt an dem "interessanten" Default-Routing von AVM.

Was du mal versuchen könntest, wäre openvpn mit dem anhängenden Patch neu zu übersetzen (ich habe es noch nicht richtig getestet, deshalb erstmal so probieren):
Code:
# im Freetz-Verzeichnis:
patch -p0 < openvpn_fix_dg.patch.txt
make openvpn-precompiled
Dann zum Testen das neue Binary aus "packages/target-mips*/openvpn-2.1.4/root/usr/sbin/openvpn" auf die Box bringen (z.B. in den FTP) und schauen, ob die Config damit startet ("/pfad/zum/ftp/auf/der/box/openvpn /tmp/flash/openvpn/own_openvpn.conf").
U.u. musst du es erst "ausführbar" machen ("chmod +x <Pfad_zum_Binary>").

Wenn es damit geht, kannst du ein neues Image mit diesem OpenVPN drin bauen...

Jörg
 

Anhänge

  • openvpn_fix_dg.patch.txt
    1.6 KB · Aufrufe: 52
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.