squid als transparenten Proxy kompilieren

jnappert

Neuer User
Mitglied seit
8 Sep 2008
Beiträge
76
Punkte für Reaktionen
0
Punkte
6
Nachdem ich squid erfolgreich auf meine Box gezaubert habe, möchte ich ihn als transparenten Proxy (mit cache auf dem USB-Stick) betreiben.

Die notwendige Änderung in der squid.conf (http_port 3128 transparent) habe ich vorgenommen. Beim startup wird der squid sauber gestartet ("listening transparent on port 3128"), jedoch häufen sich im cache.log die Meldungen "WARNING: transparent mode not supported".

Lt. Recherche müsste squid mit den optionen --enable-ssl und --enable-linux-netfilter gebaut werden.

Ich habe daher im source-Ordner meiner freetz-stable-1.1 ein ./configure --enable-ssl --enable-linux-netfilter durchgeführt (ohne Fehler).

Ein Build der gesamten stable-1.1 wird jedoch wieder (geprüft mit squid -v) ohne die notwendigen Optionen durchgeführt ;-(

Wo muss ich hier schrauben? Danke für jeden Hinweis.
 
Ändere an einfachsten make/squid/squid.mk, so dass da steht:
Code:
...
$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/sbin/squid

$(PKG)_DEPENDS_ON := uclibcxx

[B]$(PKG)_CONFIGURE_OPTIONS += --enable-ssl
$(PKG)_CONFIGURE_OPTIONS += --enable-linux-netfilter
[/B]
$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)

...
und baue es dann neu

Jörg
 
Schreib mal, wenns funktioniert, dann könnte man das mal direkt als Option ins menuconfig einbauen.

Übrigens: Daß Du auch iptables für den transparent proxy brauchst, ist Dir klar, oder?
 
Squid wurde nach der Änderung der squid.mk mit der Option --enable-linux-netfilter problemlos gebaut. Somit ist der transparente Betrieb möglich. Super.
Herzlichen Dank @MaxMuster!

Die option --enable-ssl führt jedoch zur Meldung: "ssl was not declared in this scope". In der Folge sind daher keine SSL-Verbindungen cachbar und werden durchgereicht.

Die Box (7170) hängt per LAN1 an meinem Asus Router (=Gateway hinter einem SDSL-Modem), der per iptables und entsprechendem Firewall-Script die Pakete (Port 80) an squid (Port 3128) routet. Somit benötige ich auf der Box keine iptables, richtig?

Interessant wäre für mich auch die Fragen nach unlink_d. Dieses Programm ist auf der Box nicht existent, aber für squid notwendig. Ich habe in der squid.conf daher die Option unlink_program /bin/rm gesetzt, was auch funktioniert, jedoch angeblich langsamer sein soll. Gibts eine Möglichkeit dies mit unlink_d zu realisieren?

Jörg
 
Also ein kleines Update: unlinkd wird im squid package compiliert, jedoch nicht ins image kopiert. Wo kann ich das einstellen? Ebenfalls in der squid.mk?
 
Im Prinzip schon, das könntest du dir in den anderen .mk-Files mal ansehen, wie das mit mehreren Binaries gemacht wird (z.B. im trunk ganz "exzessiv" im openssh.mk) so in der Art:
Code:
...
$(PKG)_ULINKD_BINARY:=$($(PKG)_DIR)/src/unlinkd   ### oder wie auch immer das heißt
$(PKG)_ULINKD_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/bin/unlinkd
...

$($(PKG)_ULINKD_TARGET_BINARY): $($(PKG)_ULINKD_BINARY)
        $(INSTALL_BINARY_STRIP)

Die etwas einfacherer Variante: Kopiere die Datei händisch in das entsprechende package/squid...-Unterverzeichnis (ggf noch "strippen" mit dem mipsel-strip). Solange du nichts am Paket veränderst, sollte der Inhalt des Ordners ins Image aufgenommen werden, auch wenn es verändert wurde.

Jörg
 
S
Die Box (7170) hängt per LAN1 an meinem Asus Router (=Gateway hinter einem SDSL-Modem), der per iptables und entsprechendem Firewall-Script die Pakete (Port 80) an squid (Port 3128) routet. Somit benötige ich auf der Box keine iptables, richtig?
Klar, richtig. Es sollte an der Stelle aber dazu gesagt werden, da sonst ein falscher Eindruck entsteht - auf der Box allein gehts nicht ohne.
 
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.