Transparent Proxy mit OpenBSD 5.3 und Squid 3.2.7

tertullian

Active Member
Hallo allerseits,
ich möchte Squid (3.2.7) auf meiner OpenBSD (5.3) Kiste als transparenten Proxy betreiben.

Für folgendes Szenario:
(Internet) ----- (DSL-Modem) ------ em0 [Soekris] em1----- (LAN)
ext_if="em0" ---> 192.168.1.0/24
int_if="em1" ---> 192.168.2.0/24

- ich habe Squid mit pkg_add -i squid gebaut. squid-3.2.7p0

- in /etc/squid/squid.conf steht u.a.:
# Squid normally listens to port 3128
http_port 3128
http_port 127.0.0.1:3129 intercept

- in /etc/pf.conf steht u.a.:
pass in quick on $int_if proto tcp from $ext_if to any port www divert-to 127.0.0.1 port 3129
pass out quick from 127.0.0.1 divert-reply



.....funktioniert leider nicht. :-(
 
Zuletzt bearbeitet:
Muss ich vielleicht Squid über die Ports bauen mit:
# cd /usr/ports/www/squid
# env FLAVOR=transparent make install
???
 
Hallo tertullian,

Muss ich vielleicht Squid über die Ports bauen mit:
# cd /usr/ports/www/squid
# env FLAVOR=transparent make install
???
Jaaa:)
Ich bin zwar kein OpenBSDler, aber ich betreibe Squid als transparenten Proxy zusammen mit SquidGuard unter FreeBSD. Schicke Sache.
Aber ein Hinweis: Wenn Squid als transparenter Proxy betrieben wird, dann funktioniert die User-Verwaltung nicht mehr.

Viel Spaß beim Konfigurieren:)

JueDan
 
Hallo JueDan,
dank Dir für die Antwort. Ich habe es "natürlich" in der zwischen Zeit ausprobiert. Aber..... ;-)
# env FLAVOR=transparent make install
Fatal: Unknown flavor: transparent (in www/squid)
(Possible flavors are: no_ldap). (in www/squid)
*** Error 1 in /usr/ports/www/squid (/usr/ports/infrastructure/mk/bsd.port.mk:3403 '.BEGIN': @exit 1)
Wie kann ich eigentlich sehen mit welchen "FLAVORs" das Paket installiert wurde?

Ich bin zwar kein OpenBSDler, aber ich betreibe Squid als transparenten Proxy zusammen mit SquidGuard unter FreeBSD. Schicke Sache.
Genau sowas versuche ich zu konfigurieren. ;-)

Aber ein Hinweis: Wenn Squid als transparenter Proxy betrieben wird, dann funktioniert die User-Verwaltung nicht mehr.
Sorry aber was das? Ich habe gedacht es wäre "einfacher" da es von seiten der User keinerlei (Browser)-Konfiguration verlangt?

....ich lese... :-)
 
Zuletzt bearbeitet:
die Flavors siehst du entweder im Paketrepository (ja. es werden tatsächlich fast alle mäglichen Kombinationen als Paket angeboten) oder im Makefile des Ports. Ich würde dir empfehlen, bei Paketen zu bleiben; es sei denn, du weisst, warum du es nicht möchtest ;).

Um Squid transparant zu betreiben, brauchst du keinen speziellen Flavor, afaik kann das alles über die Konfiguration laufen.

Juedan meint die Benutzerauthentifizierung(-anmeldung mit Username Passwort) am Proxy.
 
Juedan meint die Benutzerauthentifizierung(-anmeldung mit Username Passwort) am Proxy.
Say what?! ;-))))

Ich dachte Squid Transparent betreiben und den gesamten Traffic über PF-(Rule):
pass in quick on $int_if proto tcp from $ext_if to any port www divert-to 127.0.0.1 port 3129
pass out quick from 127.0.0.1 divert-reply

???
 
Ja, richtig. Da die Browser aber nicht wissen, dass sie mit einem Proxy quasseln, können sie sich nicht authentifizieren bzw. dem Proxy sagen "hol das jetzt mal direkt und nicht aus deinem cache". Ein transparenter Proxy ist nett, hat aber auch Nachteile.
 
äääähm, jetzt hab ich noch eine Frage bei der das Ergebnis vielleicht Peinlich wird...

wie teste ich es am einfachsten wenn ich squid 3.2.7 per pkg_add; "http_port 3129 transparent" in squid.conf und
pass in quick on $int_if proto tcp from $ext_if to any port www divert-to 127.0.0.1 port 3129
pass out quick from 127.0.0.1 divert-reply
in pf.conf stehen habe?

.....vielleicht funktioniert es ja schon die ganze Zeit..... :huth:
 
Also ich möchte als zwischen Zwischenfazit festhalten.
squid.conf mit http_port 3128
pf.conf mit
pass in quick on $int_if inet proto tcp from $ext_if to port www divert-to 127.0.0.1 port 3128
pass out quick from 127.0.0.1 divert-reply


..und den Browser manuell auf IP-Adresse und 3128.

Ergebnis: mit z.B. tail -f /var/squid/logs/access.log sehe ich dann die aufgerufenen Internet-Seiten.

.....jetzt solllte der Schritt zum Transparent Proxy doch eigentlich nicht mehr so groß sein?!
 
Moin tertullian,

äääähm, jetzt hab ich noch eine Frage bei der das Ergebnis vielleicht Peinlich wird...

wie teste ich es am einfachsten wenn ich squid 3.2.7 per pkg_add; "http_port 3129 transparent" in squid.conf und
pass in quick on $int_if proto tcp from $ext_if to any port www divert-to 127.0.0.1 port 3129
pass out quick from 127.0.0.1 divert-reply
in pf.conf stehen habe?

.....vielleicht funktioniert es ja schon die ganze Zeit..... :huth:
Probiers halt aus :)
Stoppe den Squid und versuche per Browser ein paar Seiten aufzurufen.

Meinen transparenten Squid-Proxy habe mittels dieser beiden Seiten auf die Beine gestellt:
http://www.benzedrine.cx/transquid.html
http://wiki.squid-cache.org/ConfigExamples/Intercept/OpenBsdPf
und dieser README
http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/www/squid/pkg/README-main
aber halt umgesetzt auf FreeBSD.

Viele Grüße

JueDan
 

Das war es!!
Interception Proxying with PF
=============================
To configure an interception (a.k.a. "transparent") proxy, Squid should be configured in ${SYSCONFDIR}/squid.conf to bind to a specific address, for example:
http_port 127.0.0.1:3127 intercept
On the machine running Squid, add a firewall rule similar to this:
pass in quick log inet proto tcp to port 80 divert-to 127.0.0.1 port 3127

JueDan, ich kann Dir nicht genug danken!!!!!
Gott schütze Dich :)
 
Zurück
Oben