PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : port 80 transparent auf Proxy mappen, wie?



pixel
20.02.02, 19:51
Hallo zusammen,

ich habe in meinem LAN einen Server (SuSE-7.3) sowie eine Firewall (auch SuSE-7.3). Die Firewall (iptables) ermöglicht, wie soll es anders sein, den Clients den Zugang zum Internet. Auf meinem Server habe ich einen Proxy (Squid 2.4) aufgesetzt. Wenn ich nun den Client auf den Proxy einstelle (Port 8080) surfe ich über den Proxy (siehe Logfiles) also funktioniert dieser. Nun würde ich gerne alle Anfragen aus dem LAN die ins Internet wollen (Port 80) automatisch auf den Proxy (Port 8080) mappen. Dazu habe ich in meinem Filterregeln folgendes eingefügt:

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to-destination x.x.x.x:8080
----------------------------------------------
eth0: Schnittstelle ins LAN
eth1: Schnittstelle zum DSL-Modem
x.x.x.x: IP-Adreese des Servers (Proxy)
-----------------------------------------------



dann habe ich noch im Web eine Doku gefunden nach welcher folgende Änderungen im Conigfile von Squid vorzunehmen sind (/etc/squid.conf):
---------------------------------
http_port 8080
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
----------------------------------
auch diese habe ich vorgenommen, leider funktioniert es trotzdem nicht. Jemand eine Idee?

Gruss Pixel

geronet
20.02.02, 20:50
Hallo pixel, das ist der falsche iptables-Befehl für "Transparent-Proxiing". DNAT ist was anderes als port-REDIRECTING.
Der sollte so aussehen.


iptables -t nat -A PREROUTING --source $LOCALNET --protocol tcp- -in-interface $LOCAL_IF --destination-port www --jump REDIRECT --to-ports 8080


Grüsse, Stefan

pixel
20.02.02, 21:36
Danke,

..... stehen die Variablen $LOCALNET und $LOCAL_IF ?

sind das IP-Adressen, Ports??? mein lokales Netz hat die Adresse
192.168.0.x

Gruss Sven

geronet
20.02.02, 21:47
LOCALNET="192.168.0.0/255.255.255.0"
Netzwerkadresse..

LOCAL_IF="eth0"
lokales Inteface

Grüsse, Stefan

pixel
20.02.02, 22:15
--to-ports 8080 ????

ich kenne

--sport (--source-port)
--dport (--destination-port)

ist das ein Tippfehler oder kenne ich das nicht? Letzteres wäre nicht überraschend ;-)

Gruss Pixel

pixel
20.02.02, 22:30
Hi,

ich habe gefunden. --to-ports stimmt jedoch funktioniert es leider immer noch nicht. Ach ja, vorher war der Proxy durch manuelles konfigurieren (im Konqueror) erreichbar, nachdem ich die Änderungen in der squid.conf vorgenommen habe funktioniert da nicht mehr. Ist das normal?

Gruss Sven

pixel
22.02.02, 12:39
ich glaube eher das dein Aufruf verkehrt ist. Wenn ich mich nicht täusche setzt deine Syntax voraus das sich Firewall+Proxy auf ein und dem selben Rechner befinden. Dies ist bei mir aber nicht gegeben.

Oder täusche ich mich da

Gruss Pixel

AthLux
22.02.02, 13:24
Hallöchen.

Die erste Variante (-j DNAT --to-destination x.x.x.x:8080) benötigt man um IP-Datenpakete transparent, d.h. für den Anwender durchsichtig oder unsichtbar, an einen anderen Rechner umzuleiten. Das was üblicherweise unter "Transparent Proxy" verstanden wird.

Die zweite Variante (--to-ports 8080) benötigt man für Port-Redirection innerhalb desselben Rechners.

Ich denke mal dass pixel sehr wohl die erste Variante gemeint hatte.

Zum testen würde ich mal versuchen im Konqueror in den Proxy-Einstellungen mal den Ziel-Proxy (also den auf den eigentlich transparent zugegriffen werden soll) direkt anzugeben. Wenn das funkt, liegts an deiner Firewall (iptables). Ansonsten am Proxy.

Hier noch ne Anleitung http://rhb.uugrn.org/doku/networking/NAT-HOWTO/NAT-HOWTO.html

pixel
22.02.02, 13:46
Hi@all,

genau. wie ich eingehend beschrieben habe sind das zwei verschiedene Rechner. Zum einen die Firewall mit Paketfilter zum anderen mein Server auf welchem der Proxy installiert ist. Beide hier aufgezeigten Iptables-Aufrufe sind von Ihrer Syntax her richtig, natürlich für den entsprechenden Zweck.

@AthLux,

genau damit (Proxy manuell ansprechen) habe ich ein Problem. Ich hatte den Proxy anhand einschlägiger Literatur konfiguriert und er funktionierte , munelle Anpassung z.B. im Konquerror, natürlich vorausgesetzt. Erst nachdem ich in der Datei /etc/squid.conf die Einträge:


httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

vorgenommen habe war dies nicht mehr möglich.

Hat jemand eine Idee?

Gruss Pixel