von den ersten Schritten bis zum eigenen Image

eresleo

Neuer User
Mitglied seit
4 Nov 2005
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
den ersten Schritten mit der FritzBox bis zum eigenen Image - Erfahrungsbericht

In der letzten Zeit habe ich mich etwas ausführlicher mit dem Thema Fritzbox modden beschäftigt. Mit diesem Bericht möchte ich meine Erfahrungen dokumentieren, in der Hoffnung, dass sie euch eventuell den Einstieg leichter machen.

Die Ausgangssitation:
Ich size hinter einem CISCO VPN Server und möchte per VoiP telefonieren. Ein DSL Anschluss ist nicht vorhanden.

FritzBox:
Klar ist, ich brauche eine "Fritz!Box fon". Damit funktioniert VoiP. Die normale genügt hier aber nicht, es sei denn man modifiziert sie zu eine ATA. Man benötigt also eine "Fritz!Box fon ATA". Mit dieser Version kann man VoiP auch hinter einem Router betreiben. Dies funktioniert mit der normalen "FON" nicht.

VPN Client:
Um ins Internet zu kommen, muss ich einen CISCO VPN client installieren. Der original Client von Cisco ist leider nicht komplett frei verfügbar. Er kann daher auch nicht auf der Fritzbox laufen. Mit vpnc(http://www.unix-ag.uni-kl.de/~massar/vpnc/) ist aber ein freier Client für cisco3000 VPN Concentrator vorhanden. Mit diesem Client ist es möglich eine Verbindung zu meinem Cisco VPN Server aufzubauen. Leider hat dieser Client in der Version 0.3.3 aber noch ein paar Einschränkungen bzw. Bugs (siehe Homepage). Für meine Zwecke genügt er aber.

Anfang - buildroot:
Große Hilfe für meine Recherchen waren die Seiten http://www.wehavemorefun.de/fritzbox/Main_Page und natürlich dieses Forum. Von Anfang an stand fest, dass ich den VPN Client für die Fritzbox selbst compilieren muss. Aber wie?
An dieser Stelle half mir http://www.wehavemorefun.de/fritzbox/Firmware_Modifikationen_/_Recompiling . Ich versuchte es mit Enriks buildroot (http://www.akk.org/~enrik/fbox/buildroot-fbox.tar.bz2). Nach dem Auspacken und Starten und Warten... und Warten ... und Warten ... musste ich meine Festplatte aufräumen, weil sie plötzlich voll war. Die Installation des buildroot hat zwischen 1 - 1.5GB bei mir in Anspruch genommen. Jetzt kann man sehr schön mit "make menuconfig" sich sein Image zusammen klicken. Danach wird mit "make" ein neues Image erstellt.

vpnc & libs:
Durch das buildroot habe ich alles um vpnc für die Fritzbox zu erstellen. Im buildroot kann man beliebige neue Packete erstellen, die dann auch in den Erstellungsprozess des Images integriert werden können. Für vpnc benötige ich noch libgcrypt und diese benötigt wiederum libgpg-error. Also erstellte ich für libgpg-error (http://www.running-sheep.com/members/leo/libgpg-error.tar.gz) und libgcrypt (http://www.running-sheep.com/members/leo/libgcrypt.tar.gz) ein eigenes Packet.
Für vpnc habe ich (aus Faulheit :( ) kein eigenes Packet erstellt, sondern statisch per Hand compiliert.

Testen:
vpnc ist nun statisch kompiliert. Jetzt testen! Auf der Seite http://www.wehavemorefun.de/fritzbox/Firmware_Modifikationen_/_Recompiling ist geschildert wie man einen telnetdienst auf der Fritzbox starten kann. Gedacht getan. Jetzt noch per wget mein statisch compiliertes vpnc auf die Box gebracht, dazu noch vpnc.conf und vpnc-script. Ein erster Start brachte ein paar Fehler bezüglich eines "tun" devices. Wie in http://www.ip-phone-forum.de/forum/viewtopic.php?t=8266 beschrieben muss einfach nur das tun device erzeugt werden mit
cd /dev
mkdir net
cd net
mknod tun c 10 200
Ein weiterer Test zeigte, dass vpnc-script nicht ordentlich läuft. Die busybox kann zwei if-Anweisungen nicht interpretieren. Diese wurden von mir einfach auskommentiert. Nochmal vpnc starten. Jetzt gabs wieder Fehlermeldungen durch vpnc-script aber diesmal läuft alles durch und stop nicht wie bisher. Mittels ifconfig sah ich jetzt auch ein tun device. Leider ging das Routing aber nicht. Das Internet war nicht erreichbar. Also die entsprechenden Routen per Hand erstellen. Jetzt läuft es endlich. JUHU!

neues Image:
Jetzt benötigte ich eine Möglichkeit den VPN Client fest im Image der Fritzbox zu integrieren. Also muss zwangsweise ein eigenes Image her. Zusätlich benötigte ich noch eine Firewall (iptables). Mit danisahne-mod (http://www.ip-phone-forum.de/forum/viewtopic.php?t=27889) habe ich ein geeignetes Mod gefunden. Also hab ich mir hier die Datei aus dem Forum geladen (Hinweis: zum Runterladen muss man im Forum angemeldet sein). Dann noch die original Firmware von AVM runtergeladen und einen Testlauf gestartet. Das mod erstellte ohne Probleme ein neues Image. Es ist also doch so einfach wie ich mir erhofft habe :)
Die Dokumentation auf der Webseite ist sehr ausführlich. *freu* Jetzt ist es auch kein Problem mehr die eigenen vpnc Sachen in das Image zu integrieren. Es muss natürlich noch ein Startscript geschrieben werden.
Das Aufspielen des Images lief auch ohne Probleme. Meine Firewallregeln wurde in der debug.cfg verewigt.

vpnc - verbunden oder nicht verbunden, das ist hier die Frage:
Mein Image war fertig und vpnc lief. Sipgate einzurichten war auch relativ einfach. Nun lief meine Fritzbox und ich konnte mit meinem uralten Telefon tatsächlich telefonieren. Die Telefonnummer 10000 kann bei sipgate zum Testen angerufen werden. Wenn man eine Stimme hört funktioniert alles.
Jetzt gab es aber plötzlich alle paar Stunden Verbindungsabbrüche. Wie ärgerlich! Nach einer Weile konnte ich auch den Grund dafür finden. Der vpnc client war schuld. Auf der Webseite ist zu lesen "rekeying is not supported (default rekey-intervall is 8 hours)". Also wird ca. alle 8 Stunden die Verbindung unterbrochen.
Naja, müssen wir halt das Beste aus der Situation machen. Solange dieser Bug in vpnc besteht, muss man halt alle paar Stunden den vpnc Dienst restarten. Glücklicherweise ist in danisahne-mod auch ein crond enthalten. Ich lasse jetzt alle paar Stunden den Dienst einmal restarten. Ist keine ideale Lösung aber für mich reicht sie erstmal.

Rückblick:
Wenn ich auf meine Anfänge zurückschaue muss ich sagen, dass der Einstieg relativ schwer war. Man muss sehr viel im Forum suchen und es dauert seine Zeit, bis die notwendigen Daten gesammelt sind. Mit der Zeit findet man immer schneller die Informationen aber als Anfänger muss man sich durchbeißen.
 
mit den neuen Firmwaren lassen sich alle Boxen hinter einem Router betreiben.
 
Hi,

nichts für ungut - aber eine hier nützliche Anleitung würde da anfangen, wo Du aufhörst. Könntest Du nicht dein kompiliertes vpnc hier zur Verfügung stellen sowie eine Anleitung, diesen zur Anmeldug an der Uni zu überreden???

Das wäre cool und fände bestimmt guten Anklang ;)
 
Hi.
Also für das erste Posting finde ich diesen Beitrag wirklich klasse!
Das mit den Routen könntest du vielleicht nochmal genauer erklären,
da gab/gibt es bei openvpn noch größere Probleme...

Außerdem soll der Thread ja ein Erfahrungsbericht sein, aber man könnte ihn sicher zu einer sehr brauchbaren Anleitung ausbauen...

MfG Oliver
 
vpnc modul

Ich hab ein wenig Zeit investiert und aus der ganzen Sache ein statisches Modul für ds-mod gemacht. Die Datei ist im Anhang.

Installation
------------
Das Verzeichnis vpnc-0.3.3 in den 'packages' Ordner von ds-mod kopieren. Anschließend muss noch 'vpnc-0.3.3' in die Datei packages.static eingefuegt werden. Jetzt das neue Image erstellen und anschließend kann ueber die Weboberflaeche alles konfiguriert werden.

Es gibt aber noch folgende Probleme beim Modul.

BUGS
-------
- VPNC hat nach ca. 8 Stunden einen Verbindungsabbruch. Das ist derzeit noch ein Bug in der Version 0.3.3 von VPNC. Am Besten man laesst per cron alle 7 Stunden vpnc restarten.
- Derzeit funktioniert VPNC nicht mit DHCP. Die Fritzbox muss also eine statische IP haben. Das Problem hier liegt nicht an VPNC sondern anscheinend an multid, ein Programm auf der Fritzbox. Dieses Programm ignoriert die neuen Einstellungen von VPNC in der Routingtabelle und schreibt einfach neue rein. Dadurch geht VPNC nicht mehr.
 

Anhänge

  • vpnc-0.1-ds.tar.bz2
    226.4 KB · Aufrufe: 45
eresleo schrieb:
- Derzeit funktioniert VPNC nicht mit DHCP. Die Fritzbox muss also eine statische IP haben. Das Problem hier liegt nicht an VPNC sondern anscheinend an multid, ein Programm auf der Fritzbox. Dieses Programm ignoriert die neuen Einstellungen von VPNC in der Routingtabelle und schreibt einfach neue rein. Dadurch geht VPNC nicht mehr.


gibt es dazu einen workaround? wie löst ihr das? ich glaube dass die wenigsten eine fixe ip haben... und warum funktioniert das beim ersten tunnelaufbau dann nicht?
 
Den Erfahrungsbericht finde ich prima.
Nur leider läuft make bei mir nicht durch (jetzt aus SuSe 8.2)
Ich erhalte folgende Ausgabe:
Code:
make
wget --passive-ftp --passive-ftp -P /home/martin/develop/enrik/buildroot/dl [b]ftp://ftp.avm.de/cardware/fritz!box.fon_ata/firmware/fritz.box_fon_ata.11.03.37.image[/b]
--13:35:38--  ftp://ftp.avm.de/cardware/fritz!box.fon_ata/firmware/fritz.box_fon_ata.11.03.37.image
           => `/home/martin/develop/enrik/buildroot/dl/fritz.box_fon_ata.11.03.37.image'
Resolving ftp.avm.de... done.
Connecting to ftp.avm.de[212.42.244.90]:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD /cardware/fritz!box.fon_ata/firmware ... 
[b]No such directory `cardware/fritz!box.fon_ata/firmware'.[/b]

make: *** [/home/martin/develop/enrik/buildroot/dl/fritz.box_fon_ata.11.03.37.image] Error 1
Liegt natürlich daran, dass "cardware/fritz!box.fon_ata/firmware" auf dem AVM nicht mehr vorhanden ist.
Was muss ich machen?
Vermutlich brauche ich ja auch ein anderes Image (habe ne Fritz!Box 7170), stimmt's?
 
Ja danke. Ich hatte die Datei schon hier. Also hab ich das so umgemodelt, dass ich die von meinem lokalen Webserver heurntergeladen habe.

Als nächstes findet er die Datei "/home/martin/develop/enrik/buildroot/dl/gpl-source-files-03.22-ar7bin-build_664-359m.tar.gz" nicht.
Also hab ich nachgesehen,was da ist und das in "ftp://ftp.avm.de/develper/opensrc/fritzbox-source-files-current.tar.gz" geändert.

Kurz danach bleibt 'make' wieder stecken:
Code:
...
zcat /home/martin/develop/enrik/buildroot/build_mipsel/avm_gpl-build-644-359/GPL/kernel-src-462.tar.gz |\
  tar -C /home/martin/develop/enrik/buildroot/build_mipsel -xf - \
    'kernel_build/kernel/linux-2.4.17_mvl21*' \
    'kernel_build/Config.Fritz_Box_All'
[b]zcat: /home/martin/develop/enrik/buildroot/build_mipsel/avm_gpl-build-644-359/GPL/kernel-src-462.tar.gz: No such file or directory[/b]
tar: kernel_build/kernel/linux-2.4.17_mvl21*: Not found in archive
tar: kernel_build/Config.Fritz_Box_All: Not found in archive
tar: Error exit delayed from previous errors
make: *** [/home/martin/develop/enrik/buildroot/build_mipsel/linux-2.4.17_mvl21/.unpacked] Error 2

Im Augenblick weiss ich nicht weiter :confused:
Kann mir jemand helfen?

---
Die Probleme kommen vermutlich daher, dass die buildroot-fbox.tar.bz2 nicht mehr mit der Struktur des AVM Servers zusammenpasst (und mit meiner Box vermutlich auch nicht).
 
Hi.
Es wäre vielleicht einfacher, wenn du die Toolchain aus dem dsmod verwendest. Die benötigten Programme musst du dann zwar per Hand kompilieren, wenn sie nicht mit "drin" sind.
Die Änderungen am buildroot sind von größerem Ausmaß.
Der 1. Fehler kommt daher, dass AVM die Verzeichnis-Struktur auf dem FTP-Server geändert hat.
Der 2. kommt daher, dass AVM die Verzeichnis-Struktur im open-source-file mit jeder neuen Versionsnummer ändert.
Wenn du das angepasst hast, dann funktionieren die Kernel-Patches nicht mehr, da sie nicht an die neueste Version angepasst sind... usw.

MfG Oliver
 
Danke für die Antwort.
Ja, den Gedanken hatte ich auch schon.

Seh' ich das richtig, das die Toolchain aus dem ds-mod auf einem Linux Rechner intalliert und verwendet werden kann und dass die dann mit verschiedenen aktuellen Boxen funktioniert?
Am wichtigsten wäre für mich natürlich zuerst mal der 7170.

Und noch ne grundsätzliche Frage:
Hab ich das richtig verstanden, dass ich mit der Toolchain ein vollständiges Firmware Image erstellen kann und zum Kompilieren einzelner (kleinerer) Programme ein Crosscompiler und ggf. entsprechende Libraries genügen würden?
 
Hi.
Die Toolchain ist ein Bestandteil des Buildroots. Wobei die Toolchain die Aufgabe des Kompilierens von Programmen übernimmt. Das Buildroot erzeugt dir, wie der Name schon sagt, ein lauffähiges Dateisystem für dein Target.
Die Toolchain erstellt dir nicht die Firmware. Das macht der dsmod!
Die Toolchain brauchst du um Sourcecode in ausführbare Programme zu verwandeln. ;-)

MfG Oliver
 
Danke, langsam wird mir manches klarer.
Beisse mich gerade durch die entsprechenden Threads (uff, viel zu lesen ;)) und bin parallel am Testen.
 
Mir ist auch leider gerade nicht klar geworden, wie ich das routing einstellen muss, damit die Fritzbox die VPN-Verbindung nutzt (möglichst auch für VoIP). Benötige ich dann wirklich eine extra-Firewall, ginge das nicht mit der integrierten?

Danke!
 
vpnc 0.4.0 ist draußen

eresleo schrieb:
Jetzt gab es aber plötzlich alle paar Stunden Verbindungsabbrüche. Wie ärgerlich! Nach einer Weile konnte ich auch den Grund dafür finden. Der vpnc client war schuld. Auf der Webseite ist zu lesen "rekeying is not supported (default rekey-intervall is 8 hours)". Also wird ca. alle 8 Stunden die Verbindung unterbrochen.
Naja, müssen wir halt das Beste aus der Situation machen. Solange dieser Bug in vpnc besteht, muss man halt alle paar Stunden den vpnc Dienst restarten. Glücklicherweise ist in danisahne-mod auch ein crond enthalten. Ich lasse jetzt alle paar Stunden den Dienst einmal restarten. Ist keine ideale Lösung aber für mich reicht sie erstmal.

Hallo,

dazu wollte ich mal anmerken, dass es jetzt vpnc 0.4.0 gibt, bei dem das Rekeying funktioniert!

http://www.unix-ag.uni-kl.de/~massar/vpnc/

Ich kenn mich leider noch nicht so sehr aus damit, wie man den jetzt in ds-mod integrieren müsste.

Vielleicht aktualisiert das ja mal jemand im ds-mod.

Grüße,
Stephan
 
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.