Fritzbox OpenVPN Routing

Grindy

Neuer User
Mitglied seit
21 Sep 2006
Beiträge
32
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

ich habe Probleme seitens des Routings zu meinem VPN Provider und hoffe Ihr könnt mir vielleicht die Erleuchtung bringen ;-)

Ausgangslage ist das ich eine Fritzbox als Client mittels TUN zu meinem VPN Provider verbinde, um dann die VPN IP Adressen per Fritzbox an die anhängenden Rechner verteile.

Connect und Login klappen, nur die IPs werden nicht vergeben.

Ich habe schon einiges Ausprobiert, jedoch bin ich gerade "blind", ich würde mich freuen, wenn Ihr euch das mal anschauen könntet.

Ausgabe: openvpn.conf
Code:
#daemon
client
port 1194
proto udp
ca /var/tmp/flash/openvpn/ca.crt
dev tun
#dev tap
remote meinserver 1194
push "route 0.0.0.0 0.0.0.0"
push "route 0.0.0.0 128.0.0.0"
push "route 128.0.0.0 128.0.0.0"
#pull "redirect-gateway def1"
#redirect-gateway def1
#redirect-gateway def1 bypass-dhcp
auth-user-pass /var/tmp/flash/openvpn/passfile
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 6
script-security 2
--script-security 2
#mute 20

netstat -nr
Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
xx.xxx.xx.xx    0.0.0.0         255.255.255.255 UH        0 0          0 tun0
xxx.x.xxx.xx    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
xx.xxx.xx.x     xx.xxx.xx.xxx   255.255.255.255 UGH       0 0          0 tun0
192.168.180.2   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.178.201 0.0.0.0         255.255.255.255 UH        0 0          0 dsl
87.147.193.99   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
193.158.132.189 0.0.0.0         255.255.255.255 UH        0 0          0 dsl
217.6.167.160   0.0.0.0         255.255.255.224 U         0 0          0 dsl
87.140.255.0    0.0.0.0         255.255.255.128 U         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
xxx.xxx.xxx.x   0.0.0.0         255.255.255.0   U         0 0          0 dsl
79.218.224.0    0.0.0.0         255.255.224.0   U         0 0          0 dsl
87.141.128.0    0.0.0.0         255.255.128.0   U         0 0          0 dsl
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 lan
0.0.0.0         xx.xxx.xx.xx    128.0.0.0       UG        0 0          0 tun0
128.0.0.0       xx.xxx.xx.xx    128.0.0.0       UG        0 0          0 tun0
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 dsl

MfG Grindy
 
Zuletzt bearbeitet:
Was meinst du damit, dass keine IP vergeben wird? Deine Box bekommt doch eine, die IP vom TUN Interface, oben die 10.208.81.53.
Die “push“-Befehle sind natürlich beim Client witzlos, das sind Server-Befehle, falls du auf die ansprichst.
 
Hi Max,

naja es ist so, das ich, wenn der Tunnel aufgebaut wird, keine Seiten ansurfen kann, die push Befehle habe ich auskommentiert.

Muss ich hier die Netzwerkkarten der PC´s gesondert konfigurieren?








Jetzt sieht´s so aus:

Code:
xx.xxx.xx.xx    0.0.0.0         255.255.255.255 UH        0 0          0 tun0
xxx.x.xxx.xx    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
xx.xxx.xx.x     xx.xxx.xx.xx    255.255.255.255 UGH       0 0          0 tun0
192.168.180.2   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.178.201 0.0.0.0         255.255.255.255 UH        0 0          0 dsl
87.147.193.99   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
193.158.132.189 0.0.0.0         255.255.255.255 UH        0 0          0 dsl
217.6.167.160   0.0.0.0         255.255.255.224 U         0 0          0 dsl
87.140.255.0    0.0.0.0         255.255.255.128 U         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
212.184.168.0   0.0.0.0         255.255.255.0   U         0 0          0 dsl
79.218.224.0    0.0.0.0         255.255.224.0   U         0 0          0 dsl
87.141.128.0    0.0.0.0         255.255.128.0   U         0 0          0 dsl
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 lan
0.0.0.0         xx.xxx.xx.xx    128.0.0.0       UG        0 0          0 tun0
128.0.0.0       xx.xx.xx.xx    128.0.0.0       UG        0 0          0 tun0
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 dsl



Code:
Sat Jun 29 13:06:51 2013 us=14627 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Sat Jun 29 13:06:51 2013 us=15162 /sbin/ifconfig tun0 xx.xxx.xx.xx pointopoint xx.xxx.xx.xx mtu 1500
Sat Jun 29 13:06:51 2013 us=37267 /sbin/route add -net xxx.x.xxx.xx netmask 255.255.255.255 dev dsl
Sat Jun 29 13:06:51 2013 us=51144 /sbin/route add -net 0.0.0.0 netmask 128.0.0.0  gw xx.xxx.xx.xx
Sat Jun 29 13:06:51 2013 us=61263 /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw xx.xxx.xx.xx
Sat Jun 29 13:06:51 2013 us=70843 /sbin/route add -net xx.xxx.xx.x netmask 255.255.255.255 gw xx.xxx.xx.xx
Sat Jun 29 13:06:51 2013 us=81235 Initialization Sequence Completed
 
Zuletzt bearbeitet:
Nein, an den Netzwerkkarten ist nichts einzustellen.
Ich vermute mal, du willst mit den PC's "hinter" der Fritzbox den VPN-Tunnel nutzen und "durch" den VPN-Tunnel surfen?
Dann muss das der VPN-Server unterstützen, schließlich müssen die Pakete wieder "zurück" zum PC.

Der VPN-Server muss eine Route für dein (W)LAN kennen und einen "iroute" Eintrag haben. Sollte für den OpenVPN-Server-Betreuer klar sein, was damit gemeint ist.

Solltest du keinen Einfluss auf den Server nehmen können (z.B. bei einem kommerziellen VPN-Anbieter) wird es etwas komplizierter.
Dann musst du entweder alle PCs hinter der VPN-IP der FB "verstecken" (NAT), was auf der FB "iptables" benötigt. Das läuft in der Form aber nur auf "älteren" Firmwares, nicht z.B. auf aktuellen (XX.05.YY) der 7390 oder 7270.

Bei einer solchen Box wäre eventuell eine Alternative, auf der FB einen Proxy zu installieren und den zu nutzen. Dazu müssen die PC's/Anwendungen das natürlich unterstützen, mit einem Proxy zu funktionieren.
 
Alles klar, hatte ich mir denken können, danke für die Info!
Bei der Fritzbox handelt es sich wirklich um eine 7270V2.
Hatte den Connect erst ohne und folgend mit Freetz probiert.
Wenn man das Ganze mit MAQUERADING erfüllen kann muss ich mich zuerst mal einlesen, oder den VPN Provider wechseln..
Läuft denn iptables mit Freetz?

Edit: Hierzu hast Du ja schonmal etwas geschrieben, schaue ich mir jetzt mal an:

http://www.ip-phone-forum.de/showthread.php?t=231938


Edit2:
So dürfte es ja laufen, hattest das im obigen Thread gepostet.

Code:
# NAT (da bin ich ziemlich sicher, dass es so geht
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 

# "Erzwungene Nutzung" des tun0-Interfaces für 192.168.20.111
# benötigt iptables "mangle" Modul 
# (nur "zusammengeschrieben", nicht getestet, )
iptables -t mangle -A PREROUTING -s 192.168.20.111 -j ROUTE --oif tun0
 
Zuletzt bearbeitet:
Sorry wenn ich frage, aber wie kann man das Ganze denn einrichten, damit der VPN Verkehr über den Proxy läuft?
Das mit den IPTables lasse ich erstmal, wie von Dir vorgeschalgen.
 
Freetz draufnageln und z.B. den Tinyproxy mit auswählen und installieren - voilà!

Hawedieehre,
Fant.
 
Jopps habe ich gestern noch gemacht und läuft, wie müsste ich jetzt Tinyproxy konfigurieren, damit das Ganze lauffähig wäre? :)

Unbenannt.jpg
Unbenannt2.jpg
Unbenannt3.jpg
 
Bei allow einfach das lokales Netz mit /24, also z.B. 192.168.178.0/24. Dann sollte das eigentlich schon klappen. Im Browser stellst Du den Proxy auf die IP der Fritzbox und als Port das, was Du im Fenster weiter oben eingegeben hast (oft: 3128 oder 8080).

Hawedieehre.
Fant.
 
Leider klappt es so nicht.

Was könnte denn bei Bind und Listen bzw noch Connect Port stehen?

Als Connectport hatte ich mal testweise den 1194 genommen und als Bind könnte eine IP aus dem VPN stehen?

Ich bin ratlos. ;-(

Kann es sein, das das mit den VLAN´s zusammenhängt, da ich Entertain von der Telekom nutze?
 
Hast du das ganze erstmal ohne VPN versucht? Nur um erstmal den Proxy richtig "am Laufen" zu haben.

Dann ist mit aktiviertem VPN die Frage, ob Routing und DNS korrekt funktionieren. Dann also von der Box aus mal einen Trace auf eine Webseite absetzen (z.B. "traceroute ippf.eu") und sehen ob der Name aufgelöst wird und die Pakete durch das VPN laufen.
 
Hi Max, der Proxy funzt, Listen ist momentan auf 0.0.0.0 gesetzt, Port 3128, der Browser ist dementsprechend eingestellt.
Ein traceroute ippf.eu ergibt folgendes:
root@fritz:/var/tmp/flash# traceroute ippf.eu
-sh: traceroute: not found


Folgendes ergibt

Code:
 root@fritz:/var/tmp/flash# cat /etc/resolv.conf
nameserver 127.0.0.1
domain fonwlan.box

Dort ist tatsächlich der DNS nicht eingetragen, kann man den dauerhaft in die resolf.conf speichern?
 
Zuletzt bearbeitet:
Solange die Box selbst mit dem Internet verbunden ist, biegt sie die Nameserver-Abfragen hin.
Zum testen der Namensauflösung reicht auch z.B. ein "ping -c 1 ippf.eu"

Testweise könntest du als Nameserver Google eintragen [noparse](8.8.8.8)[/noparse] oder direkt den DNS des VPN-Anbieters.
 
Wo wären dann die DNS Einstellungen wirksam? Aus der Resolv.conf, oder müsste ich diese unter Freetz>AVM Dienste>multid eintragen?

Ein Ping ergibt folgendes:

Code:
root@fritz:/var/mod/root# ping -c 1 ippf.eu
PING ippf.eu (78.46.255.242): 56 data bytes
64 bytes from 78.46.255.242: seq=0 ttl=54 time=33.493 ms

--- ippf.eu ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 33.493/33.493/33.493 ms
 
Zuletzt bearbeitet:
Vielen Dank für eure komptetente Hilfe!

Ich habe jetzt den Eintrag für einen OpenDNS Server in der /etc/resolv.conf hinterlegt undß > es klappt :)

Jetzt schaue ich nur noch, ob der Eintrag nach einem reboot der Box bestehen bleibt.
 
Du könntest es in einem "up-skript" hinterlegen, so dass der Eintrag nach dem OpenVPN-Start gesetzt wird.
 
Hallo Max,
obwohl alles funktionabel war, wollte ich doch eine komfortablere Lösung.
Deswegen habe jetzt alles umgebogen und mir eine Freetz Firmware (1.2) mit iptables, OpenVPN und UP/ Down Script (wie von Dir geraten) gebaut.

Code:
7270_v2_04.88freetz-1.2-stable.de_20130702-035223.image

Es läuft alles super, vielen Dank nochmals für die Unterstützung!! :eek:


Alle PC´s laufen über den Tunnel, ich würde es doch cool finden, wenn nur bestimmte PC´s eine Verbindung zum VPN bekommen.
Ich habe die Sache mit dem --oif Problem gelesen und es funktioniert bei mir auch nicht.
Könnte man das irgendwie lösen u.U. vielleicht sogar ohne das alles neu gemacht werden müsste? Vielelicht mit einem Patch?

Leider funktioniert die Telekom IP Telefonie ebenfalls nicht wie gewünscht, obwohl ich eine Route zum "dsl" eingetragen habe
Der Telekom Entertain Receiver startet ebenfalls nicht, deswegen müsste ich den auch aus den iptables weglassen können.


Könntest Du mir evtl nochmals helfen? :)


Der aktuelle Stand ist unten einzusehen:

Up.sh
#!/bin/sh
Code:
# IP der gegenseite (DynDNS-Namen eintragen)
VPNS=$(ping -c1 -W1 mein.vpn.server | sed -n '/PING/ s/^[^(]*(\([0-9\.]*\).*/\1/p')
# Route für VPN-Server über dsld
route add $VPNS dev dsld
# Route durchs VPN
route add mein.vpn.server dev dsl
route add -net 0.0.0.0/1 dev tun0
route add -net 128.0.0.0/1 dev tun0
# Route für Telekom IP Telefonie
route add -net 217.0.19.0/24 dev dsl
route add -net 217.0.0.0/24 dev dsl
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Down.sh
Code:
#!/bin/sh
# IP der gegenseite (DynDNS-Namen eintragen)
VPNS=$(ping -c1 -W1 mein.vpn.server | sed -n '/PING/ s/^[^(]*(\([0-9\.]*\).*/\1/p')
# Route für VPN-Server über dsld
route add $VPNS dev dsld
# Route durchs VPN
route del mein.vpn.server dev dsl
route del -net 0.0.0.0/1 dev tun0
route del -net 128.0.0.0/1 dev tun0
# Route für Telekom IP Telefonie
route del -net 217.0.19.0/24 dev dsl
route del -net 217.0.0.0/24 dev dsl
iptables -t nat -D POSTROUTING -o tun0 -j MASQUERADE

openvpn_conf
Code:
#!/bin/sh
cat << 'EOF' > "$1"
daemon
client
dev tun
auth-user-pass /var/tmp/flash/openvpn/passwd.auth
proto udp
remote mein.vpn.server 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /var/tmp/flash/openvpn/ca.crt
log /var/tmp/debug_openvpn.out
comp-lzo
verb 6
script-security 2
up "/bin/sh /tmp/flash/openvpn/up.sh"
down "/bin/sh /tmp/flash/openvpn/down.sh"
mute 20
EOF

Telekom IP Telefonie Registrar:
Code:
ping tel.t-online.de
Ping wird ausgeführt für z-ipp-a01.isp.t-ipnet.de [217.0.19.166]

Telekom IP Telefonie Stun Server:

Code:
ping stun.t-online.de
Ping wird ausgeführt für h-stun-a01.isp.t-ipnet.de [217.0.0.129]
 
Zuletzt bearbeitet:
Könntest du mal einen traceroute (bzw. "tracert" auf Windows) zu den Telekom-IPs machen?
 
tracert tel.t-online.de
Code:
Routenverfolgung zu z-ipp-a01.isp.t-ipnet.de [217.0.19.166] über maximal 30
hnitte:

  1     8 ms     7 ms     7 ms  fritz.box [192.168.178.1]
  2    28 ms    26 ms    48 ms  87.186.224.132
  3     *       28 ms    26 ms  87.190.179.114
  4   106 ms   101 ms   101 ms  l-ea3-i.L.DE.NET.DTAG.DE [62.154.89.54]

tracert stun.t-online.de

Code:
Routenverfolgung zu h-stun-a01.isp.t-ipnet.de [217.0.0.129] über maximal 30 A
hnitte:

  1     8 ms     7 ms     9 ms  fritz.box [192.168.178.1]
  2    29 ms    26 ms    28 ms  87.186.224.132
  3    58 ms    26 ms    28 ms  87.190.179.126
  4   114 ms   202 ms   102 ms  h-eb4-i.H.DE.NET.DTAG.DE [62.154.49.162]
  5   124 ms   100 ms   101 ms  217.0.0.129
 
Zuletzt bearbeitet:
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.