Fritzbox vpn-routing

tsaenger

Neuer User
Mitglied seit
30 Jun 2005
Beiträge
82
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

ich versuche gerde mit meiner Fritzbox (7390) als Cleint über UMTS eine Verbindung zu meinem open-VPN-Server aufzubauen um allen Traffic hinter der Box über den Server zu leiten.

Die Verbindung ansich klappt auch. Ich kan in dem in beide Richtungen den Server und den Client über die VPN-Adresse anpingen.

Wenn ich mit einem Windows OpenVPN-Client mich verbinde, kann ich auch ohne Probleme über meinen Server mein Internet-Verkehr leiten.

Hier werden vom Server die richtigen routen an den Client gepusht.

Bei der Fritzbox scheint mir das pushen der routen nicht richtig zu funktionieren, denn ich bekomme leider den Traffic nicht umgeleitet.

Im Ursprungszustand sieht die Route auf der FB wie folgt aus:
Code:
# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
31.224.93.121   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.180.1   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.180.2   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.178.0   0.0.0.0         255.255.255.0   U         0 0          0 lan
192.168.179.0   0.0.0.0         255.255.255.0   U         0 0          0 guest
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 lan
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 dsl

sobald ich die VPN-Verbindung aufbaue ist sie so:
tun0 ist meine Verbindung zu VPN-Server.
Code:
# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.47.198.25    0.0.0.0         255.255.255.255 UH        0 0          0 dsl
10.8.0.1        10.8.0.9        255.255.255.255 UGH       0 0          0 tun0
192.168.180.1   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.180.2   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
10.8.0.9        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
192.168.178.0   0.0.0.0         255.255.255.0   U         0 0          0 lan
192.168.179.0   0.0.0.0         255.255.255.0   U         0 0          0 guest
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 lan
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 dsl
Nun müsste ich doch eine Route schaffen, in der das Gate (also die FB) den Traffic nicht über das DSL-interface sondern über das tun0 Interface schickt oder was meint ihr dazu?

Vielen Dank für Eure Hilfe.

Gruß

Tobias
 
Das "Problem" dürfte sein, dass OpenVPN mit dem Default-Routing der Fritzbox nicht klarkommt (AVM routet auf das Interface, nicht auf ein Gateway per "next Hop IP", wie es OpenVPN bei "redirect-gateway" leider nur versteht). Also muss man etwas "tricksen". Dass "redirect-gateway" ist aber auch das einzige etwas "FBF-spezifische Problem" (und es gibt hier im Forum gefühlte 100 Antworten dazu), ansonsten läuft die Config auf der FB genau so, wie immer im OpenVPN.

Ist der Server über eine feste IP erreichbar? Dann sollte folgendes funktionieren:

Trage eine statische Host-Route für die IP deines Servers auf das DSL-Interface ein, z.B. per debug.cfg ein; wenn also als Beispiel "1.2.3.4" die IP des Servers ist:
Code:
route add 1.2.3.4 dev dsl

Dann kannst du deinem Client durch den Server zwei Routen zum Server mitgeben, sofern du das pro Client mittels "client-config-dir" einträgst:
Code:
push "route 0.0.0.0 128.0.0.0"
push "route 128.0.0.0 128.0.0.0"
Sonst musst du das analog per "up" Skript auf dem Client eintragen und per "down" Skript wieder löschen.
 
Hallo MaxMuster,

vielen Dank für deine Antwort.

Ich verstehe aber noch nicht genau warum ich der Fritzbox die Routern:
Code:
push "route 0.0.0.0 128.0.0.0"
push "route 128.0.0.0 128.0.0.0"
mitgeben muss.
Reicht die Route
Code:
push "route 0.0.0.0  0.0.0.0"

nicht aus?

Vielen Dank.

Gruß

Tobias
 
Hallo,

noch eine Ergänzung:
Ich sehe (tcpdump -i tun0 -vvv ) auch, dass wenn ich mit einem Client versuche online zu gehen, das Traffic an meinem VPN-Server ankommt.
Code:
13:57:02.269838 IP (tos 0x0, ttl 63, id 13721, offset 0, flags [DF], proto TCP (6), length 48)
    192.168.178.21.55830 > eas.provider.de.https: Flags [S], cksum 0xa171 (correct), seq 3237008003, win 65535, options [mss 1266,sackOK,eol], length 0
Ich kann aber nicht sehen, ob er auch zurückgeht.
 
Ich verstehe aber noch nicht genau warum ich der Fritzbox die Routern ...
Die neue "volle" Default-Route (0.0.0.0 0.0.0.0) steht dann "neben" der bisher schon vorhandenen über das DSL. Damit stehen gleichzeitig identische Routen zur Verfügung und die Box kann sich quasi eine aussuchen.
Die beiden "zusammengesetzten" Routen für den halben IP-Bereich simulieren ein "redirect-gateway def1": Damit werden zwei "speziellere Routen" eingetragen, die vor der DSL-Route "Vorrang" haben.

Du musst beim Server sichergehen, dass der
erstens das Netz 192.168.178.0/24 im Routing als "hinter dem Client" kennt und
zum zweiten muss dieses Netz auch mit in den NAT-Regeln des Servers ins Internet sein.
 
Hallo MaxMuster,

vielen Dank.
Das hat geholffen.
Allerdings ist es so, dass es wohl ein paar Minuten braucht, bis es funktioniert. Ich hatte die Route schon mal gepushed, aber ohne direkten erfolg. Nun hab ich zwischendurch was anderes gemacht und siehe da es funktioniert.

Nun stehe ich aber vor dem Problem das ich gerne einen Webserver innerhalb des Fritzbox-Netzes veröffentlichen möchte.
Da die Portforwarding-Regeln in der Fritzbox ja nur auf dem dsl-Interface lauschen, wird wohl diese leider nicht mehr angesprochen.
Wenn ich auf die VPN-IP Port 80 zugreife, lande ich direkt auf der Fritzbox und nicht auf der im Forward eingetragenen Adresse.
Kann ich dies umstellen? ggfl in der ar7.cfg einen Eintrag hinzufügen?

Vielen Dank.

Gruß

Tobias
 
Zuletzt bearbeitet:
Von wo soll der Zugriff erfolgen? Über die IP des VPN-Servers? Dann muss die NAT dort doch nur auf die IP des Webservers lauten. Über die “lokale“ Internet-IP der FB geht das wegen des geänderten Routings nicht mehr...
 
Hi,

ich möchte Gerne auf ein Gerät, welches ich hinter der Fritzbox stehen habe über die VPN-Verbindug aus dem Internet zugreifen.
Probelm ist, das ich die Frtizbox über einen UMTS-Stick ans Internet anbinden muss und diese mir ja leider auf Grund von Providern nur priv. IP's zuteilt.
Mittels des VPN-Kanals kann dies aber umgehen. Aktuell lande ich aber immer auf dem der Webseite der Fritzbox, da diese mich nicht zum Client weiterleitet.
Iptables gibt es ja auf der FB leider nicht, sondern nur ar7. Damit komme ich aber irgendwie nicht klar.
Ich gehe davon aus, das ich dort in der Config änderungen vornehmen muss, damit die FB mir den Verkehr zum Client weitergibt oder?

Vielen Dank.

Gruß

Tobias
 
Hallo informerex,

ja das kenne ich, aber das hilft mir doch nicht bei einer openVpn-Verbindung oder doch?

Gruß

Tobias
 
Hast du das denn wie oben geschrieben gemacht? Also auf dem OpenVPN-Server die NAT auf die IP des Clients eingetragen (also z.B. 192.168.178.123 oder wie auch immer)? Und dann landest du auf der FB?
 
Hallo MaxMuster,

manchmal liegt die Lösung doch so nah.

Vielen Dank.

Ich meine ich hatte irgendwo im Forum was zu UMTS-Reconnect gelesen.
Hab nun aber schon ne gefühlte Ewigkeit gesucht aber nicht wirklich ein passendes Script gefunden.
Hast du vllt. noch einen Link für mich?

Vielen Dank.

Gruß

Tobias
 
Das müsste doch auch mit der Folge dsld stoppen und neu starten gehen, wie auch bei DSL?
Also versuche doch mal "dsld -s ; sleep 1 ; dsld"
 
Hallo MaxMuster,

ich habe mir nun ein Script gebastelt, welches alle paar minuten prüft, ob die Box noch online ist. Wenn nicht, dann wird übder dsld die Verbindung neu gestartet.
Dies besteht aber aus einer Endlos-While-Schleife, die über die debug.cfg aufgerufen wird.
Nun ist aber scheinbar das Problem, das die debug.cfg nicht ganz am Ende aufgerufen wird, sondern irgendwann zu beginn und deswegen die folgeprocesse von AVM nicht weiter ausgeführt werden. Ich dachte, ich könnte einfach meine Loop im Hintergrund laufen lassen ohne das es die Systemprozesse der Box stört.

Hast du eine Idee wie ich das realisieren könnte?

Vielen Dank.

Gruß

Tobias
 
Du kannst auch deine Schleife in der debug.cfg in den Hintergrund legen, damit die Box weiter hochfährt.
So in dieser Art:

Code:
root@Speedport:/var/tmp# cat /tmp/bla
echo vorher
(while true; do echo huhu; sleep 5; done) &
echo PID = $!
echo nacher
root@Speedport:/var/tmp# sh /tmp/bla
vorher
huhu
PID = 2102
nacher
root@Speedport:/var/tmp# huhu
huhu
huhu
huhu
huhu
huhu
kill 2102
root@Speedport:/var/tmp#
 
Hi,
Muss ich dann in der debug.cfg den aufruf wie folgt mahen:
Code:
sh ./path/vpn.sh

aktuellhatte ich den Aufruf ohne sh gestartet.

Vielen Dank.
 
Nee, das entscheidende ist das
(befehle...) &
Damit werden die Befehle in der Klammer im Hintergrund ausgeführt...
Das wäre die Wahl, wenn der Befehl direkt ausgeführt würde.

Du kannst auch das Skript aus der debug.cfg heraus so ausführen mit

/pfad/script &
 
Zuletzt bearbeitet:
Hi,
also irgendwie klappt das nicht.
Ich habe in der debug.cfg eingetragen:
Code:
/var/media/ftp/Dokumente/vpn_check.sh &

aber ich kann nicht sehen, das das Script ausgeführt wird.
Wenn ich das & weglasse, dann wird es ausgeführt, aber mit dem nachteil, das alle anderen Prozesse aufgehalten werden.
Code:
jobs
Zeigt mir nichts an und auch

Code:
ps | grep vpn_check.sh
gibt mir kein Ergebnis.

Wo habe ich da noch einen Fehler?

Danke

TObias
 
Das wird so nicht gehen, weil vermutlich zu dem Zeitpunkt dieser USB-Speicher noch nicht verfügbar ist...
Schreib den Befehl also direkt rein oder mach erste eine "Warteschleife" um zu prüfen bzw. zu warten, bis der Pfad existiert.
Da findest du hier einige Beispiele zu.
 
ähhm.
ich habe die Daten doch auf der Fritzbox (NAS)und nicht auf dem USB-Speicher.
Dies sollte doch von beginn an da sein oder?
 
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.