Squid Proxy auf der FBF 7050 ?

tinyproxy für Fritzbox 7170 (29.04.29) und andere 2.6er Kernel Firmwares

Falls jemand eine neuere Fritzbox-Firmware mit 2.6er-Kernel einsetzt, hier die kompilierte Version.
Um das .conf-Datei-Pfad-Problem zu beheben bitte mit Parameter "-c" wie folgt ausführen:
/var/tmp/tinyproxy -c /var/tmp/tinyproxy.conf

Diese Binary hat olistundent extra auf meine Anfrage hin im IRC-Net: #fritzbox - Channel für mich compiliert.
Vielen Dank nochmals an dieser Stelle! :)
 

Anhänge

  • tinyproxy.zip
    35.2 KB · Aufrufe: 117
tinyproxy für cisco 7960

hallo, wenn ich ein Debug von einem 7960 erfasse, so zeigt sich, dass der Tinyproxy 2 Antworten gibt
die 1. mit OK 200, die 2. mit den Daten. Das aber mag das Phone nicht gerne und zeigt am Display einen btxml error.
Kann man den Tinyproxy auch so konfigurieren, dass er nur 1 Antwort sendet?

Code:
Data Packet is:
===============
GET http://www.xxxx.de/directory/simple/directory.xml?name=SEP0015C65C64A3 HTT
P/1.1
User-Agent: Allegro-Software-WebClient/3.10b1
Host: www.xxxxxx.de
Connection: Close
Accept: x-CiscoIPPhone/Text, x-CiscoIPPhone/Menu, x-CiscoIPPhone/Directory, x-Ci
scoIPPhone/Input, x-CiscoIPPhone/Image, x-CiscoIPPhone/GraphicMenu, text/*, imag
e/bmp
x-CiscoIPPhoneModelName: CP-7960G
x-CiscoIPPhoneSDKVersion: 3.0.0
x-CiscoIPPhoneDisplay: 133,65,2,G


===============

[17:30:02:5198]
Http Recv [17] Bytes of Data
Data Packet is:
===============
HTTP/1.1 200 OK

===============

[17:30:02:5199]
Http Recv [570] Bytes of Data
Data Packet is:
===============
Via: 1.1 tinyproxy (tinyproxy/1.7.0)
Content-Type: text/xml
ETag: "39e10b2-140-45d9e0da"
Server: Apache/1.3.31 (Unix)
Date: Thu, 22 Feb 2007 16:30:02 GMT
Last-Modified: Mon, 19 Feb 2007 17:39:38 GMT
Content-Length: 320
Accept-Ranges: bytes

<CiscoIPPhoneDirectory>
<Title>VoIP Telefonbuch</Title>
<Prompt>Fusszeile</Prompt>
<DirectoryEntry>
<Name>Hein Bloed</Name>
<Telephone>0471112345</Telephone>
</DirectoryEntry>
</CiscoIPPhoneDirectory>
===============

[17:30:03:5201] HTTP RECV (CLOSE CMD)
[17:30:03:5201] Platform_Close_Socket conn[2]
[17:30:03:5211] Platform_Close_Socket conn[2]
 
Wenn ich das richtig interpretiere, dann sendet tinyproxy nicht zwei Antworten, sondern 2 Pakete. Bei einem TCP Stream sollte das aber keinen Unterschied machen. Ich würde mal behaupten, dass entweder der TCP/IP Stack auf deinem Cisco nicht in Ordnung oder der Webclient auf deinem Cisco stümperhaft programiert ist.

Mfg
danisahne
 
Proxy für 7960, nur 1 Antwortpaket

Eine TCP Antwort von einem Webserver sieht aus wie im folgenden Code Schnippsel.

Gibt es einen keinen Proxy, der das Ok nicht in ein 2 Paket packt?


Code:
[18:03:13:2890987]
HTTP Send [450] Bytes of Data
Data Packet is:
===============
GET /directory/simple/directory.xml?name=SEP0015C65C64A3 HTTP/1.1
User-Agent: Allegro-Software-WebClient/3.10b1
Host: 192.168.178.20
Connection: Close
Accept: x-CiscoIPPhone/Text, x-CiscoIPPhone/Menu, x-CiscoIPPhone/Directory, x-Ci
scoIPPhone/Input, x-CiscoIPPhone/Image, x-CiscoIPPhone/GraphicMenu, text/*, imag
e/bmp
x-CiscoIPPhoneModelName: CP-7960G
x-CiscoIPPhoneSDKVersion: 3.0.0
x-CiscoIPPhoneDisplay: 133,65,2,G


===============

[18:03:13:2890993]
Http Recv [779] Bytes of Data
Data Packet is:
===============
HTTP/1.1 200 OK
Content-Length: 614
Content-Type: text/xml
Connection: close
Last-Modified: Sat, 17 Feb 2007 23:57:50 GMT
Server: Fastream IQ Web/FTP Server

<CiscoIPPhoneDirectory>
 <Title>VoIP Telefonbuch</Title>
 <Prompt>Fusszeile</Prompt>
 <DirectoryEntry>
   <Name>Hein Bloed</Name>
   <Telephone>0471112345</Telephone>
 </DirectoryEntry>
 <DirectoryEntry>
   <Name>Gaense Klein</Name>
   <Telephone>09999678912</Telephone>

 </DirectoryEntry>
 <DirectoryEntry>
   <Name>Sipgate Testnummer</Name>
   <Telephone>10000</Telephone>
 </DirectoryEntry>
</CiscoIPPhoneDirectory>
===============

[18:03:13:2890995] HTTP RECV (CLOSE CMD)
[18:03:13:2890996] Platform_Close_Socket conn[2]
[18:03:13:2890998] Platform_Close_Socket conn[2]
 
Das paketieren ist doch Sache des TCP/IP Stacks, das hat nichts mit dem Proxy zu tun. Es wird denke ich mal so ablaufen, weil der Proxy die erste Zeile zeitlich vor dem Rest absetzt. Ich bleib aber dabei, wenn ich deine Daten richtig verstehe, dann bin ich der Meinung, dass es ein Fehler deines Ciscos und nicht des Proxies ist.

Auf gut deutsch: Meiner Meinung nach müßte dein Cisco Gerät abwarten, bis alle Daten da sind und nicht beim ersten erfolgreichen Auslesen einiger weniger Bytes versuchen den ganzen HTTP Request als vollständig anzusehen und zu parsen (so sieht es jedenfalls für mich aus). Nach dem ersten Paket muss der Cisco Client eigentlich wissen, dass der HTTP Request noch nicht vollständig ist, da der Header noch nicht durch zwei CRLF beendet wurde.

Mfg
danisahne
 
hallo danisahne,
danke für die Antworten, mit Polipo funktioniert das ganze, dieser Proxy macht eben keine 2 Pakete.

Zum Tinyproxy noch, vielleicht setzt dieser ja doch ein CRLF beim 1. Paket, da
'HTTP/1.1 200 OK' 15 Zeichen lang ist, aber 17 bytes gesendet wurden.
Http Recv [17] Bytes of Data
Data Packet is:
===============
HTTP/1.1 200 OK

Kann denn nicht auch der Tinyproxy nicht ganz sauber sein?
 
Eines darf er ja anhängen, erst bei zweien ist der Header beendet. Müßtest jetzt halt überprüfen, ob wirklich CR+LF die 2 Bytes hinter der ersten Zeile sind, muss man aber nicht ;)
 
hallo,
ich habe folgendes vor: da ich nun einen zweiten homeserver habe und dieser nun unter windows 2k3 läuft, wollte ich ihm eigentlich den zugang zum internet verwähren.

mit der kindersicherung in der FB eigentlich kein problem. nur ein hacken hat das ganze: ich möchte meinen lieblingsproxyserver "proxomitron" auf dem server laufen lassen (der läuft nur unter windows). also dachte ich mir: kein problem, ich mach en proxyserver auf die FB und sag dem proxomitron, dass er nochmal alle verbindungen an die FB weiter geben soll.

tinyproxy läuft nun auf der fritzbox. aber wenn ich die kindersicherung aktiviere, dann kann ich auf dem 2tserver über den proxy auf der fritz-box nichtmehr ins inet.


eigentlihc sollte die kindersicherung der fritzbox doch garnicht wissen, dass das paket für dne proxyserver von meinem homeserver kommt und in das internet soll.

thx für die antworten,
} Meatwad
 
olistudent schrieb:
Wie gesagt, bei mir funktioniert das auch nur mit dsmod. Ich hab heute Mittag extra die original Firmware geflasht. Und siehe da, selber fehler.
Ein weiterer Vorteil ist, dass du das Binary und die Konfig dann gleich ins Filesystem reinkopieren kannst.

MfG Oliver

edit: Nach einer Stunden des Lesens in C-Tutorials sieht der Code jetzt so aus, und auf einmal geht es doch...
Code:
void*
malloc_shared_memory(size_t size)
{
int fd;
void* ptr;
char buffer[3[COLOR=red]6[/COLOR]];
static char* shared_file = [COLOR=red]"/var[/COLOR]/tmp/tinyproxy.shared.XXXXXX";
assert(size > 0);
strlcpy(buffer, shared_file, sizeof(buffer));
if ((fd = mkstemp(buffer)) == -1)
return (void *)MAP_FAILED;
unlink(buffer);
if (ftruncate(fd, size) == -1) 
return (void *)MAP_FAILED;
ptr = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
return ptr;
}
Diese Speicherallokation in C ist echt der Horror...

Hallo olistudent,

ich habe mir den tinyproxy-transparent auf meine W900V gezogen und bekomme folgende Fehlermeldung beim starten.

"./tinyproxy: can't resolve symbol '__uClibc_start_main'"

Ist diese Version nicht kompatibel mit der W900V?

Danke
JUF
 
u.g schrieb:
Probiers mal mit der ...
@ u.g

Danke für den Tipp, der Proxy startet, aber es ist leider nicht der tinyproxy-transparent.
Bei diesem muss ich auf en PC einen Proxy eintragen.

Kann mir eventuell den tinyproxy-transparent neu compilieren, mir fehlt dazu die Erfahrung?


Gruß
JUF
 
Zuletzt bearbeitet:
Brauche hilfe bei tiniproxy in ds-mod

wie muss die conf aussehen das der Proxy läuft und webseiten filtert. Habe keine Ahnung !?
 
Hallo,

auch wenn der Thread was älter ist, ist hier die Lösung:

Code:
chmod 1777 /tmp

Die Berechtigungen auf das tmp-Verzeichnis stimmen wahrscheinlich bei euch nicht.
 
Hallo,

auch wenn der Thread was älter ist, ist hier die Lösung:

Code:
chmod 1777 /tmp

Die Berechtigungen auf das tmp-Verzeichnis stimmen wahrscheinlich bei euch nicht.



nee soorrryy.. das bringt leide rauch nix.....

außer ne fehlermeldung :-(

# chmod 1777 /tmp
chmod: /tmp: Read-only file system
 
Hallo,

da die Root-Filesystem der Fritzbox readonly ist, muss man diese Änderung vor Bauen des Betriebssystems vornehmen.

Hier noch mal eine schrittweise Anleitung:

Bin ich von dem Problem betroffen?
1. Anmelden auf die laufende Fritzbox
2. ls -al / |grep tmp
3. Wenn die Verzeichnisberechtigungen nicht "drwxrwxrwt" ist, dann ist die Box von dem Problem betroffen.

Korrektur des Problems
1. Auf dem Rechner, auf dem Ihr das Fritzbox-Betriebssystem gebaut habt, anmelden
2. In das Verzeichnis wechseln, in dem das Betriebssystem gebaut wurde
3. Dort die Berechtigung des tmp-Verzeichnises wie folgt korrigieren
Code:
chmod 1777 tmp
4. Fritbox-Betriebssystem neu erzeugen lassen
5. Hoffen, dass die neue Berechtigung mit ins Image uebernommen wird
 
Ich hoffe ihr steinigt mich nicht, wenn ich diesen Thread nocheinmal ausgrabe.

Ich bastele seit gestern an einer 7270 FB mit neuester Firmware.
Ich hab jetzt Tinyproxy dank euch zum laufen bekommen. Leider ist es nur der "normale" Tinyproxy.

Toll wäre es wenn ich die transparent Version hätte.
Die hier nachgeladene Version läuft leider nicht mehr unter dem 2.6 Kernel.

Hat jemand Tinyproxy-transparent neu Compiliert? Oder kann dies für mich tun? Ich habe davon leider keine Ahnung.

Vielen Dank
 
Sorry für's Doppelposting

Aber ich hab noch eine Frage.
Wenn ich das weiter vorne angehängte Tiniproxy-Transparent starte bekomme ich ebenfalls den Fehler:
"./tinyproxy: can't resolve symbol '__uClibc_start_main'"

Heißt das jetzt, dass es für den falschen Kernel compiliert wurde, oder liegt das an fehlenden "Rechten"? (Ich werde nicht ganz schlau aus den letzten Postings über mir)
 
Hallo,

versuche tinyproxy auf meiner FRITZ!Box Fon WLAN 7113 (UI) ( Firmware-Version 60.04.68 ) zum Laufen zu bringen, habe die kompilierte Version aus Beitrag #61 von tigerix draufgetan, bekomme aber den Fehler:

/var/tmp/tinyproxy: can't load library 'libresolv.so.0'

Kernel ist 2.6.13.1-ohio

Bin für jede Hilfe dankbar...
 
Zuletzt bearbeitet:
Bin für jede Hilfe dankbar...
Dein binary hat folgende Abhängigkeiten:
Code:
root@fritz:/var/media/ftp/uStor01/archiv# [B]ldd ./tinyproxy[/B]
libresolv.so.0 => /lib/libresolv.so.0 (0x00000000)
libnsl.so.0 => /lib/libnsl.so.0 (0x00000000)
libc.so.0 => /lib/libc.so.0 (0x00000000)
/lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x00000000)
Wie ist die Ausgabe von:
Code:
find / -iname 'libresolv*'
auf deiner Box?
 
find gibt nichts zurück.. konnte libresolv.so.0 auch manuell auf der box nicht finden
 
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.