Howto: Fritz!Box als OpenVPN-Gateway nutzen

Im ersten Artikel habe ich beschrieben, wie man einen Rootserver als OpenVPN-Gateway konfiguriert. Wer nicht im Besitz eines solchen ist, dafür aber eine Fritz!Box als DSL-Router zu Hause rumstehen hat, kann diese genau so gut verwenden, um sich z.B. in einem fremden Netzwerk (offenes WLAN etc.) gegen neugierige Mitsurfer abzuschotten oder um einfach nur unkomplizierten Zugriff auf das Netz zu Hause zu bekommen.

Die heutigen DSL-Geschwindigkeiten bieten ja teilweise eine Upload-Bandbreite, bei dem das ganze Spaß zu machen beginnt (1 mBit). Außerdem hat diese Lösung den Vorteil, dass man nicht mit der festen IP-Adresse seines Servers unterwegs ist.Zuerst muss bei the-construct.com ein sog. “Pseudo-Image” erstellt werden. Dieses Image wird über die Firmware-Update-Funktion der Fritz!Box untergeschoben und füllt die debug.cfg mit den nötigen Einträgen.

Dabei werden server.ovpn, secret.key erstellt und anschließend sorgen ein paar Zeilen Shellskript dafür, dass das OpenVPN-Binary beim Start der Box von einem Server im Internet heruntergeladen wird. Wer keinen hat, darf gerne fritzbox.nodomain.cc als Speicherort der Binaries angeben.

Bei der Auswahl der Optionen sind sowohl “OpenVPN” als auch “Virtuelle Netzwerkkarte einrichten” anzuwählen. Das virtuelle Interface wird später benötigt um ein Portforwarding auf den Port des OpenVPN-Servers auf der Box (192.168.178.253) eintragen zu können.

Nach erfolgreichem Update und dem Einrichten des Portforwardings hat man nach dem nächsten Start der Fritz!Box einen OpenVPN-Server im Haus, der einem jederzeit Zugriff auf das eigene Netz und Internet “von zu Hause aus” gewährt.

Zur Dokumentation hier noch meine im offenen WLAN in der Nachbarschaft erfolgreich getesteten Konfigurationsdateien:

server.ovpn:
dev tun0
dev-node /var/tmp/tun
ifconfig 10.66.66.1 10.66.66.2
secret /var/tmp/secret.key
proto tcp-server
port 443
tun-mtu 1500
float
keepalive 10 60
verb 4
mssfix
route 10.66.66.0 255.255.255.0
push "route 10.66.66.0 255.255.255.0"
push "dhcp-option DNS 10.66.66.1"
daemon

client.ovpn:
remote mein.dyndnshost.tld
port 443
proto tcp-client
dev tun
ifconfig 10.66.66.2 10.66.66.1
route 192.168.178.0 255.255.255.0
redirect-gateway
secret secret.key
tun-mtu 1500
float
mssfix
nobind
verb 3
keepalive 10 120

Damit hat man sowohl Zugriff auf das “fremde Netz”, auf das Netz zu Hause und auf das Internet über das Netz zu Hause. Was will man mehr 🙂

Leider ist es wohl so, dass unter Windows unter bestimmten Umständen die DNS-Push-Option nicht funktioniert. Somit hinterlässt man im fremden Netz u.U. einige Spuren, außer man befolgt den MS-KB-Artikel als Workaround oder nimmt gleich ein vernünftiges Betriebssystem.

Leave a Reply

Your email address will not be published. Required fields are marked *

9 comments

  1. > […] nimmt gleich ein vernünftiges Betriebssystem.

    Naja. Also wegen den DNS-Sachen finde ich Linux nicht unbedingt benutzerfreundlicher, da der DNS-Push (DHCP) unter Linux über OpenVPN, soweit ich mich erinnere, nicht funktioniert. So muss man da per Skript nachhelfen, was zwar klappt, aber dennoch nervig ist…

    P.S.: Keine Windows/Linux-Diskussion! Wollte nur darauf hinweisen, dass gerade unter Linux ebenfalls oder gerade auch Probleme mit dem DNS-Push vorzufinden sind. Ich nutze zu 90% Linux/BSD-Rechner und Notebooks. Habe aber dennoch auch Windows-Kisten im Einsatz – und das ist auch gut so und wird auch so bleiben.

  2. Das hab ich auch gelesen, da hast du Recht. Allerdings reicht unter Linux ein Eingriff in die /etc/resolv.conf und schon funktioniert es.

    Jeder/s hat so seine Macken 😉

  3. Hallo, das klingt ja SEHR spannend!
    Nur das mit den Getesteten Konfigurationsdateien verstehe ich leider noch nicht. (Bin bei der Netwerkadministration mit Linux noch nicht so der Honk)
    Könnten Sie evtl. kurz erläutern was mit den Angaben gemeint ist ?
    DANKE! Schönen Tag noch! 🙂

  4. Also vorallem bei der Serverconf die Zeile
    ifconfig 10.66.66.1 …

    So wie ich das Verstehe ist das anscheinend die IP-Zuweisung der Fritzbox? (Die auch als Nameserver verwendet wird? )
    nur warum dann noch die 10.66.66.2 ???

    DANKE DANKE DANKE! Im Vorraus!

  5. > Eingriff in die /etc/resolv.conf
    Und was machst du dort? Den DNS Server manuell eintragen? Könntest du nicht beschreiben, wie man den DNS Server automatisch gesetzt bekommen kann über OpenVPN auch für Linux?

  6. 10.66.66.1 >> virtuelle Server-IP (also Fritzbox)
    10.66.66.2 >> virtuelle Client-IP

    Ab der openvpn-version 2.1_rc7 klappt es auch mit dem redirect-gateway. Hab’s mit Gentoo getestet. Man baucht also nicht mehr die resolv.conf zu verändern.

  7. Irgendwie funzt das Portforwarding nicht so wie ich möchte. Aus dem internen Netz kann ich mich wunderbar zu 192.168.178.253:443 verbinden. Von Außen bekomme ich immer einen TCP Fehler.

    In der Weboberfläche habe ich Portforwarding 443->192.168.178.253:443 eingetragen (TCP und UDP) Fehlt noch was?

  8. Hi,

    also erstmal super Erklärung!

    Allerdings weiß ich nicht, wie ich mehrere Clients anbinde. leider kann das tun Device nur eine Verbindung je Port wenn ich das richtig verstanden habe. Bei mir klappt jedenfalls nur eine Verbindung gleichzeitig.

    Kann mir jemand erklären, wie ich das so anpasse, das ich tap verwenden kann oder mehrere gleichzeitige Verbindungen?
    für tap gibt es ja unter /var/tmp leider kein Device.