• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] transparent proxying auf e i n e m Rechner

charlybrown

Newbie
Hallo,

ich habe squid erfolgreich auf einem ltsp-Server mit thin clients eingerichtet und nun folgendes Problem:

da alle thin clients im Prinzip auf dem server arbeiten, also nicht von außen auf den proxy zugreifen funktioniert
Code:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
dementsprechend nicht. Auch "-i lo" (loopback) führt nicht zu dem gewünschten Ergebnis, dass alle http-Aufrufe automatisch an squid weitergeleitet werden.

Wie geht das??

Gruß
charlybrown
 
A

Anonymous

Gast
hier lesen:
http://www.pl-forum.de/t_netzwerk/iptables.html
in ungefähr das ändern:
Code:
iptables -A PREROUTING -t nat -p tcp --dport 80 -s 192.168.0.0/24 (<--DEIN CLIENT-IP-ADRESSENBEREICH EINSETZEN) -d 127.0.0.1 -j DNAT --to-destination 127.0.0.1:3128

--> man benötigt keinen squid, um nen transparenten proxy aufzusetzten, das geht weitaus effektiver + übersichtlicher (aber leider nicht einfacher), siehe hier:
http://linux-club.de/viewtopic.php?t=32470&highlight=
und ausserdem muss noch Routing aktiviert sein:
Code:
echo "1" > /proc/sys/net/ipv4/ip_forward
 
A

Anonymous

Gast
Hallo rm -rf/,

irgendwie gibst du heute merkwürdige Ratschläge. Wenn ich einen Proxy aufsetzen will, dann brauch ich dazu auch eine Software. Dass muss nicht unbedingt Squid sein, aber irgendein Proxy-Programm muss es schon sein. Ich hoffe das dir der Sinn eines Proxies geläufig ist.

Deshalb kann ich nicht verstehen warum du Jemanden der beim Aufsetzen eines transparenten Proxies um Hilfe bittet sagst, er benötige gar keinen Proxy, und nennst ihm als alternative dein Firewallscript. Nichts gegen dein Script, aber es beschert mir keine Proxyfunktionalität.
 
OP
charlybrown

charlybrown

Newbie
Hallo rm -rf/,

dein code hilft mir leider nicht weiter. Ich betone nochmal, ich greife n i c h t mit einem client mit eigener IP auf den Server zu. Alle thin client X-Prozesse laufen auf dem Server, haben daher bei http-Zugriffen alle die gleiche (Server-)IP.
Im Prinzip habe ich einen Rechner auf dem ich arbeite und auf dem gleichzeitig squid läuft. Wie schaffe ich es nun, dass alle Zugriffe per http von port 80 auf port 3128 umgeleitet werden, ohne dass ich im Browser den Proxy angeben muss (= transparent proxying)?
 
A

Anonymous

Gast
ob du ne eigene ip für die clients hast, is erstmal wurscht man kann die sache ja so umstellen, dass es alles auf eth0 auf port xy auf port Z routet..... und was is darana bitte kein proxy cyber? Also wenn ich das richtig gelernt hab, dann ist ein Proxy eine Anwendung, die einem externen Client ne Internetverbindung beschert --> Genau das macht mein Script! Gut, "extern" gilt jetz nich mehr, aber bei iptables is das ja egal , wie eben gesagt kann man ja den befehl umstellen...
 
A

Anonymous

Gast
Hallo rm -rf/,

dein Script hat rein gar nichts mit einem Proxy zu tun. Nicht Alles was einem Client eine Internetverbindung "beschert" ist ein Proxy. Du sprichst von Routing und Paketfiltern, das ist ja auch OK, für Jemanden der das benötigt, aber nicht für Jemanden der einen Proxy einsetzen möchte.

Du kannst die Proxyfunktionalität nicht durch Routing und Filterregeln erreichen. Zu diesen Themen solltest du dir mal das OSI-Modell anschauen, dann wirst du sehen, das sich diese Themen auf ganz unterschiedlichen Schichten abspielen.
 
A

Anonymous

Gast
achso..... dann wusste ich schon wieder was ned. Was gibts denn noch für unterschiede zwischen Proxy/Routing ausser den OSI-schichten (kennich schon :D)?
--> Paket Inspection kann iptables ja auch, also das dürfte mal wegfallen, soweit ich informiert bin, kann man damit ziemlich gut den Inhalt filtern... wenn man weiss wie (weiss ich natürlich nicht :lol:)
 
hallo zusammen,

ist das thema schon erledigt ?

ich möchte auf den rechnern meiner kinder squidguard einrichten, und mein filius oder einer seiner kumpel werden bestimmt irgendwann auf die idee kommen, den proxy im firefox einfach auszuschalten, daher möchte ich das ganze mit einem transparenten proxy versehen, der ja nur mit root-zugriff zu umgehen wäre.
der internetzugriff läuft über wlan + dsl-router, die wlan-karte ist also gleichzeitig für das lan und den zugriff nach aussen zuständig.
mit der konfiguration lt. suse-handbuch (v9.3) für den tranparenten proxy klappt das nicht, die einträge in der susefirewall2.conf zum umleiten von port 80 auf 3128 werden einfach ignoriert.
muss ich mir jetzt einen separaten rechner als proxy hinstellen, oder gibts vielleicht doch eine lösung ?

danke im voraus für jeden tipp !
 

Martin Breidenbach

Ultimate Guru
1. In der Squid Doku lesen wie man einen transparent proxy konfiguriert (da müssen ein paar Einstellungen gemacht werden)

2. eine iptables NAT Regel machen die Port 80 auf 3128 verbiegt

3. eine iptables Regel machen die das auch durchläßt

4. und eine iptables Regel machen die den Squid ins Internet läßt

5. und die Antwortpakete nicht vergessen (established durchlassen oder sowas)

In der Anordnung der Rechner die Du da hast gehen die Pakete aber nicht zwangsweise durch den Proxy. Wenn man ganz sicher gehen will dann sollte das irgendwie so aussehen:

client --- wlan --- proxy --- internet
 

theme

Newbie
Hallo,

ich hab das gleiche Problem, glaub ich jedenfalls. Mit dem angegebenen Link schaffe ich es aber trotzdem nicht. Das Hauptproblem dabei ist, dass der redirect nicht funktioniert. Selbst wenn ich nur eine Regel benutze (ohne die Squid-Ausnahme-Regel), haben die User noch direkten Zugriff aufs Netz. Was ist da los?
Siehe auch : http://www.linux-club.de/viewtopic.php?t=44454

Danke,

Frank
 
Oben