Gute Nacht! (oder Morgen)
Wir haben hier die ganze Nacht mit Doku u.ä, verbracht. Leider ihne Ergolg, deswegen hier die verzweifelte Frage, die wir leider auch nicht mit dem Listenarchiv beantworten konnten:
Ein Squid im Netz, hört auf eth0, Port 3128. Das Ganze soll umgessetzt werden auf eth0, Port 80.
das Ganze muss als Proxy-Forwarding laufen, da der nachgeschaltete Proxy nur Pakete von unserem Squid akzeptiert!
Verwenden wollen wir IPTABLES und haben die SuSE 7.1 mit 2.4.0
Probiert haben wir schon:
MASQ: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.
Forwarding: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to -port 3128
Auf dem Client, der darüber surfen will, kommt immer: No route to host!
Fragend auf nächtliche Antworten hoffend!
Peter & Co.
Peter Zabelt wrote:
Ein Squid im Netz, hört auf eth0, Port 3128. Das Ganze soll umgessetzt werden auf eth0, Port 80.
das Ganze muss als Proxy-Forwarding laufen, da der nachgeschaltete Proxy nur Pakete von unserem Squid akzeptiert!
etwas verwirrt ich interpretiere das mal so:
Browser --Port80--> Squid_A --Port3128--> Squid_B --> Internet Squid_B akzeptiert nur von Squid_A:3128 richtig?
Warum iptables? Du kannst dem Squid(_A) doch sagen auf welchem Port er horchen soll. /etc/squid.conf: http_port 80
oder:
http_port 80 3128
Dann horcht er sogar auf beiden Ports.
Dann sagst Du dem Squid_A, daß er Squid_B:3128 befragen soll.
cache_peer Squid_B parent 3128 3130
Das sollte reichen.
Rico
Hallo Rico und Jan (in Indien - schwitz!)!
- absichtliches Vollquoting, ist hier besser so, denke ich!?! -
On Tue, 6 Mar 2001, Rico Koerner wrote:
Peter Zabelt wrote:
Ein Squid im Netz, hört auf eth0, Port 3128. Das Ganze soll umgessetzt werden auf eth0, Port 80.
das Ganze muss als Proxy-Forwarding laufen, da der nachgeschaltete Proxy nur Pakete von unserem Squid akzeptiert!
etwas verwirrt ich interpretiere das mal so:
Browser --Port80--> Squid_A --Port3128--> Squid_B --> Internet Squid_B akzeptiert nur von Squid_A:3128 richtig?
Ich möchte das ganze mal etwas mehr aus meiner ichtung 'präzisieren':
Broser ruft Seite auf Port 3128 -> Squid antwortet mit Cache-Inhalt oder leitet weiter auf seine eigene (einzige!) Ip-Adresse auf den Port 80 -> das soll über einen CISCO gehen -> jetzt kommt der 'letzte' Proxy, der dann die eigentliche Internetverbindung herstellt: z.B. 1.2.3.4:8080.
Fest vorgegeben sind: 'Letzter' Proxy mit 1.2.3.4:8080 (M$ in übergeordneter Stelle) und die IP und der Port, die diesen 'letzten' Proxy rufen dürfen: 192.168.10.50:80 (z.B.).
Nach vielen Übungen und nochmehr lesen in der letzten Nacht wussten wir gar nicht mehr: Ist das nun ein Fall für Transparent-Proxy, Port-Forwarding oder nur für den SQUID???
In diesem Zusammenhang tauchte (um 03:00 Uhr!) die sehr trivial klingende Frage auf: Wa macht eigentlich Squid? An wen schickt er eine Internetanforderung, die er nicht aus seinem Cache beantworten kann? Ganz allgemein: auf die Standardroute oder ... ?
Warum iptables?
Du kannst dem Squid(_A) doch sagen auf welchem Port er horchen soll. /etc/squid.conf: http_port 80
oder:
http_port 80 3128
Dann horcht er sogar auf beiden Ports.
Dann sagst Du dem Squid_A, daß er Squid_B:3128 befragen soll.
cache_peer Squid_B parent 3128 3130
Das sollte reichen.
Rico
Das probiere ich dann gleich mal aus!
Danke schon mal! Peter.
On Tue, Mar 06, 2001 at 10:30:25AM +0100, Peter Zabelt wrote:
Ich möchte das ganze mal etwas mehr aus meiner ichtung 'präzisieren':
Broser ruft Seite auf Port 3128 -> Squid antwortet mit Cache-Inhalt
OK, dieser Fall ist klar.
oder leitet weiter auf seine eigene (einzige!) Ip-Adresse auf den Port 80
Was solln das werden. Der Rechner mit dem Proxy hat die Seite nicht und leitet sie nochmal an sich selbst weiter? Erscheint mir sinnlos.
-> das soll über einen CISCO gehen -> jetzt kommt der 'letzte' Proxy, der dann die eigentliche Internetverbindung herstellt: z.B. 1.2.3.4:8080.
Fest vorgegeben sind: 'Letzter' Proxy mit 1.2.3.4:8080 (M$ in übergeordneter Stelle) und die IP und der Port, die diesen 'letzten' Proxy rufen dürfen: 192.168.10.50:80 (z.B.).
Oops: das bedeutet, daß du den source-Port der Requests an den parent cache auf 80 festlegen musst. Das wiederum bedeutet * dass dein squid als root laufen muss (wenn man keine schweinereien mit umgeschiebenen Paketen machen will, und das will/tut man nicht) * squid kennt IMO keine option, den Quellport der abgehenden Anfragen festzulegen, Es gibts zwar tcp_outgoing_address aber kein tcp_outgoing_port
Bist du 100%ig sicher, dass dein Papaproybetreiber wirklich nur Requests von Port 80 kommend annimmt? Das ist IMO eine recht hirnlose Forderung. Frag doch lieber noch mal bei ihm nach.
Nach vielen Übungen und nochmehr lesen in der letzten Nacht wussten wir gar nicht mehr: Ist das nun ein Fall für Transparent-Proxy, Port-Forwarding oder nur für den SQUID???
In diesem Zusammenhang tauchte (um 03:00 Uhr!) die sehr trivial klingende Frage auf: Wa macht eigentlich Squid? An wen schickt er eine Internetanforderung, die er nicht aus seinem Cache beantworten kann? Ganz allgemein: auf die Standardroute oder ... ?
HTTP-RFC lesen+verstehen, squid doku lesen+verstehen
Reinhard
Hallo allen Helferlein!
Ein Squid im Netz, hört auf eth0, Port 3128. Das Ganze soll umgessetzt werden auf eth0, Port 80.
das Ganze muss als Proxy-Forwarding laufen, da der nachgeschaltete Proxy nur Pakete von unserem Squid akzeptiert!
etwas verwirrt ich interpretiere das mal so:
Browser --Port80--> Squid_A --Port3128--> Squid_B --> Internet Squid_B akzeptiert nur von Squid_A:3128 richtig?
Warum iptables? Du kannst dem Squid(_A) doch sagen auf welchem Port er horchen soll. /etc/squid.conf: http_port 80
oder:
http_port 80 3128
Dann horcht er sogar auf beiden Ports.
Dann sagst Du dem Squid_A, daß er Squid_B:3128 befragen soll.
cache_peer Squid_B parent 3128 3130
Das sollte reichen.
Naja, ein paar mehr Einstellungen waren das schon, aber das Prinzip hat gestimmt! Danke für die reichlichen Tipps. Es funzt!
Wenn Jemand was in der o.g. Richtung benötigt, kann ich ja nun auch helfen!!
Danke! Peter.
On Mon, Mar 05, 2001 at 11:08:41PM +0100, Peter Zabelt wrote:
Gute Nacht! (oder Morgen)
Wir haben hier die ganze Nacht mit Doku u.ä, verbracht. Leider ihne Ergolg, deswegen hier die verzweifelte Frage, die wir leider auch nicht mit dem Listenarchiv beantworten konnten:
Ein Squid im Netz, hört auf eth0, Port 3128. Das Ganze soll umgessetzt werden auf eth0, Port 80.
Was meinst du mit umsetzten? Wenn er auf port 80 statt 3128 hören soll, kannst du das doch einfach in der Config ändern: http_port 80
das Ganze muss als Proxy-Forwarding laufen, da der nachgeschaltete Proxy nur Pakete von unserem Squid akzeptiert!
Weiterleiten an immer den gleichen Parent ohne den Kram jemals direkt selbst zu holen geht mit cache_peer anderer_proxy.domain.tld parent 3128 3130 default acl all src 0.0.0.0/0.0.0.0 never_direct allow all
Verwenden wollen wir IPTABLES und haben die SuSE 7.1 mit 2.4.0
Wozu iptables - völlig unnötig.
Probiert haben wir schon:
MASQ: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.
Forwarding: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to -port 3128
Kann es sein, dass du einen transparenten Cache installieren willst? Also einen, der funktioniert obwohl die Nutzer in ihren Browsern keinen Proxy eingestellt haben? Solche heimlichen Zwangsproxies sind megaoberpfui!!! Wer sowas installiert ...
Ein Mini-HowTo dazu gibts auf http://rpmfind.net/linux/mdw/HOWTO/mini/TransparentProxy.html
Auf dem Client, der darüber surfen will, kommt immer: No route to host!
Aha, dann ist erstmal der client vergurkt und nicht der proxy. - erreicht der client seinen Nameserver und funktioniert dieser? - was steht in der routing table des clients - die route zu welchem Host findet der client nicht? Warum? --> Fehler beheben
Reinhard
PS: wenn der squid irgendwann mal stabil läuft, empfehle ich dir cache_access_log /dev/null
lug-dd@mailman.schlittermann.de