OpenVPN auf Fritzbo 7270 meine Lösung

axbl

Neuer User
Mitglied seit
2 Feb 2009
Beiträge
38
Punkte für Reaktionen
0
Punkte
6
Hallo,
habe auch rumexperimentiert und bin auf die verschiedenen Probleme gelaufen die hier diskutiert werden.

Bei meiner Lösung lege ich kein virtuelles Interface an sonder trage den Port direkt in der Werboberfläche ein. Die patche ich damit man 0.0.0.0 eintragen kann. Der Patch und der Start vom OpenVPN geschieht automatisch über die debug.cfg.

Vielen Dank an alle die hier so tolle Tips liefern !

Die Box hat bei mir die IP 192.168.1.1.
DHCP ist eingeschaltet von 2 bis 199.
Der tunnel bekommt 192.168.1.200.
Port für OpenVPN ist bei mir 1195.
Die Dateien befinden sich in USB=/var/media/ftp/cnmemory-cnmemory-01/OpenVPN, und zwar folgende:

server.conf
openvpn
server.key
dh1024.pem
autorunVPN.sh
autorunVPN_install.sh
server.crt
ca.crt


Das script autorunVPN.sh zum Starten:
Code:
#>> OpenVPN
USB=/var/media/ftp/cnmemory-cnmemory-01/OpenVPN
IP=192.168.1.200
{
	echo "OpenVPN Installer: wait for internet connection..."
  while ! ping -c 1 "google.com" >/dev/null 2>&1; do
  	sleep 20
  done
	echo "OpenVPN Installer: wait for usb drive..."
  while true; do
  	if mount | grep " on /var/media/ftp/" >/dev/null; then
			echo "USB drive(s) found"
			sleep 3
			break
		fi
  	sleep 11
  done
	#Device Node erzeugen
	mknod /var/tmp/tun c 10 200
	#OpenVPN starten
	$USB/openvpn --cd $USB --config $USB/server.conf --daemon
	#Warten bis das TAP-Interface eingerichtet wurde
	count=0
	while [ $count -le 5 ] &&  ! ifconfig tap0 > /dev/null 2> /dev/null ; do 
	        sleep 1
	        count=$(( $count + 1 ))
	done
	#IP-Adresse an das Tap0-Interface binden
	ifconfig tap0 $IP up
	#Netze bridgen
	brctl addif lan tap0
	#Weboberfläche patchen damit Weiterleitung eingetragen werden kann
	pr=`find /var/html/ -name portrule.js`
	sed  's/return g_mldIpAdr0000/return null/'  $pr > /var/tmp/portrule.js
	mount -o bind  /var/tmp/portrule.js  $pr
	if !(grep "0.0.0.0:1195" /var/flash/ar7.cfg) >/dev/null; then
		echo "Portfreigabe TCP 0.0.0.0:1195 0.0.0.0:1195 in WebOberflaeche freigeben !"
  fi
} &
#<< OpenVPN

Mit dem Script autorunVPN_install.sh kann man das Startscript zum automatischen Start in die debug.cfg eintargen lassen:

Code:
#!/bin/ash
#Autorun von OpenVPN in debug.cfg eintragen
filed=/var/flash/debug.cfg
filedbk=/var/debug.tmp
if [ "$(grep -c 'OpenVPN' $filed)" -eq 0 ]; then
	cat $filed >$filedbk
	echo "# Autorun FritzLoad" >> $filedbk
	cat autorunVPN.sh >> $filedbk
	cat $filedbk >$filed
	echo "Der Eintrag wurde ins $filed eingefügt"
else
  echo "Der Eintrag ist schon vorhanden!!!"
fi

Meine server.conf:

Code:
proto tcp-server
port 1195
dev tap0
dev-node /var/tmp/tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig 192.168.1.200 255.255.255.0
client-to-client 
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 3
daemon
mode server
tls-server

Auf dem Client braucht man folgende Dateien:
ca.crt
client1.crt
client1.key
client.conf

Meine client.conf:

Code:
client
proto tcp-client
remote www.meinserver.com 1195
ns-cert-type server
ifconfig 192.168.1.201 255.255.255.0
dev tap0
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 2
float

Für weitere Clients vergebe ich IPs von 202 bis 250.

Installation:
Verzeichnis OpenVPN auf dem USB-Stick per FTP anlegen.
Die Dateien per FTP darauf kopieren.
Mit Telnet auf die Box (ev. mit #96*7* am Telefon Telnet einschalten).
Dann mit Telnet:
cd /var/media/ftp/cnmemory-cnmemory-01/OpenVPN
./autorunVPN.sh

Wenn die Meldung kommt das der Port noch freigeschaltet werden muß das in der Weboberfläche machen.
Wenn alle funktioniert mit Telnet den Autostart eintragen:
./autorunVPN_install.sh

Grüße,
Axel
 
danke für die Info. Welches OpenVPN Binary nutzt du für die FRITZ!Box?
Ich habe bei mir noch die folgende Version drauf. Gibt's was Aktuelleres (Security)?
Code:
# ./openvpn --version
OpenVPN 2.1_rc1 mipsel-linux [SSL] [LZO2] [EPOLL] built on Jan  5 2007
Developed by James Yonan
Copyright (C) 2002-2005 OpenVPN Solutions LLC <[email protected]>
 
hallo axbl,

eine tollte anleitung, werde ich bei gelegenheit ausprobieren. kannst du vielleicht noch kurz zusammenschreiben, wie man im linux folgende dateien erzeugt:
- server.key
- dh1024.pem
- server.crt
- ca.crt
- client1.crt
- client1.key

so eine anleitung wäre übrigens genau das richtige für meine homepage, wenn du nichts dagegen hast?

gruß
Radislav
 
ein Wiki zu OpenVPN auf FRITZ!Box findet sich hier >>> hier <<<
Neben den Hinweisen zu den Zertifikaten und Konfigurationsdateien bin auch auf Links zu Binary-Versionen gestoßen, deren Aktualität mit einem neusten Build Datum von 9.7.2007 auch nicht mehr die Jüngsten sind.
 
@odoll: OpenVPN 2.1_rc15 mipsel-linux [SSL] [LZO2] [EPOLL] built on Mar 13 2009

@Radislav: Kannst Du gerne übernehmen.

Habe allerdings noch das Problem das das OpenVPN ab und zu abstürzt und die Box neu startet mit der Version.
 
Hallo Axel,

ich habe leider ein keines Problem mit deinem Script autorunVPN.sh.
Starte ich dieses kommt eine Fehlermeldung.
In Scripten bin ich nun wirklich ne Niete so dass ich auf deine Hilfe hoffe.
Die Meldung lautet:

# ./autorunVPN.sh
: not foundN.sh: line 4: {
OpenVPN Installer: wait for internet connection...
./autorunVPN.sh: line 39: syntax error: "}" unexpected (expecting "then")
#

Danke
mfg Matze

edit
man sollte die beispiele nicht per copy&paste nutzen
 
Zuletzt bearbeitet:
hallo,

ich habe die anleitung befolgt und es funktioniert soweit auch alles, d.h. ich kann ueber openvpn meinen rechner zu hause anpingen, aber sobald ich versuche mich per ssh an meinem remote-pc anzumelden scheint meine fritzbox (7240 mit neuster firmware) das nicht zu verkraften (obwohl sonst nur wlan aktiviert ist) und rebootet. mit anderen worten openvpn scheint auf der fritzbox unbrauchbar zu sein, weil es einfach nicht stabil läuft - waere ja auch zu schoen gewesen.

die 7240 scheint ja mit die leistungsstaerkste cpu zu haben, aber das reicht wohl scheinbar fuer openvpn nicht?

hat hier ueberhaupt jemand openvpn _stabil_ (auch unter last, also z.b. dateien kopieren usw.) auf der fritzbox laufen?

wenn ja, mit welcher openvpn version und mit welcher firmware?

echt schade :sad:

ps: vielleicht liegt es ja auch an dem uralt-kernel (2.6.19.2), den die FB drauf hat, aber freetz hat ja auch keinen neueren... kann man also wohl nicht updaten? diese loesung hier waere echt toll gewesen (kein freetz), aber ich denke mit freetz wirds auch nicht besser laufen oder?
 
.... mit anderen worten openvpn scheint auf der fritzbox unbrauchbar zu sein, weil es einfach nicht stabil läuft - ...
Das stimmt nicht, denn wenn dem so wäre, dann würde es OpenVPN für Freetz nicht geben. Bei dir läuft etwas nicht richtig.;)
 
Das stimmt nicht, denn wenn dem so wäre, dann würde es OpenVPN für Freetz nicht geben. Bei dir läuft etwas nicht richtig

ok, die frage ist nur: was kann bei mir hier grossartig falsch laufen?

- ich habe die neuste original firmware drauf
- openvpn habe ich mit freetz gebaut (freetz-linux) / inzwischen auch alle statischen varianten
- ansonsten nurnoch die zertifakte erstellt und die anleitung hier befolgt

aber das reicht nur fuer einen ping bzw. telnet auf die fritzbox hat auch geklappt, aber ssh auf meinen server = reboot der fb

edit: da ich inzwischen den boesen verdacht habe das es daran liegt, das mein server per wlan mit der fb verbunden ist und es am bridging liegt habe ich ein neues thema aufgemacht:
http://www.ip-phone-forum.de/showthread.php?p=1650097#post1650097
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,295
Beiträge
2,249,593
Mitglieder
373,893
Neuestes Mitglied
Kukkatto
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.